rspec integration pg14 3/12
Passed Started
by
@leipert
Lukas Eipert
1Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/ruby-gems-debian-bullseye-ruby-3.0-16 2Successfully extracted cache4Downloading artifacts for compile-test-assets (4541357536)...5Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4541357536 responseStatus=200 OK token=64_Efxot6Downloading artifacts for retrieve-tests-metadata (4541357542)...7Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4541357542 responseStatus=200 OK token=64_Efxot8Downloading artifacts for setup-test-env (4541357540)...9Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4541357540 responseStatus=200 OK token=64_Efxot11Using docker image sha256:f47b23bf3b9e02a2837ddb6fe9a0b728c270e7a7d815dc582fd17281be34f20d for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.20-rust-1.65-node-18.16-postgresql-14:rubygems-3.4-git-2.36-lfs-2.9-chrome-113-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.20-rust-1.65-node-18.16-postgresql-14@sha256:4db9bc427d7eb1bd075d76b4e5e3e59eb0d96c2e788e6275e628f0026dd30039 ...12$ echo $FOSS_ONLY13$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb14$ export GOPATH=$CI_PROJECT_DIR/.go15$ mkdir -p $GOPATH16$ source scripts/utils.sh17$ source scripts/prepare_build.sh676Using decomposed database config (config/database.yml.decomposed-postgresql)677Geo DB won't be set up.678Embedding DB won't be set up.690$ source ./scripts/rspec_helpers.sh691$ run_timed_command "gem install knapsack --no-document"692$ gem install knapsack --no-document693Successfully installed knapsack-4.0.06941 gem installed695==> 'gem install knapsack --no-document' succeeded in 1 seconds.696$ echo -e "\e[0Ksection_start:`date +%s`:gitaly-test-spawn[collapsed=true]\r\e[0KStarting Gitaly"698$ section_start "gitaly-test-spawn" "Spawning Gitaly"; scripts/gitaly-test-spawn; section_end "gitaly-test-spawn"703$ echo -e "\e[0Ksection_end:`date +%s`:gitaly-test-spawn\r\e[0K"704$ rspec_paralellized_job "--fail-fast=${RSPEC_FAIL_FAST_THRESHOLD} --tag ~quarantine --tag ~level:background_migration"705SKIP_FLAKY_TESTS_AUTOMATICALLY: 706RETRY_FAILED_TESTS_IN_NEW_PROCESS: true707KNAPSACK_GENERATE_REPORT: true708FLAKY_RSPEC_GENERATE_REPORT: true709KNAPSACK_TEST_FILE_PATTERN: spec/{commands,controllers,mailers,requests}{,/**/}*_spec.rb710KNAPSACK_LOG_LEVEL: debug711KNAPSACK_REPORT_PATH: knapsack/rspec_integration_pg14_3_12_report.json712FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json713FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_integration_pg14_3_12_report.json714NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_integration_pg14_3_12_report.json715SKIPPED_TESTS_REPORT_PATH: rspec/skipped_tests_rspec_integration_pg14_3_12.txt716CRYSTALBALL: 717RSPEC_TESTS_MAPPING_ENABLED: 718RSPEC_TESTS_FILTER_FILE: 719Knapsack report generator started!720Run options: exclude {:quarantine=>true, :level=>"background_migration"}721Test environment set up in 1.482246424 seconds722API::NpmProjectPackages723 GET /api/v4/projects/:id/packages/npm/*package_name724 behaves like handling get metadata requests725 with a group namespace726 behaves like handling all conditions727 auth: nil, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok728 behaves like accept metadata request729 accepts the metadata request730 avoids N+1 database queries731 auth: nil, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok732 behaves like accept metadata request733 accepts the metadata request734 avoids N+1 database queries735 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok736 behaves like accept metadata request737 accepts the metadata request738 avoids N+1 database queries739 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok740 behaves like accept metadata request741 accepts the metadata request742 avoids N+1 database queries743 auth: nil, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok744 behaves like accept metadata request745 accepts the metadata request746 avoids N+1 database queries747 auth: nil, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok748 behaves like accept metadata request749 accepts the metadata request750 avoids N+1 database queries751 auth: nil, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: nil, expected_result: :redirect, expected_status: :redirected752 behaves like redirect metadata request753 redirects metadata request754 auth: nil, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :not_found755 behaves like reject metadata request756 rejects the metadata request757 auth: nil, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found758 behaves like reject metadata request759 rejects the metadata request760 auth: nil, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found761 behaves like reject metadata request762 rejects the metadata request763 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found764 behaves like reject metadata request765 rejects the metadata request766 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found767 behaves like reject metadata request768 rejects the metadata request769 auth: nil, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found770 behaves like reject metadata request771 rejects the metadata request772 auth: nil, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found773 behaves like reject metadata request774 rejects the metadata request775 auth: nil, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: nil, expected_result: :redirect, expected_status: :redirected776 behaves like redirect metadata request777 redirects metadata request778 auth: nil, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found779 behaves like reject metadata request780 rejects the metadata request781 auth: nil, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found782 behaves like reject metadata request783 rejects the metadata request784 auth: nil, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found785 behaves like reject metadata request786 rejects the metadata request787 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found788 behaves like reject metadata request789 rejects the metadata request790 auth: nil, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found791 behaves like reject metadata request792 rejects the metadata request793 auth: nil, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found794 behaves like reject metadata request795 rejects the metadata request796 auth: nil, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found797 behaves like reject metadata request798 rejects the metadata request799 auth: nil, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: nil, expected_result: :redirect, expected_status: :redirected800 behaves like redirect metadata request801 redirects metadata request802 auth: nil, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found803 behaves like reject metadata request804 rejects the metadata request805 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok806 behaves like accept metadata request807 accepts the metadata request808 avoids N+1 database queries809 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok810 behaves like accept metadata request811 accepts the metadata request812 avoids N+1 database queries813 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok814 behaves like accept metadata request815 accepts the metadata request816 avoids N+1 database queries817 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok818 behaves like accept metadata request819 accepts the metadata request820 avoids N+1 database queries821 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok822 behaves like accept metadata request823 accepts the metadata request824 avoids N+1 database queries825 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok826 behaves like accept metadata request827 accepts the metadata request828 avoids N+1 database queries829 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok830 behaves like accept metadata request831 accepts the metadata request832 avoids N+1 database queries833 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok834 behaves like accept metadata request835 accepts the metadata request836 avoids N+1 database queries837 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok838 behaves like accept metadata request839 accepts the metadata request840 avoids N+1 database queries841 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok842 behaves like accept metadata request843 accepts the metadata request844 avoids N+1 database queries845 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok846 behaves like accept metadata request847 accepts the metadata request848 avoids N+1 database queries849 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok850 behaves like accept metadata request851 accepts the metadata request852 avoids N+1 database queries853 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :guest, expected_result: :redirect, expected_status: :redirected854 behaves like redirect metadata request855 redirects metadata request856 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :redirect, expected_status: :redirected857 behaves like redirect metadata request858 redirects metadata request859 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :not_found860 behaves like reject metadata request861 rejects the metadata request862 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :reject, expected_status: :not_found863 behaves like reject metadata request864 rejects the metadata request865 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden866 behaves like reject metadata request867 rejects the metadata request868 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok869 behaves like accept metadata request870 accepts the metadata request871 avoids N+1 database queries872 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden873 behaves like reject metadata request874 rejects the metadata request875 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok876 behaves like accept metadata request877 accepts the metadata request878 avoids N+1 database queries879 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden880 behaves like reject metadata request881 rejects the metadata request882 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok883 behaves like accept metadata request884 accepts the metadata request885 avoids N+1 database queries886 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden887 behaves like reject metadata request888 rejects the metadata request889 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok890 behaves like accept metadata request891 accepts the metadata request892 avoids N+1 database queries893 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden894 behaves like reject metadata request895 rejects the metadata request896 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok897 behaves like accept metadata request898 accepts the metadata request899 avoids N+1 database queries900 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden901 behaves like reject metadata request902 rejects the metadata request903 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok904 behaves like accept metadata request905 accepts the metadata request906 avoids N+1 database queries907 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :guest, expected_result: :redirect, expected_status: :redirected908 behaves like redirect metadata request909 redirects metadata request910 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :redirect, expected_status: :redirected911 behaves like redirect metadata request912 redirects metadata request913 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden914 behaves like reject metadata request915 rejects the metadata request916 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :reject, expected_status: :not_found917 behaves like reject metadata request918 rejects the metadata request919 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok920 behaves like accept metadata request921 accepts the metadata request922 avoids N+1 database queries923 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok924 behaves like accept metadata request925 accepts the metadata request926 avoids N+1 database queries927 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok928 behaves like accept metadata request929 accepts the metadata request930 avoids N+1 database queries931 auth: :oauth, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok932 behaves like accept metadata request933 accepts the metadata request934 avoids N+1 database queries935 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok936 behaves like accept metadata request937 accepts the metadata request938 avoids N+1 database queries939 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok940 behaves like accept metadata request941 accepts the metadata request942 avoids N+1 database queries943 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok944 behaves like accept metadata request945 accepts the metadata request946 avoids N+1 database queries947 auth: :oauth, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok948 behaves like accept metadata request949 accepts the metadata request950 avoids N+1 database queries951 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok952 behaves like accept metadata request953 accepts the metadata request954 avoids N+1 database queries955 auth: :oauth, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok956 behaves like accept metadata request957 accepts the metadata request958 avoids N+1 database queries959 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok960 behaves like accept metadata request961 accepts the metadata request962 avoids N+1 database queries963 auth: :oauth, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok964 behaves like accept metadata request965 accepts the metadata request966 avoids N+1 database queries967 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :redirect, expected_status: :redirected968 behaves like redirect metadata request969 redirects metadata request970 auth: :oauth, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :redirect, expected_status: :redirected971 behaves like redirect metadata request972 redirects metadata request973 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :not_found974 behaves like reject metadata request975 rejects the metadata request976 auth: :oauth, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found977 behaves like reject metadata request978 rejects the metadata request979 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok980 behaves like accept metadata request981 accepts the metadata request982 avoids N+1 database queries983 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok984 behaves like accept metadata request985 accepts the metadata request986 avoids N+1 database queries987 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok988 behaves like accept metadata request989 accepts the metadata request990 avoids N+1 database queries991 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok992 behaves like accept metadata request993 accepts the metadata request994 avoids N+1 database queries995 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok996 behaves like accept metadata request997 accepts the metadata request998 avoids N+1 database queries999 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1000 behaves like accept metadata request1001 accepts the metadata request1002 avoids N+1 database queries1003 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1004 behaves like accept metadata request1005 accepts the metadata request1006 avoids N+1 database queries1007 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1008 behaves like accept metadata request1009 accepts the metadata request1010 avoids N+1 database queries1011 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1012 behaves like accept metadata request1013 accepts the metadata request1014 avoids N+1 database queries1015 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1016 behaves like accept metadata request1017 accepts the metadata request1018 avoids N+1 database queries1019 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1020 behaves like accept metadata request1021 accepts the metadata request1022 avoids N+1 database queries1023 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1024 behaves like accept metadata request1025 accepts the metadata request1026 avoids N+1 database queries1027 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :guest, expected_result: :redirect, expected_status: :redirected1028 behaves like redirect metadata request1029 redirects metadata request1030 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :redirect, expected_status: :redirected1031 behaves like redirect metadata request1032 redirects metadata request1033 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :not_found1034 behaves like reject metadata request1035 rejects the metadata request1036 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :reject, expected_status: :not_found1037 behaves like reject metadata request1038 rejects the metadata request1039 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1040 behaves like reject metadata request1041 rejects the metadata request1042 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1043 behaves like accept metadata request1044 accepts the metadata request1045 avoids N+1 database queries1046 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1047 behaves like reject metadata request1048 rejects the metadata request1049 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1050 behaves like accept metadata request1051 accepts the metadata request1052 avoids N+1 database queries1053 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1054 behaves like reject metadata request1055 rejects the metadata request1056 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1057 behaves like accept metadata request1058 accepts the metadata request1059 avoids N+1 database queries1060 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1061 behaves like reject metadata request1062 rejects the metadata request1063 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1064 behaves like accept metadata request1065 accepts the metadata request1066 avoids N+1 database queries1067 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1068 behaves like reject metadata request1069 rejects the metadata request1070 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1071 behaves like accept metadata request1072 accepts the metadata request1073 avoids N+1 database queries1074 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1075 behaves like reject metadata request1076 rejects the metadata request1077 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1078 behaves like accept metadata request1079 accepts the metadata request1080 avoids N+1 database queries1081 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :guest, expected_result: :redirect, expected_status: :redirected1082 behaves like redirect metadata request1083 redirects metadata request1084 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :redirect, expected_status: :redirected1085 behaves like redirect metadata request1086 redirects metadata request1087 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1088 behaves like reject metadata request1089 rejects the metadata request1090 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :reject, expected_status: :not_found1091 behaves like reject metadata request1092 rejects the metadata request1093 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1094 behaves like accept metadata request1095 accepts the metadata request1096 avoids N+1 database queries1097 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1098 behaves like accept metadata request1099 accepts the metadata request1100 avoids N+1 database queries1101 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1102 behaves like accept metadata request1103 accepts the metadata request1104 avoids N+1 database queries1105 auth: :personal_access_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1106 behaves like accept metadata request1107 accepts the metadata request1108 avoids N+1 database queries1109 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1110 behaves like accept metadata request1111 accepts the metadata request1112 avoids N+1 database queries1113 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1114 behaves like accept metadata request1115 accepts the metadata request1116 avoids N+1 database queries1117 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1118 behaves like accept metadata request1119 accepts the metadata request1120 avoids N+1 database queries1121 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1122 behaves like accept metadata request1123 accepts the metadata request1124 avoids N+1 database queries1125 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1126 behaves like accept metadata request1127 accepts the metadata request1128 avoids N+1 database queries1129 auth: :personal_access_token, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1130 behaves like accept metadata request1131 accepts the metadata request1132 avoids N+1 database queries1133 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1134 behaves like accept metadata request1135 accepts the metadata request1136 avoids N+1 database queries1137 auth: :personal_access_token, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1138 behaves like accept metadata request1139 accepts the metadata request1140 avoids N+1 database queries1141 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :redirect, expected_status: :redirected1142 behaves like redirect metadata request1143 redirects metadata request1144 auth: :personal_access_token, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :redirect, expected_status: :redirected1145 behaves like redirect metadata request1146 redirects metadata request1147 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :not_found1148 behaves like reject metadata request1149 rejects the metadata request1150 auth: :personal_access_token, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found1151 behaves like reject metadata request1152 rejects the metadata request1153 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1154 behaves like accept metadata request1155 accepts the metadata request1156 avoids N+1 database queries1157 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1158 behaves like accept metadata request1159 accepts the metadata request1160 avoids N+1 database queries1161 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1162 behaves like accept metadata request1163 accepts the metadata request1164 avoids N+1 database queries1165 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1166 behaves like accept metadata request1167 accepts the metadata request1168 avoids N+1 database queries1169 auth: :job_token, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1170 behaves like accept metadata request1171 accepts the metadata request1172 avoids N+1 database queries1173 auth: :job_token, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok1174 behaves like accept metadata request1175 accepts the metadata request1176 avoids N+1 database queries1177 auth: :job_token, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: :developer, expected_result: :redirect, expected_status: :redirected1178 behaves like redirect metadata request1179 redirects metadata request1180 auth: :job_token, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: :developer, expected_result: :reject, expected_status: :not_found1181 behaves like reject metadata request1182 rejects the metadata request1183 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1184 behaves like accept metadata request1185 accepts the metadata request1186 avoids N+1 database queries1187 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1188 behaves like accept metadata request1189 accepts the metadata request1190 avoids N+1 database queries1191 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1192 behaves like accept metadata request1193 accepts the metadata request1194 avoids N+1 database queries1195 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1196 behaves like accept metadata request1197 accepts the metadata request1198 avoids N+1 database queries1199 auth: :job_token, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1200 behaves like accept metadata request1201 accepts the metadata request1202 avoids N+1 database queries1203 auth: :job_token, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok1204 behaves like accept metadata request1205 accepts the metadata request1206 avoids N+1 database queries1207 auth: :job_token, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: :developer, expected_result: :redirect, expected_status: :redirected1208 behaves like redirect metadata request1209 redirects metadata request1210 auth: :job_token, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: :developer, expected_result: :reject, expected_status: :not_found1211 behaves like reject metadata request1212 rejects the metadata request1213 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1214 behaves like accept metadata request1215 accepts the metadata request1216 avoids N+1 database queries1217 auth: :job_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1218 behaves like accept metadata request1219 accepts the metadata request1220 avoids N+1 database queries1221 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1222 behaves like accept metadata request1223 accepts the metadata request1224 avoids N+1 database queries1225 auth: :job_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1226 behaves like accept metadata request1227 accepts the metadata request1228 avoids N+1 database queries1229 auth: :job_token, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1230 behaves like accept metadata request1231 accepts the metadata request1232 avoids N+1 database queries1233 auth: :job_token, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok1234 behaves like accept metadata request1235 accepts the metadata request1236 avoids N+1 database queries1237 auth: :job_token, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :redirect, expected_status: :redirected1238 behaves like redirect metadata request1239 redirects metadata request1240 auth: :job_token, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :reject, expected_status: :not_found1241 behaves like reject metadata request1242 rejects the metadata request1243 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1244 behaves like accept metadata request1245 accepts the metadata request1246 avoids N+1 database queries1247 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1248 behaves like accept metadata request1249 accepts the metadata request1250 avoids N+1 database queries1251 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1252 behaves like accept metadata request1253 accepts the metadata request1254 avoids N+1 database queries1255 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1256 behaves like accept metadata request1257 accepts the metadata request1258 avoids N+1 database queries1259 auth: :deploy_token, package_name_type: :unscoped, request_forward: true, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1260 behaves like accept metadata request1261 accepts the metadata request1262 avoids N+1 database queries1263 auth: :deploy_token, package_name_type: :unscoped, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1264 behaves like accept metadata request1265 accepts the metadata request1266 avoids N+1 database queries1267 auth: :deploy_token, package_name_type: :non_existing, request_forward: true, visibility: :public, user_role: nil, expected_result: :redirect, expected_status: :redirected1268 behaves like redirect metadata request1269 redirects metadata request1270 auth: :deploy_token, package_name_type: :non_existing, request_forward: false, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :not_found1271 behaves like reject metadata request1272 rejects the metadata request1273 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok1274 behaves like accept metadata request1275 accepts the metadata request1276 avoids N+1 database queries1277 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok1278 behaves like accept metadata request1279 accepts the metadata request1280 avoids N+1 database queries1281 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok1282 behaves like accept metadata request1283 accepts the metadata request1284 avoids N+1 database queries1285 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok1286 behaves like accept metadata request1287 accepts the metadata request1288 avoids N+1 database queries1289 auth: :deploy_token, package_name_type: :unscoped, request_forward: true, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok1290 behaves like accept metadata request1291 accepts the metadata request1292 avoids N+1 database queries1293 auth: :deploy_token, package_name_type: :unscoped, request_forward: false, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok1294 behaves like accept metadata request1295 accepts the metadata request1296 avoids N+1 database queries1297 auth: :deploy_token, package_name_type: :non_existing, request_forward: true, visibility: :private, user_role: nil, expected_result: :redirect, expected_status: :redirected1298 behaves like redirect metadata request1299 redirects metadata request1300 auth: :deploy_token, package_name_type: :non_existing, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found1301 behaves like reject metadata request1302 rejects the metadata request1303 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: true, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok1304 behaves like accept metadata request1305 accepts the metadata request1306 avoids N+1 database queries1307 auth: :deploy_token, package_name_type: :scoped_naming_convention, request_forward: false, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok1308 behaves like accept metadata request1309 accepts the metadata request1310 avoids N+1 database queries1311 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: true, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok1312 behaves like accept metadata request1313 accepts the metadata request1314 avoids N+1 database queries1315 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, request_forward: false, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok1316 behaves like accept metadata request1317 accepts the metadata request1318 avoids N+1 database queries1319 auth: :deploy_token, package_name_type: :unscoped, request_forward: true, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok1320 behaves like accept metadata request1321 accepts the metadata request1322 avoids N+1 database queries1323 auth: :deploy_token, package_name_type: :unscoped, request_forward: false, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok1324 behaves like accept metadata request1325 accepts the metadata request1326 avoids N+1 database queries1327 auth: :deploy_token, package_name_type: :non_existing, request_forward: true, visibility: :internal, user_role: nil, expected_result: :redirect, expected_status: :redirected1328 behaves like redirect metadata request1329 redirects metadata request1330 auth: :deploy_token, package_name_type: :non_existing, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found1331 behaves like reject metadata request1332 rejects the metadata request1333 with a developer1334 project path with a dot1335 behaves like accept metadata request1336 accepts the metadata request1337 avoids N+1 database queries1338 with a job token1339 behaves like reject metadata request1340 rejects the metadata request1341 behaves like accept get request on private project with access to package registry for everyone1342 behaves like returning response status1343 returns ok1344 behaves like rejects invalid package names1345 is expected to eq {"error"=>"package_name should be a valid file path"}1346 when metadata cache exists1347 returns response from metadata cache1348DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and1349from Rails 7.1 will use the default Ruby implementation.1350You can set `config.active_support.remove_deprecated_time_with_zone_name = true`1351to enable the new behavior now.1352 (called from block (4 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/requests/api/npm_project_packages_spec.rb:52)1353 bumps last_downloaded_at of metadata cache1354 when npm_metadata_cache disabled1355 behaves like generates metadata response "on-the-fly"1356 generates metadata response "on-the-fly"1357 when metadata cache file does not exist1358 behaves like generates metadata response "on-the-fly"1359 generates metadata response "on-the-fly"1360 GET /api/v4/projects/:id/packages/npm/-/package/*package_name/dist-tags1361 behaves like handling get dist tags requests1362 with a group namespace1363 behaves like handling all conditions1364 auth: nil, package_name_type: :scoped_naming_convention, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1365 behaves like accept package tags request1366 with valid package name1367 returns a valid json response1368 returns two package tags1369 behaves like returning response status1370 returns ok1371 behaves like track event1372 behaves like a package tracking event1373 creates a gitlab tracking event list_tags1374 with invalid package name1375 package_name: "%20", status: :bad_request1376 behaves like returning response status1377 returns bad_request1378 package_name: nil, status: :not_found1379 behaves like returning response status1380 returns not_found1381 auth: nil, package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1382 behaves like accept package tags request1383 with valid package name1384 returns a valid json response1385 returns two package tags1386 behaves like returning response status1387 returns ok1388 behaves like track event1389 behaves like a package tracking event1390 creates a gitlab tracking event list_tags1391 with invalid package name1392 package_name: "%20", status: :bad_request1393 behaves like returning response status1394 returns bad_request1395 package_name: nil, status: :not_found1396 behaves like returning response status1397 returns not_found1398 auth: nil, package_name_type: :unscoped, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok1399 behaves like accept package tags request1400 with valid package name1401 returns a valid json response1402 returns two package tags1403 behaves like returning response status1404 returns ok1405 behaves like track event1406 behaves like a package tracking event1407 creates a gitlab tracking event list_tags1408 with invalid package name1409 package_name: "%20", status: :bad_request1410 behaves like returning response status1411 returns bad_request1412 package_name: nil, status: :not_found1413 behaves like returning response status1414 returns not_found1415 auth: nil, package_name_type: :non_existing, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :not_found1416 behaves like reject package tags request1417 behaves like returning response status1418 returns not_found1419 auth: nil, package_name_type: :scoped_naming_convention, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found1420 behaves like reject package tags request1421 behaves like returning response status1422 returns not_found1423 auth: nil, package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found1424 behaves like reject package tags request1425 behaves like returning response status1426 returns not_found1427 auth: nil, package_name_type: :unscoped, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found1428 behaves like reject package tags request1429 behaves like returning response status1430 returns not_found1431 auth: nil, package_name_type: :non_existing, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found1432 behaves like reject package tags request1433 behaves like returning response status1434 returns not_found1435 auth: nil, package_name_type: :scoped_naming_convention, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found1436 behaves like reject package tags request1437 behaves like returning response status1438 returns not_found1439 auth: nil, package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found1440 behaves like reject package tags request1441 behaves like returning response status1442 returns not_found1443 auth: nil, package_name_type: :unscoped, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found1444 behaves like reject package tags request1445 behaves like returning response status1446 returns not_found1447 auth: nil, package_name_type: :non_existing, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found1448 behaves like reject package tags request1449 behaves like returning response status1450 returns not_found1451 auth: :oauth, package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1452 behaves like accept package tags request1453 with valid package name1454 returns a valid json response1455 returns two package tags1456 behaves like returning response status1457 returns ok1458 behaves like track event1459 behaves like a package tracking event1460 creates a gitlab tracking event list_tags1461 with invalid package name1462 package_name: "%20", status: :bad_request1463 behaves like returning response status1464 returns bad_request1465 package_name: nil, status: :not_found1466 behaves like returning response status1467 returns not_found1468 auth: :oauth, package_name_type: :scoped_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1469 behaves like accept package tags request1470 with valid package name1471 returns a valid json response1472 returns two package tags1473 behaves like returning response status1474 returns ok1475 behaves like track event1476 behaves like a package tracking event1477 creates a gitlab tracking event list_tags1478 with invalid package name1479 package_name: "%20", status: :bad_request1480 behaves like returning response status1481 returns bad_request1482 package_name: nil, status: :not_found1483 behaves like returning response status1484 returns not_found1485 auth: :oauth, package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1486 behaves like accept package tags request1487 with valid package name1488 returns a valid json response1489 returns two package tags1490 behaves like returning response status1491 returns ok1492 behaves like track event1493 behaves like a package tracking event1494 creates a gitlab tracking event list_tags1495 with invalid package name1496 package_name: "%20", status: :bad_request1497 behaves like returning response status1498 returns bad_request1499 package_name: nil, status: :not_found1500 behaves like returning response status1501 returns not_found1502 auth: :oauth, package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1503 behaves like accept package tags request1504 with valid package name1505 returns a valid json response1506 returns two package tags1507 behaves like returning response status1508 returns ok1509 behaves like track event1510 behaves like a package tracking event1511 creates a gitlab tracking event list_tags1512 with invalid package name1513 package_name: "%20", status: :bad_request1514 behaves like returning response status1515 returns bad_request1516 package_name: nil, status: :not_found1517 behaves like returning response status1518 returns not_found1519 auth: :oauth, package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1520 behaves like accept package tags request1521 with valid package name1522 returns a valid json response1523 returns two package tags1524 behaves like returning response status1525 returns ok1526 behaves like track event1527 behaves like a package tracking event1528 creates a gitlab tracking event list_tags1529 with invalid package name1530 package_name: "%20", status: :bad_request1531 behaves like returning response status1532 returns bad_request1533 package_name: nil, status: :not_found1534 behaves like returning response status1535 returns not_found1536 auth: :oauth, package_name_type: :unscoped, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1537 behaves like accept package tags request1538 with valid package name1539 returns a valid json response1540 returns two package tags1541 behaves like returning response status1542 returns ok1543 behaves like track event1544 behaves like a package tracking event1545 creates a gitlab tracking event list_tags1546 with invalid package name1547 package_name: "%20", status: :bad_request1548 behaves like returning response status1549 returns bad_request1550 package_name: nil, status: :not_found1551 behaves like returning response status1552 returns not_found1553 auth: :oauth, package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :not_found1554 behaves like reject package tags request1555 behaves like returning response status1556 returns not_found1557 auth: :oauth, package_name_type: :non_existing, visibility: :public, user_role: :reporter, expected_result: :reject, expected_status: :not_found1558 behaves like reject package tags request1559 behaves like returning response status1560 returns not_found1561 auth: :oauth, package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1562 behaves like reject package tags request1563 behaves like returning response status1564 returns forbidden1565 auth: :oauth, package_name_type: :scoped_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1566 behaves like accept package tags request1567 with valid package name1568 returns a valid json response1569 returns two package tags1570 behaves like returning response status1571 returns ok1572 behaves like track event1573 behaves like a package tracking event1574 creates a gitlab tracking event list_tags1575 with invalid package name1576 package_name: "%20", status: :bad_request1577 behaves like returning response status1578 returns bad_request1579 package_name: nil, status: :not_found1580 behaves like returning response status1581 returns not_found1582 auth: :oauth, package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1583 behaves like reject package tags request1584 behaves like returning response status1585 returns forbidden1586 auth: :oauth, package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1587 behaves like accept package tags request1588 with valid package name1589 returns a valid json response1590 returns two package tags1591 behaves like returning response status1592 returns ok1593 behaves like track event1594 behaves like a package tracking event1595 creates a gitlab tracking event list_tags1596 with invalid package name1597 package_name: "%20", status: :bad_request1598 behaves like returning response status1599 returns bad_request1600 package_name: nil, status: :not_found1601 behaves like returning response status1602 returns not_found1603 auth: :oauth, package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1604 behaves like reject package tags request1605 behaves like returning response status1606 returns forbidden1607 auth: :oauth, package_name_type: :unscoped, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1608 behaves like accept package tags request1609 with valid package name1610 returns a valid json response1611 returns two package tags1612 behaves like returning response status1613 returns ok1614 behaves like track event1615 behaves like a package tracking event1616 creates a gitlab tracking event list_tags1617 with invalid package name1618 package_name: "%20", status: :bad_request1619 behaves like returning response status1620 returns bad_request1621 package_name: nil, status: :not_found1622 behaves like returning response status1623 returns not_found1624 auth: :oauth, package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1625 behaves like reject package tags request1626 behaves like returning response status1627 returns forbidden1628 auth: :oauth, package_name_type: :non_existing, visibility: :private, user_role: :reporter, expected_result: :reject, expected_status: :not_found1629 behaves like reject package tags request1630 behaves like returning response status1631 returns not_found1632 auth: :oauth, package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1633 behaves like accept package tags request1634 with valid package name1635 returns a valid json response1636 returns two package tags1637 behaves like returning response status1638 returns ok1639 behaves like track event1640 behaves like a package tracking event1641 creates a gitlab tracking event list_tags1642 with invalid package name1643 package_name: "%20", status: :bad_request1644 behaves like returning response status1645 returns bad_request1646 package_name: nil, status: :not_found1647 behaves like returning response status1648 returns not_found1649 auth: :oauth, package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1650 behaves like accept package tags request1651 with valid package name1652 returns a valid json response1653 returns two package tags1654 behaves like returning response status1655 returns ok1656 behaves like track event1657 behaves like a package tracking event1658 creates a gitlab tracking event list_tags1659 with invalid package name1660 package_name: "%20", status: :bad_request1661 behaves like returning response status1662 returns bad_request1663 package_name: nil, status: :not_found1664 behaves like returning response status1665 returns not_found1666 auth: :oauth, package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1667 behaves like accept package tags request1668 with valid package name1669 returns a valid json response1670 returns two package tags1671 behaves like returning response status1672 returns ok1673 behaves like track event1674 behaves like a package tracking event1675 creates a gitlab tracking event list_tags1676 with invalid package name1677 package_name: "%20", status: :bad_request1678 behaves like returning response status1679 returns bad_request1680 package_name: nil, status: :not_found1681 behaves like returning response status1682 returns not_found1683 auth: :oauth, package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1684 behaves like accept package tags request1685 with valid package name1686 returns a valid json response1687 returns two package tags1688 behaves like returning response status1689 returns ok1690 behaves like track event1691 behaves like a package tracking event1692 creates a gitlab tracking event list_tags1693 with invalid package name1694 package_name: "%20", status: :bad_request1695 behaves like returning response status1696 returns bad_request1697 package_name: nil, status: :not_found1698 behaves like returning response status1699 returns not_found1700 auth: :oauth, package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1701 behaves like accept package tags request1702 with valid package name1703 returns a valid json response1704 returns two package tags1705 behaves like returning response status1706 returns ok1707 behaves like track event1708 behaves like a package tracking event1709 creates a gitlab tracking event list_tags1710 with invalid package name1711 package_name: "%20", status: :bad_request1712 behaves like returning response status1713 returns bad_request1714 package_name: nil, status: :not_found1715 behaves like returning response status1716 returns not_found1717 auth: :oauth, package_name_type: :unscoped, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1718 behaves like accept package tags request1719 with valid package name1720 returns a valid json response1721 returns two package tags1722 behaves like returning response status1723 returns ok1724 behaves like track event1725 behaves like a package tracking event1726 creates a gitlab tracking event list_tags1727 with invalid package name1728 package_name: "%20", status: :bad_request1729 behaves like returning response status1730 returns bad_request1731 package_name: nil, status: :not_found1732 behaves like returning response status1733 returns not_found1734 auth: :oauth, package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :not_found1735 behaves like reject package tags request1736 behaves like returning response status1737 returns not_found1738 auth: :oauth, package_name_type: :non_existing, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found1739 behaves like reject package tags request1740 behaves like returning response status1741 returns not_found1742 auth: :personal_access_token, package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1743 behaves like accept package tags request1744 with valid package name1745 returns a valid json response1746 returns two package tags1747 behaves like returning response status1748 returns ok1749 behaves like track event1750 behaves like a package tracking event1751 creates a gitlab tracking event list_tags1752 with invalid package name1753 package_name: "%20", status: :bad_request1754 behaves like returning response status1755 returns bad_request1756 package_name: nil, status: :not_found1757 behaves like returning response status1758 returns not_found1759 auth: :personal_access_token, package_name_type: :scoped_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1760 behaves like accept package tags request1761 with valid package name1762 returns a valid json response1763 returns two package tags1764 behaves like returning response status1765 returns ok1766 behaves like track event1767 behaves like a package tracking event1768 creates a gitlab tracking event list_tags1769 with invalid package name1770 package_name: "%20", status: :bad_request1771 behaves like returning response status1772 returns bad_request1773 package_name: nil, status: :not_found1774 behaves like returning response status1775 returns not_found1776 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1777 behaves like accept package tags request1778 with valid package name1779 returns a valid json response1780 returns two package tags1781 behaves like returning response status1782 returns ok1783 behaves like track event1784 behaves like a package tracking event1785 creates a gitlab tracking event list_tags1786 with invalid package name1787 package_name: "%20", status: :bad_request1788 behaves like returning response status1789 returns bad_request1790 package_name: nil, status: :not_found1791 behaves like returning response status1792 returns not_found1793 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1794 behaves like accept package tags request1795 with valid package name1796 returns a valid json response1797 returns two package tags1798 behaves like returning response status1799 returns ok1800 behaves like track event1801 behaves like a package tracking event1802 creates a gitlab tracking event list_tags1803 with invalid package name1804 package_name: "%20", status: :bad_request1805 behaves like returning response status1806 returns bad_request1807 package_name: nil, status: :not_found1808 behaves like returning response status1809 returns not_found1810 auth: :personal_access_token, package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok1811 behaves like accept package tags request1812 with valid package name1813 returns a valid json response1814 returns two package tags1815 behaves like returning response status1816 returns ok1817 behaves like track event1818 behaves like a package tracking event1819 creates a gitlab tracking event list_tags1820 with invalid package name1821 package_name: "%20", status: :bad_request1822 behaves like returning response status1823 returns bad_request1824 package_name: nil, status: :not_found1825 behaves like returning response status1826 returns not_found1827 auth: :personal_access_token, package_name_type: :unscoped, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok1828 behaves like accept package tags request1829 with valid package name1830 returns a valid json response1831 returns two package tags1832 behaves like returning response status1833 returns ok1834 behaves like track event1835 behaves like a package tracking event1836 creates a gitlab tracking event list_tags1837 with invalid package name1838 package_name: "%20", status: :bad_request1839 behaves like returning response status1840 returns bad_request1841 package_name: nil, status: :not_found1842 behaves like returning response status1843 returns not_found1844 auth: :personal_access_token, package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :not_found1845 behaves like reject package tags request1846 behaves like returning response status1847 returns not_found1848 auth: :personal_access_token, package_name_type: :non_existing, visibility: :public, user_role: :reporter, expected_result: :reject, expected_status: :not_found1849 behaves like reject package tags request1850 behaves like returning response status1851 returns not_found1852 auth: :personal_access_token, package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1853 behaves like reject package tags request1854 behaves like returning response status1855 returns forbidden1856 auth: :personal_access_token, package_name_type: :scoped_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1857 behaves like accept package tags request1858 with valid package name1859 returns a valid json response1860 returns two package tags1861 behaves like returning response status1862 returns ok1863 behaves like track event1864 behaves like a package tracking event1865 creates a gitlab tracking event list_tags1866 with invalid package name1867 package_name: "%20", status: :bad_request1868 behaves like returning response status1869 returns bad_request1870 package_name: nil, status: :not_found1871 behaves like returning response status1872 returns not_found1873 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1874 behaves like reject package tags request1875 behaves like returning response status1876 returns forbidden1877 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1878 behaves like accept package tags request1879 with valid package name1880 returns a valid json response1881 returns two package tags1882 behaves like returning response status1883 returns ok1884 behaves like track event1885 behaves like a package tracking event1886 creates a gitlab tracking event list_tags1887 with invalid package name1888 package_name: "%20", status: :bad_request1889 behaves like returning response status1890 returns bad_request1891 package_name: nil, status: :not_found1892 behaves like returning response status1893 returns not_found1894 auth: :personal_access_token, package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1895 behaves like reject package tags request1896 behaves like returning response status1897 returns forbidden1898 auth: :personal_access_token, package_name_type: :unscoped, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok1899 behaves like accept package tags request1900 with valid package name1901 returns a valid json response1902 returns two package tags1903 behaves like returning response status1904 returns ok1905 behaves like track event1906 behaves like a package tracking event1907 creates a gitlab tracking event list_tags1908 with invalid package name1909 package_name: "%20", status: :bad_request1910 behaves like returning response status1911 returns bad_request1912 package_name: nil, status: :not_found1913 behaves like returning response status1914 returns not_found1915 auth: :personal_access_token, package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden1916 behaves like reject package tags request1917 behaves like returning response status1918 returns forbidden1919 auth: :personal_access_token, package_name_type: :non_existing, visibility: :private, user_role: :reporter, expected_result: :reject, expected_status: :not_found1920 behaves like reject package tags request1921 behaves like returning response status1922 returns not_found1923 auth: :personal_access_token, package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1924 behaves like accept package tags request1925 with valid package name1926 returns a valid json response1927 returns two package tags1928 behaves like returning response status1929 returns ok1930 behaves like track event1931 behaves like a package tracking event1932 creates a gitlab tracking event list_tags1933 with invalid package name1934 package_name: "%20", status: :bad_request1935 behaves like returning response status1936 returns bad_request1937 package_name: nil, status: :not_found1938 behaves like returning response status1939 returns not_found1940 auth: :personal_access_token, package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1941 behaves like accept package tags request1942 with valid package name1943 returns a valid json response1944 returns two package tags1945 behaves like returning response status1946 returns ok1947 behaves like track event1948 behaves like a package tracking event1949 creates a gitlab tracking event list_tags1950 with invalid package name1951 package_name: "%20", status: :bad_request1952 behaves like returning response status1953 returns bad_request1954 package_name: nil, status: :not_found1955 behaves like returning response status1956 returns not_found1957 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1958 behaves like accept package tags request1959 with valid package name1960 returns a valid json response1961 returns two package tags1962 behaves like returning response status1963 returns ok1964 behaves like track event1965 behaves like a package tracking event1966 creates a gitlab tracking event list_tags1967 with invalid package name1968 package_name: "%20", status: :bad_request1969 behaves like returning response status1970 returns bad_request1971 package_name: nil, status: :not_found1972 behaves like returning response status1973 returns not_found1974 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok1975 behaves like accept package tags request1976 with valid package name1977 returns a valid json response1978 returns two package tags1979 behaves like returning response status1980 returns ok1981 behaves like track event1982 behaves like a package tracking event1983 creates a gitlab tracking event list_tags1984 with invalid package name1985 package_name: "%20", status: :bad_request1986 behaves like returning response status1987 returns bad_request1988 package_name: nil, status: :not_found1989 behaves like returning response status1990 returns not_found1991 auth: :personal_access_token, package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok1992 behaves like accept package tags request1993 with valid package name1994 returns a valid json response1995 returns two package tags1996 behaves like returning response status1997 returns ok1998 behaves like track event1999 behaves like a package tracking event2000 creates a gitlab tracking event list_tags2001 with invalid package name2002 package_name: "%20", status: :bad_request2003 behaves like returning response status2004 returns bad_request2005 package_name: nil, status: :not_found2006 behaves like returning response status2007 returns not_found2008 auth: :personal_access_token, package_name_type: :unscoped, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok2009 behaves like accept package tags request2010 with valid package name2011 returns a valid json response2012 returns two package tags2013 behaves like returning response status2014 returns ok2015 behaves like track event2016 behaves like a package tracking event2017 creates a gitlab tracking event list_tags2018 with invalid package name2019 package_name: "%20", status: :bad_request2020 behaves like returning response status2021 returns bad_request2022 package_name: nil, status: :not_found2023 behaves like returning response status2024 returns not_found2025 auth: :personal_access_token, package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :not_found2026 behaves like reject package tags request2027 behaves like returning response status2028 returns not_found2029 auth: :personal_access_token, package_name_type: :non_existing, visibility: :internal, user_role: :reporter, expected_result: :reject, expected_status: :not_found2030 behaves like reject package tags request2031 behaves like returning response status2032 returns not_found2033 auth: :job_token, package_name_type: :scoped_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok2034 behaves like accept package tags request2035 with valid package name2036 returns a valid json response2037 returns two package tags2038 behaves like returning response status2039 returns ok2040 behaves like track event2041 behaves like a package tracking event2042 creates a gitlab tracking event list_tags2043 with invalid package name2044 package_name: "%20", status: :bad_request2045 behaves like returning response status2046 returns bad_request2047 package_name: nil, status: :not_found2048 behaves like returning response status2049 returns not_found2050 auth: :job_token, package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok2051 behaves like accept package tags request2052 with valid package name2053 returns a valid json response2054 returns two package tags2055 behaves like returning response status2056 returns ok2057 behaves like track event2058 behaves like a package tracking event2059 creates a gitlab tracking event list_tags2060 with invalid package name2061 package_name: "%20", status: :bad_request2062 behaves like returning response status2063 returns bad_request2064 package_name: nil, status: :not_found2065 behaves like returning response status2066 returns not_found2067 auth: :job_token, package_name_type: :unscoped, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok2068 behaves like accept package tags request2069 with valid package name2070 returns a valid json response2071 returns two package tags2072 behaves like returning response status2073 returns ok2074 behaves like track event2075 behaves like a package tracking event2076 creates a gitlab tracking event list_tags2077 with invalid package name2078 package_name: "%20", status: :bad_request2079 behaves like returning response status2080 returns bad_request2081 package_name: nil, status: :not_found2082 behaves like returning response status2083 returns not_found2084 auth: :job_token, package_name_type: :non_existing, visibility: :public, user_role: :developer, expected_result: :reject, expected_status: :not_found2085 behaves like reject package tags request2086 behaves like returning response status2087 returns not_found2088 auth: :job_token, package_name_type: :scoped_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok2089 behaves like accept package tags request2090 with valid package name2091 returns a valid json response2092 returns two package tags2093 behaves like returning response status2094 returns ok2095 behaves like track event2096 behaves like a package tracking event2097 creates a gitlab tracking event list_tags2098 with invalid package name2099 package_name: "%20", status: :bad_request2100 behaves like returning response status2101 returns bad_request2102 package_name: nil, status: :not_found2103 behaves like returning response status2104 returns not_found2105 auth: :job_token, package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok2106 behaves like accept package tags request2107 with valid package name2108 returns a valid json response2109 returns two package tags2110 behaves like returning response status2111 returns ok2112 behaves like track event2113 behaves like a package tracking event2114 creates a gitlab tracking event list_tags2115 with invalid package name2116 package_name: "%20", status: :bad_request2117 behaves like returning response status2118 returns bad_request2119 package_name: nil, status: :not_found2120 behaves like returning response status2121 returns not_found2122 auth: :job_token, package_name_type: :unscoped, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok2123 behaves like accept package tags request2124 with valid package name2125 returns a valid json response2126 returns two package tags2127 behaves like returning response status2128 returns ok2129 behaves like track event2130 behaves like a package tracking event2131 creates a gitlab tracking event list_tags2132 with invalid package name2133 package_name: "%20", status: :bad_request2134 behaves like returning response status2135 returns bad_request2136 package_name: nil, status: :not_found2137 behaves like returning response status2138 returns not_found2139 auth: :job_token, package_name_type: :non_existing, visibility: :private, user_role: :developer, expected_result: :reject, expected_status: :not_found2140 behaves like reject package tags request2141 behaves like returning response status2142 returns not_found2143 auth: :job_token, package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok2144 behaves like accept package tags request2145 with valid package name2146 returns a valid json response2147 returns two package tags2148 behaves like returning response status2149 returns ok2150 behaves like track event2151 behaves like a package tracking event2152 creates a gitlab tracking event list_tags2153 with invalid package name2154 package_name: "%20", status: :bad_request2155 behaves like returning response status2156 returns bad_request2157 package_name: nil, status: :not_found2158 behaves like returning response status2159 returns not_found2160 auth: :job_token, package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok2161 behaves like accept package tags request2162 with valid package name2163 returns a valid json response2164 returns two package tags2165 behaves like returning response status2166 returns ok2167 behaves like track event2168 behaves like a package tracking event2169 creates a gitlab tracking event list_tags2170 with invalid package name2171 package_name: "%20", status: :bad_request2172 behaves like returning response status2173 returns bad_request2174 package_name: nil, status: :not_found2175 behaves like returning response status2176 returns not_found2177 auth: :job_token, package_name_type: :unscoped, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok2178 behaves like accept package tags request2179 with valid package name2180 returns a valid json response2181 returns two package tags2182 behaves like returning response status2183 returns ok2184 behaves like track event2185 behaves like a package tracking event2186 creates a gitlab tracking event list_tags2187 with invalid package name2188 package_name: "%20", status: :bad_request2189 behaves like returning response status2190 returns bad_request2191 package_name: nil, status: :not_found2192 behaves like returning response status2193 returns not_found2194 auth: :job_token, package_name_type: :non_existing, visibility: :internal, user_role: :developer, expected_result: :reject, expected_status: :not_found2195 behaves like reject package tags request2196 behaves like returning response status2197 returns not_found2198 auth: :deploy_token, package_name_type: :scoped_naming_convention, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok2199 behaves like accept package tags request2200 with valid package name2201 returns a valid json response2202 returns two package tags2203 behaves like returning response status2204 returns ok2205 behaves like track event2206 behaves like a package tracking event2207 creates a gitlab tracking event list_tags2208 with invalid package name2209 package_name: "%20", status: :bad_request2210 behaves like returning response status2211 returns bad_request2212 package_name: nil, status: :not_found2213 behaves like returning response status2214 returns not_found2215 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok2216 behaves like accept package tags request2217 with valid package name2218 returns a valid json response2219 returns two package tags2220 behaves like returning response status2221 returns ok2222 behaves like track event2223 behaves like a package tracking event2224 creates a gitlab tracking event list_tags2225 with invalid package name2226 package_name: "%20", status: :bad_request2227 behaves like returning response status2228 returns bad_request2229 package_name: nil, status: :not_found2230 behaves like returning response status2231 returns not_found2232 auth: :deploy_token, package_name_type: :unscoped, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok2233 behaves like accept package tags request2234 with valid package name2235 returns a valid json response2236 returns two package tags2237 behaves like returning response status2238 returns ok2239 behaves like track event2240 behaves like a package tracking event2241 creates a gitlab tracking event list_tags2242 with invalid package name2243 package_name: "%20", status: :bad_request2244 behaves like returning response status2245 returns bad_request2246 package_name: nil, status: :not_found2247 behaves like returning response status2248 returns not_found2249 auth: :deploy_token, package_name_type: :non_existing, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :not_found2250 behaves like reject package tags request2251 behaves like returning response status2252 returns not_found2253 auth: :deploy_token, package_name_type: :scoped_naming_convention, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok2254 behaves like accept package tags request2255 with valid package name2256 returns a valid json response2257 returns two package tags2258 behaves like returning response status2259 returns ok2260 behaves like track event2261 behaves like a package tracking event2262 creates a gitlab tracking event list_tags2263 with invalid package name2264 package_name: "%20", status: :bad_request2265 behaves like returning response status2266 returns bad_request2267 package_name: nil, status: :not_found2268 behaves like returning response status2269 returns not_found2270 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok2271 behaves like accept package tags request2272 with valid package name2273 returns a valid json response2274 returns two package tags2275 behaves like returning response status2276 returns ok2277 behaves like track event2278 behaves like a package tracking event2279 creates a gitlab tracking event list_tags2280 with invalid package name2281 package_name: "%20", status: :bad_request2282 behaves like returning response status2283 returns bad_request2284 package_name: nil, status: :not_found2285 behaves like returning response status2286 returns not_found2287 auth: :deploy_token, package_name_type: :unscoped, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok2288 behaves like accept package tags request2289 with valid package name2290 returns a valid json response2291 returns two package tags2292 behaves like returning response status2293 returns ok2294 behaves like track event2295 behaves like a package tracking event2296 creates a gitlab tracking event list_tags2297 with invalid package name2298 package_name: "%20", status: :bad_request2299 behaves like returning response status2300 returns bad_request2301 package_name: nil, status: :not_found2302 behaves like returning response status2303 returns not_found2304 auth: :deploy_token, package_name_type: :non_existing, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found2305 behaves like reject package tags request2306 behaves like returning response status2307 returns not_found2308 auth: :deploy_token, package_name_type: :scoped_naming_convention, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok2309 behaves like accept package tags request2310 with valid package name2311 returns a valid json response2312 returns two package tags2313 behaves like returning response status2314 returns ok2315 behaves like track event2316 behaves like a package tracking event2317 creates a gitlab tracking event list_tags2318 with invalid package name2319 package_name: "%20", status: :bad_request2320 behaves like returning response status2321 returns bad_request2322 package_name: nil, status: :not_found2323 behaves like returning response status2324 returns not_found2325 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok2326 behaves like accept package tags request2327 with valid package name2328 returns a valid json response2329 returns two package tags2330 behaves like returning response status2331 returns ok2332 behaves like track event2333 behaves like a package tracking event2334 creates a gitlab tracking event list_tags2335 with invalid package name2336 package_name: "%20", status: :bad_request2337 behaves like returning response status2338 returns bad_request2339 package_name: nil, status: :not_found2340 behaves like returning response status2341 returns not_found2342 auth: :deploy_token, package_name_type: :unscoped, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok2343 behaves like accept package tags request2344 with valid package name2345 returns a valid json response2346 returns two package tags2347 behaves like returning response status2348 returns ok2349 behaves like track event2350 behaves like a package tracking event2351 creates a gitlab tracking event list_tags2352 with invalid package name2353 package_name: "%20", status: :bad_request2354 behaves like returning response status2355 returns bad_request2356 package_name: nil, status: :not_found2357 behaves like returning response status2358 returns not_found2359 auth: :deploy_token, package_name_type: :non_existing, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found2360 behaves like reject package tags request2361 behaves like returning response status2362 returns not_found2363 behaves like accept get request on private project with access to package registry for everyone2364 behaves like returning response status2365 returns ok2366 PUT /api/v4/projects/:id/packages/npm/-/package/*package_name/dist-tags/:tag2367 behaves like handling create dist tag requests2368 with a group namespace2369 behaves like handling all conditions2370 behaves like handling different package names, visibilities and user roles for tags create or delete2371 auth: nil, package_name_type: :scoped_naming_convention, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :unauthorized2372 behaves like reject create package tag request2373 behaves like returning response status2374 returns unauthorized2375 auth: nil, package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :unauthorized2376 behaves like reject create package tag request2377 behaves like returning response status2378 returns unauthorized2379 auth: nil, package_name_type: :unscoped, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :unauthorized2380 behaves like reject create package tag request2381 behaves like returning response status2382 returns unauthorized2383 auth: nil, package_name_type: :non_existing, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :unauthorized2384 behaves like reject create package tag request2385 behaves like returning response status2386 returns unauthorized2387 auth: nil, package_name_type: :scoped_naming_convention, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :unauthorized2388 behaves like reject create package tag request2389 behaves like returning response status2390 returns unauthorized2391 auth: nil, package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :unauthorized2392 behaves like reject create package tag request2393 behaves like returning response status2394 returns unauthorized2395 auth: nil, package_name_type: :unscoped, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :unauthorized2396 behaves like reject create package tag request2397 behaves like returning response status2398 returns unauthorized2399 auth: nil, package_name_type: :non_existing, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :unauthorized2400 behaves like reject create package tag request2401 behaves like returning response status2402 returns unauthorized2403 auth: nil, package_name_type: :scoped_naming_convention, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :unauthorized2404 behaves like reject create package tag request2405 behaves like returning response status2406 returns unauthorized2407 auth: nil, package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :unauthorized2408 behaves like reject create package tag request2409 behaves like returning response status2410 returns unauthorized2411 auth: nil, package_name_type: :unscoped, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :unauthorized2412 behaves like reject create package tag request2413 behaves like returning response status2414 returns unauthorized2415 auth: nil, package_name_type: :non_existing, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :unauthorized2416 behaves like reject create package tag request2417 behaves like returning response status2418 returns unauthorized2419 auth: :oauth, package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2420 behaves like reject create package tag request2421 behaves like returning response status2422 returns forbidden2423 auth: :oauth, package_name_type: :scoped_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok2424 behaves like accept create package tag request2425 with valid package name2426 creates the package tag2427 returns a valid response2428 behaves like returning response status2429 returns no_content2430 behaves like track event2431 behaves like a package tracking event2432 creates a gitlab tracking event create_tag2433 with already existing tag2434 reuses existing tag2435 returns a valid response2436 behaves like returning response status2437 returns no_content2438 with invalid package name2439 package_name: "unknown", status: :not_found2440 behaves like returning response status2441 returns not_found2442 package_name: "", status: :not_found2443 behaves like returning response status2444 returns not_found2445 package_name: "%20", status: :bad_request2446 behaves like returning response status2447 returns bad_request2448 with invalid tag name2449 tag_name: "", status: :not_found2450 behaves like returning response status2451 returns not_found2452 tag_name: "%20", status: :bad_request2453 behaves like returning response status2454 returns bad_request2455 with invalid version2456 version: " ", status: :bad_request2457 behaves like returning response status2458 returns bad_request2459 version: "", status: :bad_request2460 behaves like returning response status2461 returns bad_request2462 version: nil, status: :bad_request2463 behaves like returning response status2464 returns bad_request2465 auth: :oauth, package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2466 behaves like reject create package tag request2467 behaves like returning response status2468 returns forbidden2469 auth: :oauth, package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok2470 behaves like accept create package tag request2471 with valid package name2472 creates the package tag2473 returns a valid response2474 behaves like returning response status2475 returns no_content2476 behaves like track event2477 behaves like a package tracking event2478 creates a gitlab tracking event create_tag2479 with already existing tag2480 reuses existing tag2481 returns a valid response2482 behaves like returning response status2483 returns no_content2484 with invalid package name2485 package_name: "unknown", status: :not_found2486 behaves like returning response status2487 returns not_found2488 package_name: "", status: :not_found2489 behaves like returning response status2490 returns not_found2491 package_name: "%20", status: :bad_request2492 behaves like returning response status2493 returns bad_request2494 with invalid tag name2495 tag_name: "", status: :not_found2496 behaves like returning response status2497 returns not_found2498 tag_name: "%20", status: :bad_request2499 behaves like returning response status2500 returns bad_request2501 with invalid version2502 version: " ", status: :bad_request2503 behaves like returning response status2504 returns bad_request2505 version: "", status: :bad_request2506 behaves like returning response status2507 returns bad_request2508 version: nil, status: :bad_request2509 behaves like returning response status2510 returns bad_request2511 auth: :oauth, package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2512 behaves like reject create package tag request2513 behaves like returning response status2514 returns forbidden2515 auth: :oauth, package_name_type: :unscoped, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok2516 behaves like accept create package tag request2517 with valid package name2518 creates the package tag2519 returns a valid response2520 behaves like returning response status2521 returns no_content2522 behaves like track event2523 behaves like a package tracking event2524 creates a gitlab tracking event create_tag2525 with already existing tag2526 reuses existing tag2527 returns a valid response2528 behaves like returning response status2529 returns no_content2530 with invalid package name2531 package_name: "unknown", status: :not_found2532 behaves like returning response status2533 returns not_found2534 package_name: "", status: :not_found2535 behaves like returning response status2536 returns not_found2537 package_name: "%20", status: :bad_request2538 behaves like returning response status2539 returns bad_request2540 with invalid tag name2541 tag_name: "", status: :not_found2542 behaves like returning response status2543 returns not_found2544 tag_name: "%20", status: :bad_request2545 behaves like returning response status2546 returns bad_request2547 with invalid version2548 version: " ", status: :bad_request2549 behaves like returning response status2550 returns bad_request2551 version: "", status: :bad_request2552 behaves like returning response status2553 returns bad_request2554 version: nil, status: :bad_request2555 behaves like returning response status2556 returns bad_request2557 auth: :oauth, package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2558 behaves like reject create package tag request2559 behaves like returning response status2560 returns forbidden2561 auth: :oauth, package_name_type: :non_existing, visibility: :public, user_role: :developer, expected_result: :reject, expected_status: :not_found2562 behaves like reject create package tag request2563 behaves like returning response status2564 returns not_found2565 auth: :oauth, package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2566 behaves like reject create package tag request2567 behaves like returning response status2568 returns forbidden2569 auth: :oauth, package_name_type: :scoped_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok2570 behaves like accept create package tag request2571 with valid package name2572 creates the package tag2573 returns a valid response2574 behaves like returning response status2575 returns no_content2576 behaves like track event2577 behaves like a package tracking event2578 creates a gitlab tracking event create_tag2579 with already existing tag2580 reuses existing tag2581 returns a valid response2582 behaves like returning response status2583 returns no_content2584 with invalid package name2585 package_name: "unknown", status: :not_found2586 behaves like returning response status2587 returns not_found2588 package_name: "", status: :not_found2589 behaves like returning response status2590 returns not_found2591 package_name: "%20", status: :bad_request2592 behaves like returning response status2593 returns bad_request2594 with invalid tag name2595 tag_name: "", status: :not_found2596 behaves like returning response status2597 returns not_found2598 tag_name: "%20", status: :bad_request2599 behaves like returning response status2600 returns bad_request2601 with invalid version2602 version: " ", status: :bad_request2603 behaves like returning response status2604 returns bad_request2605 version: "", status: :bad_request2606 behaves like returning response status2607 returns bad_request2608 version: nil, status: :bad_request2609 behaves like returning response status2610 returns bad_request2611 auth: :oauth, package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2612 behaves like reject create package tag request2613 behaves like returning response status2614 returns forbidden2615 auth: :oauth, package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok2616 behaves like accept create package tag request2617 with valid package name2618 creates the package tag2619 returns a valid response2620 behaves like returning response status2621 returns no_content2622 behaves like track event2623 behaves like a package tracking event2624 creates a gitlab tracking event create_tag2625 with already existing tag2626 reuses existing tag2627 returns a valid response2628 behaves like returning response status2629 returns no_content2630 with invalid package name2631 package_name: "unknown", status: :not_found2632 behaves like returning response status2633 returns not_found2634 package_name: "", status: :not_found2635 behaves like returning response status2636 returns not_found2637 package_name: "%20", status: :bad_request2638 behaves like returning response status2639 returns bad_request2640 with invalid tag name2641 tag_name: "", status: :not_found2642 behaves like returning response status2643 returns not_found2644 tag_name: "%20", status: :bad_request2645 behaves like returning response status2646 returns bad_request2647 with invalid version2648 version: " ", status: :bad_request2649 behaves like returning response status2650 returns bad_request2651 version: "", status: :bad_request2652 behaves like returning response status2653 returns bad_request2654 version: nil, status: :bad_request2655 behaves like returning response status2656 returns bad_request2657 auth: :oauth, package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2658 behaves like reject create package tag request2659 behaves like returning response status2660 returns forbidden2661 auth: :oauth, package_name_type: :unscoped, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok2662 behaves like accept create package tag request2663 with valid package name2664 creates the package tag2665 returns a valid response2666 behaves like returning response status2667 returns no_content2668 behaves like track event2669 behaves like a package tracking event2670 creates a gitlab tracking event create_tag2671 with already existing tag2672 reuses existing tag2673 returns a valid response2674 behaves like returning response status2675 returns no_content2676 with invalid package name2677 package_name: "unknown", status: :not_found2678 behaves like returning response status2679 returns not_found2680 package_name: "", status: :not_found2681 behaves like returning response status2682 returns not_found2683 package_name: "%20", status: :bad_request2684 behaves like returning response status2685 returns bad_request2686 with invalid tag name2687 tag_name: "", status: :not_found2688 behaves like returning response status2689 returns not_found2690 tag_name: "%20", status: :bad_request2691 behaves like returning response status2692 returns bad_request2693 with invalid version2694 version: " ", status: :bad_request2695 behaves like returning response status2696 returns bad_request2697 version: "", status: :bad_request2698 behaves like returning response status2699 returns bad_request2700 version: nil, status: :bad_request2701 behaves like returning response status2702 returns bad_request2703 auth: :oauth, package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden2704 behaves like reject create package tag request2705 behaves like returning response status2706 returns forbidden2707 auth: :oauth, package_name_type: :non_existing, visibility: :private, user_role: :developer, expected_result: :reject, expected_status: :not_found2708 behaves like reject create package tag request2709 behaves like returning response status2710 returns not_found2711 auth: :oauth, package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2712 behaves like reject create package tag request2713 behaves like returning response status2714 returns forbidden2715 auth: :oauth, package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok2716 behaves like accept create package tag request2717 with valid package name2718 creates the package tag2719 returns a valid response2720 behaves like returning response status2721 returns no_content2722 behaves like track event2723 behaves like a package tracking event2724 creates a gitlab tracking event create_tag2725 with already existing tag2726 reuses existing tag2727 returns a valid response2728 behaves like returning response status2729 returns no_content2730 with invalid package name2731 package_name: "unknown", status: :not_found2732 behaves like returning response status2733 returns not_found2734 package_name: "", status: :not_found2735 behaves like returning response status2736 returns not_found2737 package_name: "%20", status: :bad_request2738 behaves like returning response status2739 returns bad_request2740 with invalid tag name2741 tag_name: "", status: :not_found2742 behaves like returning response status2743 returns not_found2744 tag_name: "%20", status: :bad_request2745 behaves like returning response status2746 returns bad_request2747 with invalid version2748 version: " ", status: :bad_request2749 behaves like returning response status2750 returns bad_request2751 version: "", status: :bad_request2752 behaves like returning response status2753 returns bad_request2754 version: nil, status: :bad_request2755 behaves like returning response status2756 returns bad_request2757 auth: :oauth, package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2758 behaves like reject create package tag request2759 behaves like returning response status2760 returns forbidden2761 auth: :oauth, package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok2762 behaves like accept create package tag request2763 with valid package name2764 creates the package tag2765 returns a valid response2766 behaves like returning response status2767 returns no_content2768 behaves like track event2769 behaves like a package tracking event2770 creates a gitlab tracking event create_tag2771 with already existing tag2772 reuses existing tag2773 returns a valid response2774 behaves like returning response status2775 returns no_content2776 with invalid package name2777 package_name: "unknown", status: :not_found2778 behaves like returning response status2779 returns not_found2780 package_name: "", status: :not_found2781 behaves like returning response status2782 returns not_found2783 package_name: "%20", status: :bad_request2784 behaves like returning response status2785 returns bad_request2786 with invalid tag name2787 tag_name: "", status: :not_found2788 behaves like returning response status2789 returns not_found2790 tag_name: "%20", status: :bad_request2791 behaves like returning response status2792 returns bad_request2793 with invalid version2794 version: " ", status: :bad_request2795 behaves like returning response status2796 returns bad_request2797 version: "", status: :bad_request2798 behaves like returning response status2799 returns bad_request2800 version: nil, status: :bad_request2801 behaves like returning response status2802 returns bad_request2803 auth: :oauth, package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2804 behaves like reject create package tag request2805 behaves like returning response status2806 returns forbidden2807 auth: :oauth, package_name_type: :unscoped, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok2808 behaves like accept create package tag request2809 with valid package name2810 creates the package tag2811 returns a valid response2812 behaves like returning response status2813 returns no_content2814 behaves like track event2815 behaves like a package tracking event2816 creates a gitlab tracking event create_tag2817 with already existing tag2818 reuses existing tag2819 returns a valid response2820 behaves like returning response status2821 returns no_content2822 with invalid package name2823 package_name: "unknown", status: :not_found2824 behaves like returning response status2825 returns not_found2826 package_name: "", status: :not_found2827 behaves like returning response status2828 returns not_found2829 package_name: "%20", status: :bad_request2830 behaves like returning response status2831 returns bad_request2832 with invalid tag name2833 tag_name: "", status: :not_found2834 behaves like returning response status2835 returns not_found2836 tag_name: "%20", status: :bad_request2837 behaves like returning response status2838 returns bad_request2839 with invalid version2840 version: " ", status: :bad_request2841 behaves like returning response status2842 returns bad_request2843 version: "", status: :bad_request2844 behaves like returning response status2845 returns bad_request2846 version: nil, status: :bad_request2847 behaves like returning response status2848 returns bad_request2849 auth: :oauth, package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden2850 behaves like reject create package tag request2851 behaves like returning response status2852 returns forbidden2853 auth: :oauth, package_name_type: :non_existing, visibility: :internal, user_role: :developer, expected_result: :reject, expected_status: :not_found2854 behaves like reject create package tag request2855 behaves like returning response status2856 returns not_found2857 auth: :personal_access_token, package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2858 behaves like reject create package tag request2859 behaves like returning response status2860 returns forbidden2861 auth: :personal_access_token, package_name_type: :scoped_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok2862 behaves like accept create package tag request2863 with valid package name2864 creates the package tag2865 returns a valid response2866 behaves like returning response status2867 returns no_content2868 behaves like track event2869 behaves like a package tracking event2870 creates a gitlab tracking event create_tag2871 with already existing tag2872 reuses existing tag2873 returns a valid response2874 behaves like returning response status2875 returns no_content2876 with invalid package name2877 package_name: "unknown", status: :not_found2878 behaves like returning response status2879 returns not_found2880 package_name: "", status: :not_found2881 behaves like returning response status2882 returns not_found2883 package_name: "%20", status: :bad_request2884 behaves like returning response status2885 returns bad_request2886 with invalid tag name2887 tag_name: "", status: :not_found2888 behaves like returning response status2889 returns not_found2890 tag_name: "%20", status: :bad_request2891 behaves like returning response status2892 returns bad_request2893 with invalid version2894 version: " ", status: :bad_request2895 behaves like returning response status2896 returns bad_request2897 version: "", status: :bad_request2898 behaves like returning response status2899 returns bad_request2900 version: nil, status: :bad_request2901 behaves like returning response status2902 returns bad_request2903 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2904 behaves like reject create package tag request2905 behaves like returning response status2906 returns forbidden2907 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok2908 behaves like accept create package tag request2909 with valid package name2910 creates the package tag2911 returns a valid response2912 behaves like returning response status2913 returns no_content2914 behaves like track event2915 behaves like a package tracking event2916 creates a gitlab tracking event create_tag2917 with already existing tag2918 reuses existing tag2919 returns a valid response2920 behaves like returning response status2921 returns no_content2922 with invalid package name2923 package_name: "unknown", status: :not_found2924 behaves like returning response status2925 returns not_found2926 package_name: "", status: :not_found2927 behaves like returning response status2928 returns not_found2929 package_name: "%20", status: :bad_request2930 behaves like returning response status2931 returns bad_request2932 with invalid tag name2933 tag_name: "", status: :not_found2934 behaves like returning response status2935 returns not_found2936 tag_name: "%20", status: :bad_request2937 behaves like returning response status2938 returns bad_request2939 with invalid version2940 version: " ", status: :bad_request2941 behaves like returning response status2942 returns bad_request2943 version: "", status: :bad_request2944 behaves like returning response status2945 returns bad_request2946 version: nil, status: :bad_request2947 behaves like returning response status2948 returns bad_request2949 auth: :personal_access_token, package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2950 behaves like reject create package tag request2951 behaves like returning response status2952 returns forbidden2953 auth: :personal_access_token, package_name_type: :unscoped, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok2954 behaves like accept create package tag request2955 with valid package name2956 creates the package tag2957 returns a valid response2958 behaves like returning response status2959 returns no_content2960 behaves like track event2961 behaves like a package tracking event2962 creates a gitlab tracking event create_tag2963 with already existing tag2964 reuses existing tag2965 returns a valid response2966 behaves like returning response status2967 returns no_content2968 with invalid package name2969 package_name: "unknown", status: :not_found2970 behaves like returning response status2971 returns not_found2972 package_name: "", status: :not_found2973 behaves like returning response status2974 returns not_found2975 package_name: "%20", status: :bad_request2976 behaves like returning response status2977 returns bad_request2978 with invalid tag name2979 tag_name: "", status: :not_found2980 behaves like returning response status2981 returns not_found2982 tag_name: "%20", status: :bad_request2983 behaves like returning response status2984 returns bad_request2985 with invalid version2986 version: " ", status: :bad_request2987 behaves like returning response status2988 returns bad_request2989 version: "", status: :bad_request2990 behaves like returning response status2991 returns bad_request2992 version: nil, status: :bad_request2993 behaves like returning response status2994 returns bad_request2995 auth: :personal_access_token, package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden2996 behaves like reject create package tag request2997 behaves like returning response status2998 returns forbidden2999 auth: :personal_access_token, package_name_type: :non_existing, visibility: :public, user_role: :developer, expected_result: :reject, expected_status: :not_found3000 behaves like reject create package tag request3001 behaves like returning response status3002 returns not_found3003 auth: :personal_access_token, package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3004 behaves like reject create package tag request3005 behaves like returning response status3006 returns forbidden3007 auth: :personal_access_token, package_name_type: :scoped_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok3008 behaves like accept create package tag request3009 with valid package name3010 creates the package tag3011 returns a valid response3012 behaves like returning response status3013 returns no_content3014 behaves like track event3015 behaves like a package tracking event3016 creates a gitlab tracking event create_tag3017 with already existing tag3018 reuses existing tag3019 returns a valid response3020 behaves like returning response status3021 returns no_content3022 with invalid package name3023 package_name: "unknown", status: :not_found3024 behaves like returning response status3025 returns not_found3026 package_name: "", status: :not_found3027 behaves like returning response status3028 returns not_found3029 package_name: "%20", status: :bad_request3030 behaves like returning response status3031 returns bad_request3032 with invalid tag name3033 tag_name: "", status: :not_found3034 behaves like returning response status3035 returns not_found3036 tag_name: "%20", status: :bad_request3037 behaves like returning response status3038 returns bad_request3039 with invalid version3040 version: " ", status: :bad_request3041 behaves like returning response status3042 returns bad_request3043 version: "", status: :bad_request3044 behaves like returning response status3045 returns bad_request3046 version: nil, status: :bad_request3047 behaves like returning response status3048 returns bad_request3049 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3050 behaves like reject create package tag request3051 behaves like returning response status3052 returns forbidden3053 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok3054 behaves like accept create package tag request3055 with valid package name3056 creates the package tag3057 returns a valid response3058 behaves like returning response status3059 returns no_content3060 behaves like track event3061 behaves like a package tracking event3062 creates a gitlab tracking event create_tag3063 with already existing tag3064 reuses existing tag3065 returns a valid response3066 behaves like returning response status3067 returns no_content3068 with invalid package name3069 package_name: "unknown", status: :not_found3070 behaves like returning response status3071 returns not_found3072 package_name: "", status: :not_found3073 behaves like returning response status3074 returns not_found3075 package_name: "%20", status: :bad_request3076 behaves like returning response status3077 returns bad_request3078 with invalid tag name3079 tag_name: "", status: :not_found3080 behaves like returning response status3081 returns not_found3082 tag_name: "%20", status: :bad_request3083 behaves like returning response status3084 returns bad_request3085 with invalid version3086 version: " ", status: :bad_request3087 behaves like returning response status3088 returns bad_request3089 version: "", status: :bad_request3090 behaves like returning response status3091 returns bad_request3092 version: nil, status: :bad_request3093 behaves like returning response status3094 returns bad_request3095 auth: :personal_access_token, package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3096 behaves like reject create package tag request3097 behaves like returning response status3098 returns forbidden3099 auth: :personal_access_token, package_name_type: :unscoped, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok3100 behaves like accept create package tag request3101 with valid package name3102 creates the package tag3103 returns a valid response3104 behaves like returning response status3105 returns no_content3106 behaves like track event3107 behaves like a package tracking event3108 creates a gitlab tracking event create_tag3109 with already existing tag3110 reuses existing tag3111 returns a valid response3112 behaves like returning response status3113 returns no_content3114 with invalid package name3115 package_name: "unknown", status: :not_found3116 behaves like returning response status3117 returns not_found3118 package_name: "", status: :not_found3119 behaves like returning response status3120 returns not_found3121 package_name: "%20", status: :bad_request3122 behaves like returning response status3123 returns bad_request3124 with invalid tag name3125 tag_name: "", status: :not_found3126 behaves like returning response status3127 returns not_found3128 tag_name: "%20", status: :bad_request3129 behaves like returning response status3130 returns bad_request3131 with invalid version3132 version: " ", status: :bad_request3133 behaves like returning response status3134 returns bad_request3135 version: "", status: :bad_request3136 behaves like returning response status3137 returns bad_request3138 version: nil, status: :bad_request3139 behaves like returning response status3140 returns bad_request3141 auth: :personal_access_token, package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden3142 behaves like reject create package tag request3143 behaves like returning response status3144 returns forbidden3145 auth: :personal_access_token, package_name_type: :non_existing, visibility: :private, user_role: :developer, expected_result: :reject, expected_status: :not_found3146 behaves like reject create package tag request3147 behaves like returning response status3148 returns not_found3149 auth: :personal_access_token, package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3150 behaves like reject create package tag request3151 behaves like returning response status3152 returns forbidden3153 auth: :personal_access_token, package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok3154 behaves like accept create package tag request3155 with valid package name3156 creates the package tag3157 returns a valid response3158 behaves like returning response status3159 returns no_content3160 behaves like track event3161 behaves like a package tracking event3162 creates a gitlab tracking event create_tag3163 with already existing tag3164 reuses existing tag3165 returns a valid response3166 behaves like returning response status3167 returns no_content3168 with invalid package name3169 package_name: "unknown", status: :not_found3170 behaves like returning response status3171 returns not_found3172 package_name: "", status: :not_found3173 behaves like returning response status3174 returns not_found3175 package_name: "%20", status: :bad_request3176 behaves like returning response status3177 returns bad_request3178 with invalid tag name3179 tag_name: "", status: :not_found3180 behaves like returning response status3181 returns not_found3182 tag_name: "%20", status: :bad_request3183 behaves like returning response status3184 returns bad_request3185 with invalid version3186 version: " ", status: :bad_request3187 behaves like returning response status3188 returns bad_request3189 version: "", status: :bad_request3190 behaves like returning response status3191 returns bad_request3192 version: nil, status: :bad_request3193 behaves like returning response status3194 returns bad_request3195 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3196 behaves like reject create package tag request3197 behaves like returning response status3198 returns forbidden3199 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok3200 behaves like accept create package tag request3201 with valid package name3202 creates the package tag3203 returns a valid response3204 behaves like returning response status3205 returns no_content3206 behaves like track event3207 behaves like a package tracking event3208 creates a gitlab tracking event create_tag3209 with already existing tag3210 reuses existing tag3211 returns a valid response3212 behaves like returning response status3213 returns no_content3214 with invalid package name3215 package_name: "unknown", status: :not_found3216 behaves like returning response status3217 returns not_found3218 package_name: "", status: :not_found3219 behaves like returning response status3220 returns not_found3221 package_name: "%20", status: :bad_request3222 behaves like returning response status3223 returns bad_request3224 with invalid tag name3225 tag_name: "", status: :not_found3226 behaves like returning response status3227 returns not_found3228 tag_name: "%20", status: :bad_request3229 behaves like returning response status3230 returns bad_request3231 with invalid version3232 version: " ", status: :bad_request3233 behaves like returning response status3234 returns bad_request3235 version: "", status: :bad_request3236 behaves like returning response status3237 returns bad_request3238 version: nil, status: :bad_request3239 behaves like returning response status3240 returns bad_request3241 auth: :personal_access_token, package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3242 behaves like reject create package tag request3243 behaves like returning response status3244 returns forbidden3245 auth: :personal_access_token, package_name_type: :unscoped, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok3246 behaves like accept create package tag request3247 with valid package name3248 creates the package tag3249 returns a valid response3250 behaves like returning response status3251 returns no_content3252 behaves like track event3253 behaves like a package tracking event3254 creates a gitlab tracking event create_tag3255 with already existing tag3256 reuses existing tag3257 returns a valid response3258 behaves like returning response status3259 returns no_content3260 with invalid package name3261 package_name: "unknown", status: :not_found3262 behaves like returning response status3263 returns not_found3264 package_name: "", status: :not_found3265 behaves like returning response status3266 returns not_found3267 package_name: "%20", status: :bad_request3268 behaves like returning response status3269 returns bad_request3270 with invalid tag name3271 tag_name: "", status: :not_found3272 behaves like returning response status3273 returns not_found3274 tag_name: "%20", status: :bad_request3275 behaves like returning response status3276 returns bad_request3277 with invalid version3278 version: " ", status: :bad_request3279 behaves like returning response status3280 returns bad_request3281 version: "", status: :bad_request3282 behaves like returning response status3283 returns bad_request3284 version: nil, status: :bad_request3285 behaves like returning response status3286 returns bad_request3287 auth: :personal_access_token, package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden3288 behaves like reject create package tag request3289 behaves like returning response status3290 returns forbidden3291 auth: :personal_access_token, package_name_type: :non_existing, visibility: :internal, user_role: :developer, expected_result: :reject, expected_status: :not_found3292 behaves like reject create package tag request3293 behaves like returning response status3294 returns not_found3295 auth: :job_token, package_name_type: :scoped_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok3296 behaves like accept create package tag request3297 with valid package name3298 creates the package tag3299 returns a valid response3300 behaves like returning response status3301 returns no_content3302 behaves like track event3303 behaves like a package tracking event3304 creates a gitlab tracking event create_tag3305 with already existing tag3306 reuses existing tag3307 returns a valid response3308 behaves like returning response status3309 returns no_content3310 with invalid package name3311 package_name: "unknown", status: :not_found3312 behaves like returning response status3313 returns not_found3314 package_name: "", status: :not_found3315 behaves like returning response status3316 returns not_found3317 package_name: "%20", status: :bad_request3318 behaves like returning response status3319 returns bad_request3320 with invalid tag name3321 tag_name: "", status: :not_found3322 behaves like returning response status3323 returns not_found3324 tag_name: "%20", status: :bad_request3325 behaves like returning response status3326 returns bad_request3327 with invalid version3328 version: " ", status: :bad_request3329 behaves like returning response status3330 returns bad_request3331 version: "", status: :bad_request3332 behaves like returning response status3333 returns bad_request3334 version: nil, status: :bad_request3335 behaves like returning response status3336 returns bad_request3337 auth: :job_token, package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok3338 behaves like accept create package tag request3339 with valid package name3340 creates the package tag3341 returns a valid response3342 behaves like returning response status3343 returns no_content3344 behaves like track event3345 behaves like a package tracking event3346 creates a gitlab tracking event create_tag3347 with already existing tag3348 reuses existing tag3349 returns a valid response3350 behaves like returning response status3351 returns no_content3352 with invalid package name3353 package_name: "unknown", status: :not_found3354 behaves like returning response status3355 returns not_found3356 package_name: "", status: :not_found3357 behaves like returning response status3358 returns not_found3359 package_name: "%20", status: :bad_request3360 behaves like returning response status3361 returns bad_request3362 with invalid tag name3363 tag_name: "", status: :not_found3364 behaves like returning response status3365 returns not_found3366 tag_name: "%20", status: :bad_request3367 behaves like returning response status3368 returns bad_request3369 with invalid version3370 version: " ", status: :bad_request3371 behaves like returning response status3372 returns bad_request3373 version: "", status: :bad_request3374 behaves like returning response status3375 returns bad_request3376 version: nil, status: :bad_request3377 behaves like returning response status3378 returns bad_request3379 auth: :job_token, package_name_type: :unscoped, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok3380 behaves like accept create package tag request3381 with valid package name3382 creates the package tag3383 returns a valid response3384 behaves like returning response status3385 returns no_content3386 behaves like track event3387 behaves like a package tracking event3388 creates a gitlab tracking event create_tag3389 with already existing tag3390 reuses existing tag3391 returns a valid response3392 behaves like returning response status3393 returns no_content3394 with invalid package name3395 package_name: "unknown", status: :not_found3396 behaves like returning response status3397 returns not_found3398 package_name: "", status: :not_found3399 behaves like returning response status3400 returns not_found3401 package_name: "%20", status: :bad_request3402 behaves like returning response status3403 returns bad_request3404 with invalid tag name3405 tag_name: "", status: :not_found3406 behaves like returning response status3407 returns not_found3408 tag_name: "%20", status: :bad_request3409 behaves like returning response status3410 returns bad_request3411 with invalid version3412 version: " ", status: :bad_request3413 behaves like returning response status3414 returns bad_request3415 version: "", status: :bad_request3416 behaves like returning response status3417 returns bad_request3418 version: nil, status: :bad_request3419 behaves like returning response status3420 returns bad_request3421 auth: :job_token, package_name_type: :non_existing, visibility: :public, user_role: :developer, expected_result: :reject, expected_status: :not_found3422 behaves like reject create package tag request3423 behaves like returning response status3424 returns not_found3425 auth: :job_token, package_name_type: :scoped_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok3426 behaves like accept create package tag request3427 with valid package name3428 creates the package tag3429 returns a valid response3430 behaves like returning response status3431 returns no_content3432 behaves like track event3433 behaves like a package tracking event3434 creates a gitlab tracking event create_tag3435 with already existing tag3436 reuses existing tag3437 returns a valid response3438 behaves like returning response status3439 returns no_content3440 with invalid package name3441 package_name: "unknown", status: :not_found3442 behaves like returning response status3443 returns not_found3444 package_name: "", status: :not_found3445 behaves like returning response status3446 returns not_found3447 package_name: "%20", status: :bad_request3448 behaves like returning response status3449 returns bad_request3450 with invalid tag name3451 tag_name: "", status: :not_found3452 behaves like returning response status3453 returns not_found3454 tag_name: "%20", status: :bad_request3455 behaves like returning response status3456 returns bad_request3457 with invalid version3458 version: " ", status: :bad_request3459 behaves like returning response status3460 returns bad_request3461 version: "", status: :bad_request3462 behaves like returning response status3463 returns bad_request3464 version: nil, status: :bad_request3465 behaves like returning response status3466 returns bad_request3467 auth: :job_token, package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok3468 behaves like accept create package tag request3469 with valid package name3470 creates the package tag3471 returns a valid response3472 behaves like returning response status3473 returns no_content3474 behaves like track event3475 behaves like a package tracking event3476 creates a gitlab tracking event create_tag3477 with already existing tag3478 reuses existing tag3479 returns a valid response3480 behaves like returning response status3481 returns no_content3482 with invalid package name3483 package_name: "unknown", status: :not_found3484 behaves like returning response status3485 returns not_found3486 package_name: "", status: :not_found3487 behaves like returning response status3488 returns not_found3489 package_name: "%20", status: :bad_request3490 behaves like returning response status3491 returns bad_request3492 with invalid tag name3493 tag_name: "", status: :not_found3494 behaves like returning response status3495 returns not_found3496 tag_name: "%20", status: :bad_request3497 behaves like returning response status3498 returns bad_request3499 with invalid version3500 version: " ", status: :bad_request3501 behaves like returning response status3502 returns bad_request3503 version: "", status: :bad_request3504 behaves like returning response status3505 returns bad_request3506 version: nil, status: :bad_request3507 behaves like returning response status3508 returns bad_request3509 auth: :job_token, package_name_type: :unscoped, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok3510 behaves like accept create package tag request3511 with valid package name3512 creates the package tag3513 returns a valid response3514 behaves like returning response status3515 returns no_content3516 behaves like track event3517 behaves like a package tracking event3518 creates a gitlab tracking event create_tag3519 with already existing tag3520 reuses existing tag3521 returns a valid response3522 behaves like returning response status3523 returns no_content3524 with invalid package name3525 package_name: "unknown", status: :not_found3526 behaves like returning response status3527 returns not_found3528 package_name: "", status: :not_found3529 behaves like returning response status3530 returns not_found3531 package_name: "%20", status: :bad_request3532 behaves like returning response status3533 returns bad_request3534 with invalid tag name3535 tag_name: "", status: :not_found3536 behaves like returning response status3537 returns not_found3538 tag_name: "%20", status: :bad_request3539 behaves like returning response status3540 returns bad_request3541 with invalid version3542 version: " ", status: :bad_request3543 behaves like returning response status3544 returns bad_request3545 version: "", status: :bad_request3546 behaves like returning response status3547 returns bad_request3548 version: nil, status: :bad_request3549 behaves like returning response status3550 returns bad_request3551 auth: :job_token, package_name_type: :non_existing, visibility: :private, user_role: :developer, expected_result: :reject, expected_status: :not_found3552 behaves like reject create package tag request3553 behaves like returning response status3554 returns not_found3555 auth: :job_token, package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok3556 behaves like accept create package tag request3557 with valid package name3558 creates the package tag3559 returns a valid response3560 behaves like returning response status3561 returns no_content3562 behaves like track event3563 behaves like a package tracking event3564 creates a gitlab tracking event create_tag3565 with already existing tag3566 reuses existing tag3567 returns a valid response3568 behaves like returning response status3569 returns no_content3570 with invalid package name3571 package_name: "unknown", status: :not_found3572 behaves like returning response status3573 returns not_found3574 package_name: "", status: :not_found3575 behaves like returning response status3576 returns not_found3577 package_name: "%20", status: :bad_request3578 behaves like returning response status3579 returns bad_request3580 with invalid tag name3581 tag_name: "", status: :not_found3582 behaves like returning response status3583 returns not_found3584 tag_name: "%20", status: :bad_request3585 behaves like returning response status3586 returns bad_request3587 with invalid version3588 version: " ", status: :bad_request3589 behaves like returning response status3590 returns bad_request3591 version: "", status: :bad_request3592 behaves like returning response status3593 returns bad_request3594 version: nil, status: :bad_request3595 behaves like returning response status3596 returns bad_request3597 auth: :job_token, package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok3598 behaves like accept create package tag request3599 with valid package name3600 creates the package tag3601 returns a valid response3602 behaves like returning response status3603 returns no_content3604 behaves like track event3605 behaves like a package tracking event3606 creates a gitlab tracking event create_tag3607 with already existing tag3608 reuses existing tag3609 returns a valid response3610 behaves like returning response status3611 returns no_content3612 with invalid package name3613 package_name: "unknown", status: :not_found3614 behaves like returning response status3615 returns not_found3616 package_name: "", status: :not_found3617 behaves like returning response status3618 returns not_found3619 package_name: "%20", status: :bad_request3620 behaves like returning response status3621 returns bad_request3622 with invalid tag name3623 tag_name: "", status: :not_found3624 behaves like returning response status3625 returns not_found3626 tag_name: "%20", status: :bad_request3627 behaves like returning response status3628 returns bad_request3629 with invalid version3630 version: " ", status: :bad_request3631 behaves like returning response status3632 returns bad_request3633 version: "", status: :bad_request3634 behaves like returning response status3635 returns bad_request3636 version: nil, status: :bad_request3637 behaves like returning response status3638 returns bad_request3639 auth: :job_token, package_name_type: :unscoped, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok3640 behaves like accept create package tag request3641 with valid package name3642 creates the package tag3643 returns a valid response3644 behaves like returning response status3645 returns no_content3646 behaves like track event3647 behaves like a package tracking event3648 creates a gitlab tracking event create_tag3649 with already existing tag3650 reuses existing tag3651 returns a valid response3652 behaves like returning response status3653 returns no_content3654 with invalid package name3655 package_name: "unknown", status: :not_found3656 behaves like returning response status3657 returns not_found3658 package_name: "", status: :not_found3659 behaves like returning response status3660 returns not_found3661 package_name: "%20", status: :bad_request3662 behaves like returning response status3663 returns bad_request3664 with invalid tag name3665 tag_name: "", status: :not_found3666 behaves like returning response status3667 returns not_found3668 tag_name: "%20", status: :bad_request3669 behaves like returning response status3670 returns bad_request3671 with invalid version3672 version: " ", status: :bad_request3673 behaves like returning response status3674 returns bad_request3675 version: "", status: :bad_request3676 behaves like returning response status3677 returns bad_request3678 version: nil, status: :bad_request3679 behaves like returning response status3680 returns bad_request3681 auth: :job_token, package_name_type: :non_existing, visibility: :internal, user_role: :developer, expected_result: :reject, expected_status: :not_found3682 behaves like reject create package tag request3683 behaves like returning response status3684 returns not_found3685 auth: :deploy_token, package_name_type: :scoped_naming_convention, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok3686 behaves like accept create package tag request3687 with valid package name3688 creates the package tag3689 returns a valid response3690 behaves like returning response status3691 returns no_content3692 behaves like track event3693 behaves like a package tracking event3694 creates a gitlab tracking event create_tag3695 with already existing tag3696 reuses existing tag3697 returns a valid response3698 behaves like returning response status3699 returns no_content3700 with invalid package name3701 package_name: "unknown", status: :not_found3702 behaves like returning response status3703 returns not_found3704 package_name: "", status: :not_found3705 behaves like returning response status3706 returns not_found3707 package_name: "%20", status: :bad_request3708 behaves like returning response status3709 returns bad_request3710 with invalid tag name3711 tag_name: "", status: :not_found3712 behaves like returning response status3713 returns not_found3714 tag_name: "%20", status: :bad_request3715 behaves like returning response status3716 returns bad_request3717 with invalid version3718 version: " ", status: :bad_request3719 behaves like returning response status3720 returns bad_request3721 version: "", status: :bad_request3722 behaves like returning response status3723 returns bad_request3724 version: nil, status: :bad_request3725 behaves like returning response status3726 returns bad_request3727 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok3728 behaves like accept create package tag request3729 with valid package name3730 creates the package tag3731 returns a valid response3732 behaves like returning response status3733 returns no_content3734 behaves like track event3735 behaves like a package tracking event3736 creates a gitlab tracking event create_tag3737 with already existing tag3738 reuses existing tag3739 returns a valid response3740 behaves like returning response status3741 returns no_content3742 with invalid package name3743 package_name: "unknown", status: :not_found3744 behaves like returning response status3745 returns not_found3746 package_name: "", status: :not_found3747 behaves like returning response status3748 returns not_found3749 package_name: "%20", status: :bad_request3750 behaves like returning response status3751 returns bad_request3752 with invalid tag name3753 tag_name: "", status: :not_found3754 behaves like returning response status3755 returns not_found3756 tag_name: "%20", status: :bad_request3757 behaves like returning response status3758 returns bad_request3759 with invalid version3760 version: " ", status: :bad_request3761 behaves like returning response status3762 returns bad_request3763 version: "", status: :bad_request3764 behaves like returning response status3765 returns bad_request3766 version: nil, status: :bad_request3767 behaves like returning response status3768 returns bad_request3769 auth: :deploy_token, package_name_type: :unscoped, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok3770 behaves like accept create package tag request3771 with valid package name3772 creates the package tag3773 returns a valid response3774 behaves like returning response status3775 returns no_content3776 behaves like track event3777 behaves like a package tracking event3778 creates a gitlab tracking event create_tag3779 with already existing tag3780 reuses existing tag3781 returns a valid response3782 behaves like returning response status3783 returns no_content3784 with invalid package name3785 package_name: "unknown", status: :not_found3786 behaves like returning response status3787 returns not_found3788 package_name: "", status: :not_found3789 behaves like returning response status3790 returns not_found3791 package_name: "%20", status: :bad_request3792 behaves like returning response status3793 returns bad_request3794 with invalid tag name3795 tag_name: "", status: :not_found3796 behaves like returning response status3797 returns not_found3798 tag_name: "%20", status: :bad_request3799 behaves like returning response status3800 returns bad_request3801 with invalid version3802 version: " ", status: :bad_request3803 behaves like returning response status3804 returns bad_request3805 version: "", status: :bad_request3806 behaves like returning response status3807 returns bad_request3808 version: nil, status: :bad_request3809 behaves like returning response status3810 returns bad_request3811 auth: :deploy_token, package_name_type: :non_existing, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :not_found3812 behaves like reject create package tag request3813 behaves like returning response status3814 returns not_found3815 auth: :deploy_token, package_name_type: :scoped_naming_convention, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok3816 behaves like accept create package tag request3817 with valid package name3818 creates the package tag3819 returns a valid response3820 behaves like returning response status3821 returns no_content3822 behaves like track event3823 behaves like a package tracking event3824 creates a gitlab tracking event create_tag3825 with already existing tag3826 reuses existing tag3827 returns a valid response3828 behaves like returning response status3829 returns no_content3830 with invalid package name3831 package_name: "unknown", status: :not_found3832 behaves like returning response status3833 returns not_found3834 package_name: "", status: :not_found3835 behaves like returning response status3836 returns not_found3837 package_name: "%20", status: :bad_request3838 behaves like returning response status3839 returns bad_request3840 with invalid tag name3841 tag_name: "", status: :not_found3842 behaves like returning response status3843 returns not_found3844 tag_name: "%20", status: :bad_request3845 behaves like returning response status3846 returns bad_request3847 with invalid version3848 version: " ", status: :bad_request3849 behaves like returning response status3850 returns bad_request3851 version: "", status: :bad_request3852 behaves like returning response status3853 returns bad_request3854 version: nil, status: :bad_request3855 behaves like returning response status3856 returns bad_request3857 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok3858 behaves like accept create package tag request3859 with valid package name3860 creates the package tag3861 returns a valid response3862 behaves like returning response status3863 returns no_content3864 behaves like track event3865 behaves like a package tracking event3866 creates a gitlab tracking event create_tag3867 with already existing tag3868 reuses existing tag3869 returns a valid response3870 behaves like returning response status3871 returns no_content3872 with invalid package name3873 package_name: "unknown", status: :not_found3874 behaves like returning response status3875 returns not_found3876 package_name: "", status: :not_found3877 behaves like returning response status3878 returns not_found3879 package_name: "%20", status: :bad_request3880 behaves like returning response status3881 returns bad_request3882 with invalid tag name3883 tag_name: "", status: :not_found3884 behaves like returning response status3885 returns not_found3886 tag_name: "%20", status: :bad_request3887 behaves like returning response status3888 returns bad_request3889 with invalid version3890 version: " ", status: :bad_request3891 behaves like returning response status3892 returns bad_request3893 version: "", status: :bad_request3894 behaves like returning response status3895 returns bad_request3896 version: nil, status: :bad_request3897 behaves like returning response status3898 returns bad_request3899 auth: :deploy_token, package_name_type: :unscoped, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok3900 behaves like accept create package tag request3901 with valid package name3902 creates the package tag3903 returns a valid response3904 behaves like returning response status3905 returns no_content3906 behaves like track event3907 behaves like a package tracking event3908 creates a gitlab tracking event create_tag3909 with already existing tag3910 reuses existing tag3911 returns a valid response3912 behaves like returning response status3913 returns no_content3914 with invalid package name3915 package_name: "unknown", status: :not_found3916 behaves like returning response status3917 returns not_found3918 package_name: "", status: :not_found3919 behaves like returning response status3920 returns not_found3921 package_name: "%20", status: :bad_request3922 behaves like returning response status3923 returns bad_request3924 with invalid tag name3925 tag_name: "", status: :not_found3926 behaves like returning response status3927 returns not_found3928 tag_name: "%20", status: :bad_request3929 behaves like returning response status3930 returns bad_request3931 with invalid version3932 version: " ", status: :bad_request3933 behaves like returning response status3934 returns bad_request3935 version: "", status: :bad_request3936 behaves like returning response status3937 returns bad_request3938 version: nil, status: :bad_request3939 behaves like returning response status3940 returns bad_request3941 auth: :deploy_token, package_name_type: :non_existing, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found3942 behaves like reject create package tag request3943 behaves like returning response status3944 returns not_found3945 auth: :deploy_token, package_name_type: :scoped_naming_convention, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok3946 behaves like accept create package tag request3947 with valid package name3948 creates the package tag3949 returns a valid response3950 behaves like returning response status3951 returns no_content3952 behaves like track event3953 behaves like a package tracking event3954 creates a gitlab tracking event create_tag3955 with already existing tag3956 reuses existing tag3957 returns a valid response3958 behaves like returning response status3959 returns no_content3960 with invalid package name3961 package_name: "unknown", status: :not_found3962 behaves like returning response status3963 returns not_found3964 package_name: "", status: :not_found3965 behaves like returning response status3966 returns not_found3967 package_name: "%20", status: :bad_request3968 behaves like returning response status3969 returns bad_request3970 with invalid tag name3971 tag_name: "", status: :not_found3972 behaves like returning response status3973 returns not_found3974 tag_name: "%20", status: :bad_request3975 behaves like returning response status3976 returns bad_request3977 with invalid version3978 version: " ", status: :bad_request3979 behaves like returning response status3980 returns bad_request3981 version: "", status: :bad_request3982 behaves like returning response status3983 returns bad_request3984 version: nil, status: :bad_request3985 behaves like returning response status3986 returns bad_request3987 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok3988 behaves like accept create package tag request3989 with valid package name3990 creates the package tag3991 returns a valid response3992 behaves like returning response status3993 returns no_content3994 behaves like track event3995 behaves like a package tracking event3996 creates a gitlab tracking event create_tag3997 with already existing tag3998 reuses existing tag3999 returns a valid response4000 behaves like returning response status4001 returns no_content4002 with invalid package name4003 package_name: "unknown", status: :not_found4004 behaves like returning response status4005 returns not_found4006 package_name: "", status: :not_found4007 behaves like returning response status4008 returns not_found4009 package_name: "%20", status: :bad_request4010 behaves like returning response status4011 returns bad_request4012 with invalid tag name4013 tag_name: "", status: :not_found4014 behaves like returning response status4015 returns not_found4016 tag_name: "%20", status: :bad_request4017 behaves like returning response status4018 returns bad_request4019 with invalid version4020 version: " ", status: :bad_request4021 behaves like returning response status4022 returns bad_request4023 version: "", status: :bad_request4024 behaves like returning response status4025 returns bad_request4026 version: nil, status: :bad_request4027 behaves like returning response status4028 returns bad_request4029 auth: :deploy_token, package_name_type: :unscoped, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok4030 behaves like accept create package tag request4031 with valid package name4032 creates the package tag4033 returns a valid response4034 behaves like returning response status4035 returns no_content4036 behaves like track event4037 behaves like a package tracking event4038 creates a gitlab tracking event create_tag4039 with already existing tag4040 reuses existing tag4041 returns a valid response4042 behaves like returning response status4043 returns no_content4044 with invalid package name4045 package_name: "unknown", status: :not_found4046 behaves like returning response status4047 returns not_found4048 package_name: "", status: :not_found4049 behaves like returning response status4050 returns not_found4051 package_name: "%20", status: :bad_request4052 behaves like returning response status4053 returns bad_request4054 with invalid tag name4055 tag_name: "", status: :not_found4056 behaves like returning response status4057 returns not_found4058 tag_name: "%20", status: :bad_request4059 behaves like returning response status4060 returns bad_request4061 with invalid version4062 version: " ", status: :bad_request4063 behaves like returning response status4064 returns bad_request4065 version: "", status: :bad_request4066 behaves like returning response status4067 returns bad_request4068 version: nil, status: :bad_request4069 behaves like returning response status4070 returns bad_request4071 auth: :deploy_token, package_name_type: :non_existing, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found4072 behaves like reject create package tag request4073 behaves like returning response status4074 returns not_found4075 DELETE /api/v4/projects/:id/packages/npm/-/package/*package_name/dist-tags/:tag4076 behaves like handling delete dist tag requests4077 with a group namespace4078 behaves like handling all conditions4079 behaves like handling different package names, visibilities and user roles for tags create or delete4080 auth: nil, package_name_type: :scoped_naming_convention, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :unauthorized4081 behaves like reject delete package tag request4082 behaves like returning response status4083 returns unauthorized4084 auth: nil, package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :unauthorized4085 behaves like reject delete package tag request4086 behaves like returning response status4087 returns unauthorized4088 auth: nil, package_name_type: :unscoped, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :unauthorized4089 behaves like reject delete package tag request4090 behaves like returning response status4091 returns unauthorized4092 auth: nil, package_name_type: :non_existing, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :unauthorized4093 behaves like reject delete package tag request4094 behaves like returning response status4095 returns unauthorized4096 auth: nil, package_name_type: :scoped_naming_convention, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :unauthorized4097 behaves like reject delete package tag request4098 behaves like returning response status4099 returns unauthorized4100 auth: nil, package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :unauthorized4101 behaves like reject delete package tag request4102 behaves like returning response status4103 returns unauthorized4104 auth: nil, package_name_type: :unscoped, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :unauthorized4105 behaves like reject delete package tag request4106 behaves like returning response status4107 returns unauthorized4108 auth: nil, package_name_type: :non_existing, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :unauthorized4109 behaves like reject delete package tag request4110 behaves like returning response status4111 returns unauthorized4112 auth: nil, package_name_type: :scoped_naming_convention, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :unauthorized4113 behaves like reject delete package tag request4114 behaves like returning response status4115 returns unauthorized4116 auth: nil, package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :unauthorized4117 behaves like reject delete package tag request4118 behaves like returning response status4119 returns unauthorized4120 auth: nil, package_name_type: :unscoped, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :unauthorized4121 behaves like reject delete package tag request4122 behaves like returning response status4123 returns unauthorized4124 auth: nil, package_name_type: :non_existing, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :unauthorized4125 behaves like reject delete package tag request4126 behaves like returning response status4127 returns unauthorized4128 auth: :oauth, package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden4129 behaves like reject delete package tag request4130 behaves like returning response status4131 returns forbidden4132 auth: :oauth, package_name_type: :scoped_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok4133 behaves like accept delete package tag request4134 with valid package name4135 returns a valid response4136 destroy the package tag4137 behaves like returning response status4138 returns no_content4139 behaves like track event4140 behaves like a package tracking event4141 creates a gitlab tracking event delete_tag4142 with tag from other package4143 behaves like returning response status4144 returns not_found4145 with invalid package name4146 package_name: "unknown", status: :not_found4147 behaves like returning response status4148 returns not_found4149 package_name: "", status: :not_found4150 behaves like returning response status4151 returns not_found4152 package_name: "%20", status: :bad_request4153 behaves like returning response status4154 returns bad_request4155 with invalid tag name4156 tag_name: "unknown", status: :not_found4157 behaves like returning response status4158 returns not_found4159 tag_name: "", status: :not_found4160 behaves like returning response status4161 returns not_found4162 tag_name: "%20", status: :bad_request4163 behaves like returning response status4164 returns bad_request4165 auth: :oauth, package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden4166 behaves like reject delete package tag request4167 behaves like returning response status4168 returns forbidden4169 auth: :oauth, package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok4170 behaves like accept delete package tag request4171 with valid package name4172 returns a valid response4173 destroy the package tag4174 behaves like returning response status4175 returns no_content4176 behaves like track event4177 behaves like a package tracking event4178 creates a gitlab tracking event delete_tag4179 with tag from other package4180 behaves like returning response status4181 returns not_found4182 with invalid package name4183 package_name: "unknown", status: :not_found4184 behaves like returning response status4185 returns not_found4186 package_name: "", status: :not_found4187 behaves like returning response status4188 returns not_found4189 package_name: "%20", status: :bad_request4190 behaves like returning response status4191 returns bad_request4192 with invalid tag name4193 tag_name: "unknown", status: :not_found4194 behaves like returning response status4195 returns not_found4196 tag_name: "", status: :not_found4197 behaves like returning response status4198 returns not_found4199 tag_name: "%20", status: :bad_request4200 behaves like returning response status4201 returns bad_request4202 auth: :oauth, package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden4203 behaves like reject delete package tag request4204 behaves like returning response status4205 returns forbidden4206 auth: :oauth, package_name_type: :unscoped, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok4207 behaves like accept delete package tag request4208 with valid package name4209 returns a valid response4210 destroy the package tag4211 behaves like returning response status4212 returns no_content4213 behaves like track event4214 behaves like a package tracking event4215 creates a gitlab tracking event delete_tag4216 with tag from other package4217 behaves like returning response status4218 returns not_found4219 with invalid package name4220 package_name: "unknown", status: :not_found4221 behaves like returning response status4222 returns not_found4223 package_name: "", status: :not_found4224 behaves like returning response status4225 returns not_found4226 package_name: "%20", status: :bad_request4227 behaves like returning response status4228 returns bad_request4229 with invalid tag name4230 tag_name: "unknown", status: :not_found4231 behaves like returning response status4232 returns not_found4233 tag_name: "", status: :not_found4234 behaves like returning response status4235 returns not_found4236 tag_name: "%20", status: :bad_request4237 behaves like returning response status4238 returns bad_request4239 auth: :oauth, package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden4240 behaves like reject delete package tag request4241 behaves like returning response status4242 returns forbidden4243 auth: :oauth, package_name_type: :non_existing, visibility: :public, user_role: :maintainer, expected_result: :reject, expected_status: :not_found4244 behaves like reject delete package tag request4245 behaves like returning response status4246 returns not_found4247 auth: :oauth, package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden4248 behaves like reject delete package tag request4249 behaves like returning response status4250 returns forbidden4251 auth: :oauth, package_name_type: :scoped_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok4252 behaves like accept delete package tag request4253 with valid package name4254 returns a valid response4255 destroy the package tag4256 behaves like returning response status4257 returns no_content4258 behaves like track event4259 behaves like a package tracking event4260 creates a gitlab tracking event delete_tag4261 with tag from other package4262 behaves like returning response status4263 returns not_found4264 with invalid package name4265 package_name: "unknown", status: :not_found4266 behaves like returning response status4267 returns not_found4268 package_name: "", status: :not_found4269 behaves like returning response status4270 returns not_found4271 package_name: "%20", status: :bad_request4272 behaves like returning response status4273 returns bad_request4274 with invalid tag name4275 tag_name: "unknown", status: :not_found4276 behaves like returning response status4277 returns not_found4278 tag_name: "", status: :not_found4279 behaves like returning response status4280 returns not_found4281 tag_name: "%20", status: :bad_request4282 behaves like returning response status4283 returns bad_request4284 auth: :oauth, package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden4285 behaves like reject delete package tag request4286 behaves like returning response status4287 returns forbidden4288 auth: :oauth, package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok4289 behaves like accept delete package tag request4290 with valid package name4291 returns a valid response4292 destroy the package tag4293 behaves like returning response status4294 returns no_content4295 behaves like track event4296 behaves like a package tracking event4297 creates a gitlab tracking event delete_tag4298 with tag from other package4299 behaves like returning response status4300 returns not_found4301 with invalid package name4302 package_name: "unknown", status: :not_found4303 behaves like returning response status4304 returns not_found4305 package_name: "", status: :not_found4306 behaves like returning response status4307 returns not_found4308 package_name: "%20", status: :bad_request4309 behaves like returning response status4310 returns bad_request4311 with invalid tag name4312 tag_name: "unknown", status: :not_found4313 behaves like returning response status4314 returns not_found4315 tag_name: "", status: :not_found4316 behaves like returning response status4317 returns not_found4318 tag_name: "%20", status: :bad_request4319 behaves like returning response status4320 returns bad_request4321 auth: :oauth, package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden4322 behaves like reject delete package tag request4323 behaves like returning response status4324 returns forbidden4325 auth: :oauth, package_name_type: :unscoped, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok4326 behaves like accept delete package tag request4327 with valid package name4328 returns a valid response4329 destroy the package tag4330 behaves like returning response status4331 returns no_content4332 behaves like track event4333 behaves like a package tracking event4334 creates a gitlab tracking event delete_tag4335 with tag from other package4336 behaves like returning response status4337 returns not_found4338 with invalid package name4339 package_name: "unknown", status: :not_found4340 behaves like returning response status4341 returns not_found4342 package_name: "", status: :not_found4343 behaves like returning response status4344 returns not_found4345 package_name: "%20", status: :bad_request4346 behaves like returning response status4347 returns bad_request4348 with invalid tag name4349 tag_name: "unknown", status: :not_found4350 behaves like returning response status4351 returns not_found4352 tag_name: "", status: :not_found4353 behaves like returning response status4354 returns not_found4355 tag_name: "%20", status: :bad_request4356 behaves like returning response status4357 returns bad_request4358 auth: :oauth, package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden4359 behaves like reject delete package tag request4360 behaves like returning response status4361 returns forbidden4362 auth: :oauth, package_name_type: :non_existing, visibility: :private, user_role: :maintainer, expected_result: :reject, expected_status: :not_found4363 behaves like reject delete package tag request4364 behaves like returning response status4365 returns not_found4366 auth: :oauth, package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden4367 behaves like reject delete package tag request4368 behaves like returning response status4369 returns forbidden4370 auth: :oauth, package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok4371 behaves like accept delete package tag request4372 with valid package name4373 returns a valid response4374 destroy the package tag4375 behaves like returning response status4376 returns no_content4377 behaves like track event4378 behaves like a package tracking event4379 creates a gitlab tracking event delete_tag4380 with tag from other package4381 behaves like returning response status4382 returns not_found4383 with invalid package name4384 package_name: "unknown", status: :not_found4385 behaves like returning response status4386 returns not_found4387 package_name: "", status: :not_found4388 behaves like returning response status4389 returns not_found4390 package_name: "%20", status: :bad_request4391 behaves like returning response status4392 returns bad_request4393 with invalid tag name4394 tag_name: "unknown", status: :not_found4395 behaves like returning response status4396 returns not_found4397 tag_name: "", status: :not_found4398 behaves like returning response status4399 returns not_found4400 tag_name: "%20", status: :bad_request4401 behaves like returning response status4402 returns bad_request4403 auth: :oauth, package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden4404 behaves like reject delete package tag request4405 behaves like returning response status4406 returns forbidden4407 auth: :oauth, package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok4408 behaves like accept delete package tag request4409 with valid package name4410 returns a valid response4411 destroy the package tag4412 behaves like returning response status4413 returns no_content4414 behaves like track event4415 behaves like a package tracking event4416 creates a gitlab tracking event delete_tag4417 with tag from other package4418 behaves like returning response status4419 returns not_found4420 with invalid package name4421 package_name: "unknown", status: :not_found4422 behaves like returning response status4423 returns not_found4424 package_name: "", status: :not_found4425 behaves like returning response status4426 returns not_found4427 package_name: "%20", status: :bad_request4428 behaves like returning response status4429 returns bad_request4430 with invalid tag name4431 tag_name: "unknown", status: :not_found4432 behaves like returning response status4433 returns not_found4434 tag_name: "", status: :not_found4435 behaves like returning response status4436 returns not_found4437 tag_name: "%20", status: :bad_request4438 behaves like returning response status4439 returns bad_request4440 auth: :oauth, package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden4441 behaves like reject delete package tag request4442 behaves like returning response status4443 returns forbidden4444 auth: :oauth, package_name_type: :unscoped, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok4445 behaves like accept delete package tag request4446 with valid package name4447 returns a valid response4448 destroy the package tag4449 behaves like returning response status4450 returns no_content4451 behaves like track event4452 behaves like a package tracking event4453 creates a gitlab tracking event delete_tag4454 with tag from other package4455 behaves like returning response status4456 returns not_found4457 with invalid package name4458 package_name: "unknown", status: :not_found4459 behaves like returning response status4460 returns not_found4461 package_name: "", status: :not_found4462 behaves like returning response status4463 returns not_found4464 package_name: "%20", status: :bad_request4465 behaves like returning response status4466 returns bad_request4467 with invalid tag name4468 tag_name: "unknown", status: :not_found4469 behaves like returning response status4470 returns not_found4471 tag_name: "", status: :not_found4472 behaves like returning response status4473 returns not_found4474 tag_name: "%20", status: :bad_request4475 behaves like returning response status4476 returns bad_request4477 auth: :oauth, package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden4478 behaves like reject delete package tag request4479 behaves like returning response status4480 returns forbidden4481 auth: :oauth, package_name_type: :non_existing, visibility: :internal, user_role: :maintainer, expected_result: :reject, expected_status: :not_found4482 behaves like reject delete package tag request4483 behaves like returning response status4484 returns not_found4485 auth: :personal_access_token, package_name_type: :scoped_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden4486 behaves like reject delete package tag request4487 behaves like returning response status4488 returns forbidden4489 auth: :personal_access_token, package_name_type: :scoped_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok4490 behaves like accept delete package tag request4491 with valid package name4492 returns a valid response4493 destroy the package tag4494 behaves like returning response status4495 returns no_content4496 behaves like track event4497 behaves like a package tracking event4498 creates a gitlab tracking event delete_tag4499 with tag from other package4500 behaves like returning response status4501 returns not_found4502 with invalid package name4503 package_name: "unknown", status: :not_found4504 behaves like returning response status4505 returns not_found4506 package_name: "", status: :not_found4507 behaves like returning response status4508 returns not_found4509 package_name: "%20", status: :bad_request4510 behaves like returning response status4511 returns bad_request4512 with invalid tag name4513 tag_name: "unknown", status: :not_found4514 behaves like returning response status4515 returns not_found4516 tag_name: "", status: :not_found4517 behaves like returning response status4518 returns not_found4519 tag_name: "%20", status: :bad_request4520 behaves like returning response status4521 returns bad_request4522 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden4523 behaves like reject delete package tag request4524 behaves like returning response status4525 returns forbidden4526 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok4527 behaves like accept delete package tag request4528 with valid package name4529 returns a valid response4530 destroy the package tag4531 behaves like returning response status4532 returns no_content4533 behaves like track event4534 behaves like a package tracking event4535 creates a gitlab tracking event delete_tag4536 with tag from other package4537 behaves like returning response status4538 returns not_found4539 with invalid package name4540 package_name: "unknown", status: :not_found4541 behaves like returning response status4542 returns not_found4543 package_name: "", status: :not_found4544 behaves like returning response status4545 returns not_found4546 package_name: "%20", status: :bad_request4547 behaves like returning response status4548 returns bad_request4549 with invalid tag name4550 tag_name: "unknown", status: :not_found4551 behaves like returning response status4552 returns not_found4553 tag_name: "", status: :not_found4554 behaves like returning response status4555 returns not_found4556 tag_name: "%20", status: :bad_request4557 behaves like returning response status4558 returns bad_request4559 auth: :personal_access_token, package_name_type: :unscoped, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden4560 behaves like reject delete package tag request4561 behaves like returning response status4562 returns forbidden4563 auth: :personal_access_token, package_name_type: :unscoped, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok4564 behaves like accept delete package tag request4565 with valid package name4566 returns a valid response4567 destroy the package tag4568 behaves like returning response status4569 returns no_content4570 behaves like track event4571 behaves like a package tracking event4572 creates a gitlab tracking event delete_tag4573 with tag from other package4574 behaves like returning response status4575 returns not_found4576 with invalid package name4577 package_name: "unknown", status: :not_found4578 behaves like returning response status4579 returns not_found4580 package_name: "", status: :not_found4581 behaves like returning response status4582 returns not_found4583 package_name: "%20", status: :bad_request4584 behaves like returning response status4585 returns bad_request4586 with invalid tag name4587 tag_name: "unknown", status: :not_found4588 behaves like returning response status4589 returns not_found4590 tag_name: "", status: :not_found4591 behaves like returning response status4592 returns not_found4593 tag_name: "%20", status: :bad_request4594 behaves like returning response status4595 returns bad_request4596 auth: :personal_access_token, package_name_type: :non_existing, visibility: :public, user_role: :guest, expected_result: :reject, expected_status: :forbidden4597 behaves like reject delete package tag request4598 behaves like returning response status4599 returns forbidden4600 auth: :personal_access_token, package_name_type: :non_existing, visibility: :public, user_role: :maintainer, expected_result: :reject, expected_status: :not_found4601 behaves like reject delete package tag request4602 behaves like returning response status4603 returns not_found4604 auth: :personal_access_token, package_name_type: :scoped_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden4605 behaves like reject delete package tag request4606 behaves like returning response status4607 returns forbidden4608 auth: :personal_access_token, package_name_type: :scoped_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok4609 behaves like accept delete package tag request4610 with valid package name4611 returns a valid response4612 destroy the package tag4613 behaves like returning response status4614 returns no_content4615 behaves like track event4616 behaves like a package tracking event4617 creates a gitlab tracking event delete_tag4618 with tag from other package4619 behaves like returning response status4620 returns not_found4621 with invalid package name4622 package_name: "unknown", status: :not_found4623 behaves like returning response status4624 returns not_found4625 package_name: "", status: :not_found4626 behaves like returning response status4627 returns not_found4628 package_name: "%20", status: :bad_request4629 behaves like returning response status4630 returns bad_request4631 with invalid tag name4632 tag_name: "unknown", status: :not_found4633 behaves like returning response status4634 returns not_found4635 tag_name: "", status: :not_found4636 behaves like returning response status4637 returns not_found4638 tag_name: "%20", status: :bad_request4639 behaves like returning response status4640 returns bad_request4641 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden4642 behaves like reject delete package tag request4643 behaves like returning response status4644 returns forbidden4645 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok4646 behaves like accept delete package tag request4647 with valid package name4648 returns a valid response4649 destroy the package tag4650 behaves like returning response status4651 returns no_content4652 behaves like track event4653 behaves like a package tracking event4654 creates a gitlab tracking event delete_tag4655 with tag from other package4656 behaves like returning response status4657 returns not_found4658 with invalid package name4659 package_name: "unknown", status: :not_found4660 behaves like returning response status4661 returns not_found4662 package_name: "", status: :not_found4663 behaves like returning response status4664 returns not_found4665 package_name: "%20", status: :bad_request4666 behaves like returning response status4667 returns bad_request4668 with invalid tag name4669 tag_name: "unknown", status: :not_found4670 behaves like returning response status4671 returns not_found4672 tag_name: "", status: :not_found4673 behaves like returning response status4674 returns not_found4675 tag_name: "%20", status: :bad_request4676 behaves like returning response status4677 returns bad_request4678 auth: :personal_access_token, package_name_type: :unscoped, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden4679 behaves like reject delete package tag request4680 behaves like returning response status4681 returns forbidden4682 auth: :personal_access_token, package_name_type: :unscoped, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok4683 behaves like accept delete package tag request4684 with valid package name4685 returns a valid response4686 destroy the package tag4687 behaves like returning response status4688 returns no_content4689 behaves like track event4690 behaves like a package tracking event4691 creates a gitlab tracking event delete_tag4692 with tag from other package4693 behaves like returning response status4694 returns not_found4695 with invalid package name4696 package_name: "unknown", status: :not_found4697 behaves like returning response status4698 returns not_found4699 package_name: "", status: :not_found4700 behaves like returning response status4701 returns not_found4702 package_name: "%20", status: :bad_request4703 behaves like returning response status4704 returns bad_request4705 with invalid tag name4706 tag_name: "unknown", status: :not_found4707 behaves like returning response status4708 returns not_found4709 tag_name: "", status: :not_found4710 behaves like returning response status4711 returns not_found4712 tag_name: "%20", status: :bad_request4713 behaves like returning response status4714 returns bad_request4715 auth: :personal_access_token, package_name_type: :non_existing, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden4716 behaves like reject delete package tag request4717 behaves like returning response status4718 returns forbidden4719 auth: :personal_access_token, package_name_type: :non_existing, visibility: :private, user_role: :maintainer, expected_result: :reject, expected_status: :not_found4720 behaves like reject delete package tag request4721 behaves like returning response status4722 returns not_found4723 auth: :personal_access_token, package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden4724 behaves like reject delete package tag request4725 behaves like returning response status4726 returns forbidden4727 auth: :personal_access_token, package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok4728 behaves like accept delete package tag request4729 with valid package name4730 returns a valid response4731 destroy the package tag4732 behaves like returning response status4733 returns no_content4734 behaves like track event4735 behaves like a package tracking event4736 creates a gitlab tracking event delete_tag4737 with tag from other package4738 behaves like returning response status4739 returns not_found4740 with invalid package name4741 package_name: "unknown", status: :not_found4742 behaves like returning response status4743 returns not_found4744 package_name: "", status: :not_found4745 behaves like returning response status4746 returns not_found4747 package_name: "%20", status: :bad_request4748 behaves like returning response status4749 returns bad_request4750 with invalid tag name4751 tag_name: "unknown", status: :not_found4752 behaves like returning response status4753 returns not_found4754 tag_name: "", status: :not_found4755 behaves like returning response status4756 returns not_found4757 tag_name: "%20", status: :bad_request4758 behaves like returning response status4759 returns bad_request4760 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden4761 behaves like reject delete package tag request4762 behaves like returning response status4763 returns forbidden4764 auth: :personal_access_token, package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok4765 behaves like accept delete package tag request4766 with valid package name4767 returns a valid response4768 destroy the package tag4769 behaves like returning response status4770 returns no_content4771 behaves like track event4772 behaves like a package tracking event4773 creates a gitlab tracking event delete_tag4774 with tag from other package4775 behaves like returning response status4776 returns not_found4777 with invalid package name4778 package_name: "unknown", status: :not_found4779 behaves like returning response status4780 returns not_found4781 package_name: "", status: :not_found4782 behaves like returning response status4783 returns not_found4784 package_name: "%20", status: :bad_request4785 behaves like returning response status4786 returns bad_request4787 with invalid tag name4788 tag_name: "unknown", status: :not_found4789 behaves like returning response status4790 returns not_found4791 tag_name: "", status: :not_found4792 behaves like returning response status4793 returns not_found4794 tag_name: "%20", status: :bad_request4795 behaves like returning response status4796 returns bad_request4797 auth: :personal_access_token, package_name_type: :unscoped, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden4798 behaves like reject delete package tag request4799 behaves like returning response status4800 returns forbidden4801 auth: :personal_access_token, package_name_type: :unscoped, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok4802 behaves like accept delete package tag request4803 with valid package name4804 returns a valid response4805 destroy the package tag4806 behaves like returning response status4807 returns no_content4808 behaves like track event4809 behaves like a package tracking event4810 creates a gitlab tracking event delete_tag4811 with tag from other package4812 behaves like returning response status4813 returns not_found4814 with invalid package name4815 package_name: "unknown", status: :not_found4816 behaves like returning response status4817 returns not_found4818 package_name: "", status: :not_found4819 behaves like returning response status4820 returns not_found4821 package_name: "%20", status: :bad_request4822 behaves like returning response status4823 returns bad_request4824 with invalid tag name4825 tag_name: "unknown", status: :not_found4826 behaves like returning response status4827 returns not_found4828 tag_name: "", status: :not_found4829 behaves like returning response status4830 returns not_found4831 tag_name: "%20", status: :bad_request4832 behaves like returning response status4833 returns bad_request4834 auth: :personal_access_token, package_name_type: :non_existing, visibility: :internal, user_role: :guest, expected_result: :reject, expected_status: :forbidden4835 behaves like reject delete package tag request4836 behaves like returning response status4837 returns forbidden4838 auth: :personal_access_token, package_name_type: :non_existing, visibility: :internal, user_role: :maintainer, expected_result: :reject, expected_status: :not_found4839 behaves like reject delete package tag request4840 behaves like returning response status4841 returns not_found4842 auth: :job_token, package_name_type: :scoped_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok4843 behaves like accept delete package tag request4844 with valid package name4845 returns a valid response4846 destroy the package tag4847 behaves like returning response status4848 returns no_content4849 behaves like track event4850 behaves like a package tracking event4851 creates a gitlab tracking event delete_tag4852 with tag from other package4853 behaves like returning response status4854 returns not_found4855 with invalid package name4856 package_name: "unknown", status: :not_found4857 behaves like returning response status4858 returns not_found4859 package_name: "", status: :not_found4860 behaves like returning response status4861 returns not_found4862 package_name: "%20", status: :bad_request4863 behaves like returning response status4864 returns bad_request4865 with invalid tag name4866 tag_name: "unknown", status: :not_found4867 behaves like returning response status4868 returns not_found4869 tag_name: "", status: :not_found4870 behaves like returning response status4871 returns not_found4872 tag_name: "%20", status: :bad_request4873 behaves like returning response status4874 returns bad_request4875 auth: :job_token, package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok4876 behaves like accept delete package tag request4877 with valid package name4878 returns a valid response4879 destroy the package tag4880 behaves like returning response status4881 returns no_content4882 behaves like track event4883 behaves like a package tracking event4884 creates a gitlab tracking event delete_tag4885 with tag from other package4886 behaves like returning response status4887 returns not_found4888 with invalid package name4889 package_name: "unknown", status: :not_found4890 behaves like returning response status4891 returns not_found4892 package_name: "", status: :not_found4893 behaves like returning response status4894 returns not_found4895 package_name: "%20", status: :bad_request4896 behaves like returning response status4897 returns bad_request4898 with invalid tag name4899 tag_name: "unknown", status: :not_found4900 behaves like returning response status4901 returns not_found4902 tag_name: "", status: :not_found4903 behaves like returning response status4904 returns not_found4905 tag_name: "%20", status: :bad_request4906 behaves like returning response status4907 returns bad_request4908 auth: :job_token, package_name_type: :unscoped, visibility: :public, user_role: :maintainer, expected_result: :accept, expected_status: :ok4909 behaves like accept delete package tag request4910 with valid package name4911 returns a valid response4912 destroy the package tag4913 behaves like returning response status4914 returns no_content4915 behaves like track event4916 behaves like a package tracking event4917 creates a gitlab tracking event delete_tag4918 with tag from other package4919 behaves like returning response status4920 returns not_found4921 with invalid package name4922 package_name: "unknown", status: :not_found4923 behaves like returning response status4924 returns not_found4925 package_name: "", status: :not_found4926 behaves like returning response status4927 returns not_found4928 package_name: "%20", status: :bad_request4929 behaves like returning response status4930 returns bad_request4931 with invalid tag name4932 tag_name: "unknown", status: :not_found4933 behaves like returning response status4934 returns not_found4935 tag_name: "", status: :not_found4936 behaves like returning response status4937 returns not_found4938 tag_name: "%20", status: :bad_request4939 behaves like returning response status4940 returns bad_request4941 auth: :job_token, package_name_type: :non_existing, visibility: :public, user_role: :maintainer, expected_result: :reject, expected_status: :not_found4942 behaves like reject delete package tag request4943 behaves like returning response status4944 returns not_found4945 auth: :job_token, package_name_type: :scoped_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok4946 behaves like accept delete package tag request4947 with valid package name4948 returns a valid response4949 destroy the package tag4950 behaves like returning response status4951 returns no_content4952 behaves like track event4953 behaves like a package tracking event4954 creates a gitlab tracking event delete_tag4955 with tag from other package4956 behaves like returning response status4957 returns not_found4958 with invalid package name4959 package_name: "unknown", status: :not_found4960 behaves like returning response status4961 returns not_found4962 package_name: "", status: :not_found4963 behaves like returning response status4964 returns not_found4965 package_name: "%20", status: :bad_request4966 behaves like returning response status4967 returns bad_request4968 with invalid tag name4969 tag_name: "unknown", status: :not_found4970 behaves like returning response status4971 returns not_found4972 tag_name: "", status: :not_found4973 behaves like returning response status4974 returns not_found4975 tag_name: "%20", status: :bad_request4976 behaves like returning response status4977 returns bad_request4978 auth: :job_token, package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok4979 behaves like accept delete package tag request4980 with valid package name4981 returns a valid response4982 destroy the package tag4983 behaves like returning response status4984 returns no_content4985 behaves like track event4986 behaves like a package tracking event4987 creates a gitlab tracking event delete_tag4988 with tag from other package4989 behaves like returning response status4990 returns not_found4991 with invalid package name4992 package_name: "unknown", status: :not_found4993 behaves like returning response status4994 returns not_found4995 package_name: "", status: :not_found4996 behaves like returning response status4997 returns not_found4998 package_name: "%20", status: :bad_request4999 behaves like returning response status5000 returns bad_request5001 with invalid tag name5002 tag_name: "unknown", status: :not_found5003 behaves like returning response status5004 returns not_found5005 tag_name: "", status: :not_found5006 behaves like returning response status5007 returns not_found5008 tag_name: "%20", status: :bad_request5009 behaves like returning response status5010 returns bad_request5011 auth: :job_token, package_name_type: :unscoped, visibility: :private, user_role: :maintainer, expected_result: :accept, expected_status: :ok5012 behaves like accept delete package tag request5013 with valid package name5014 returns a valid response5015 destroy the package tag5016 behaves like returning response status5017 returns no_content5018 behaves like track event5019 behaves like a package tracking event5020 creates a gitlab tracking event delete_tag5021 with tag from other package5022 behaves like returning response status5023 returns not_found5024 with invalid package name5025 package_name: "unknown", status: :not_found5026 behaves like returning response status5027 returns not_found5028 package_name: "", status: :not_found5029 behaves like returning response status5030 returns not_found5031 package_name: "%20", status: :bad_request5032 behaves like returning response status5033 returns bad_request5034 with invalid tag name5035 tag_name: "unknown", status: :not_found5036 behaves like returning response status5037 returns not_found5038 tag_name: "", status: :not_found5039 behaves like returning response status5040 returns not_found5041 tag_name: "%20", status: :bad_request5042 behaves like returning response status5043 returns bad_request5044 auth: :job_token, package_name_type: :non_existing, visibility: :private, user_role: :maintainer, expected_result: :reject, expected_status: :not_found5045 behaves like reject delete package tag request5046 behaves like returning response status5047 returns not_found5048 auth: :job_token, package_name_type: :scoped_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok5049 behaves like accept delete package tag request5050 with valid package name5051 returns a valid response5052 destroy the package tag5053 behaves like returning response status5054 returns no_content5055 behaves like track event5056 behaves like a package tracking event5057 creates a gitlab tracking event delete_tag5058 with tag from other package5059 behaves like returning response status5060 returns not_found5061 with invalid package name5062 package_name: "unknown", status: :not_found5063 behaves like returning response status5064 returns not_found5065 package_name: "", status: :not_found5066 behaves like returning response status5067 returns not_found5068 package_name: "%20", status: :bad_request5069 behaves like returning response status5070 returns bad_request5071 with invalid tag name5072 tag_name: "unknown", status: :not_found5073 behaves like returning response status5074 returns not_found5075 tag_name: "", status: :not_found5076 behaves like returning response status5077 returns not_found5078 tag_name: "%20", status: :bad_request5079 behaves like returning response status5080 returns bad_request5081 auth: :job_token, package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok5082 behaves like accept delete package tag request5083 with valid package name5084 returns a valid response5085 destroy the package tag5086 behaves like returning response status5087 returns no_content5088 behaves like track event5089 behaves like a package tracking event5090 creates a gitlab tracking event delete_tag5091 with tag from other package5092 behaves like returning response status5093 returns not_found5094 with invalid package name5095 package_name: "unknown", status: :not_found5096 behaves like returning response status5097 returns not_found5098 package_name: "", status: :not_found5099 behaves like returning response status5100 returns not_found5101 package_name: "%20", status: :bad_request5102 behaves like returning response status5103 returns bad_request5104 with invalid tag name5105 tag_name: "unknown", status: :not_found5106 behaves like returning response status5107 returns not_found5108 tag_name: "", status: :not_found5109 behaves like returning response status5110 returns not_found5111 tag_name: "%20", status: :bad_request5112 behaves like returning response status5113 returns bad_request5114 auth: :job_token, package_name_type: :unscoped, visibility: :internal, user_role: :maintainer, expected_result: :accept, expected_status: :ok5115 behaves like accept delete package tag request5116 with valid package name5117 returns a valid response5118 destroy the package tag5119 behaves like returning response status5120 returns no_content5121 behaves like track event5122 behaves like a package tracking event5123 creates a gitlab tracking event delete_tag5124 with tag from other package5125 behaves like returning response status5126 returns not_found5127 with invalid package name5128 package_name: "unknown", status: :not_found5129 behaves like returning response status5130 returns not_found5131 package_name: "", status: :not_found5132 behaves like returning response status5133 returns not_found5134 package_name: "%20", status: :bad_request5135 behaves like returning response status5136 returns bad_request5137 with invalid tag name5138 tag_name: "unknown", status: :not_found5139 behaves like returning response status5140 returns not_found5141 tag_name: "", status: :not_found5142 behaves like returning response status5143 returns not_found5144 tag_name: "%20", status: :bad_request5145 behaves like returning response status5146 returns bad_request5147 auth: :job_token, package_name_type: :non_existing, visibility: :internal, user_role: :maintainer, expected_result: :reject, expected_status: :not_found5148 behaves like reject delete package tag request5149 behaves like returning response status5150 returns not_found5151 auth: :deploy_token, package_name_type: :scoped_naming_convention, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok5152 behaves like accept delete package tag request5153 with valid package name5154 returns a valid response5155 destroy the package tag5156 behaves like returning response status5157 returns no_content5158 behaves like track event5159 behaves like a package tracking event5160 creates a gitlab tracking event delete_tag5161 with tag from other package5162 behaves like returning response status5163 returns not_found5164 with invalid package name5165 package_name: "unknown", status: :not_found5166 behaves like returning response status5167 returns not_found5168 package_name: "", status: :not_found5169 behaves like returning response status5170 returns not_found5171 package_name: "%20", status: :bad_request5172 behaves like returning response status5173 returns bad_request5174 with invalid tag name5175 tag_name: "unknown", status: :not_found5176 behaves like returning response status5177 returns not_found5178 tag_name: "", status: :not_found5179 behaves like returning response status5180 returns not_found5181 tag_name: "%20", status: :bad_request5182 behaves like returning response status5183 returns bad_request5184 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok5185 behaves like accept delete package tag request5186 with valid package name5187 returns a valid response5188 destroy the package tag5189 behaves like returning response status5190 returns no_content5191 behaves like track event5192 behaves like a package tracking event5193 creates a gitlab tracking event delete_tag5194 with tag from other package5195 behaves like returning response status5196 returns not_found5197 with invalid package name5198 package_name: "unknown", status: :not_found5199 behaves like returning response status5200 returns not_found5201 package_name: "", status: :not_found5202 behaves like returning response status5203 returns not_found5204 package_name: "%20", status: :bad_request5205 behaves like returning response status5206 returns bad_request5207 with invalid tag name5208 tag_name: "unknown", status: :not_found5209 behaves like returning response status5210 returns not_found5211 tag_name: "", status: :not_found5212 behaves like returning response status5213 returns not_found5214 tag_name: "%20", status: :bad_request5215 behaves like returning response status5216 returns bad_request5217 auth: :deploy_token, package_name_type: :unscoped, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok5218 behaves like accept delete package tag request5219 with valid package name5220 returns a valid response5221 destroy the package tag5222 behaves like returning response status5223 returns no_content5224 behaves like track event5225 behaves like a package tracking event5226 creates a gitlab tracking event delete_tag5227 with tag from other package5228 behaves like returning response status5229 returns not_found5230 with invalid package name5231 package_name: "unknown", status: :not_found5232 behaves like returning response status5233 returns not_found5234 package_name: "", status: :not_found5235 behaves like returning response status5236 returns not_found5237 package_name: "%20", status: :bad_request5238 behaves like returning response status5239 returns bad_request5240 with invalid tag name5241 tag_name: "unknown", status: :not_found5242 behaves like returning response status5243 returns not_found5244 tag_name: "", status: :not_found5245 behaves like returning response status5246 returns not_found5247 tag_name: "%20", status: :bad_request5248 behaves like returning response status5249 returns bad_request5250 auth: :deploy_token, package_name_type: :non_existing, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :not_found5251 behaves like reject delete package tag request5252 behaves like returning response status5253 returns not_found5254 auth: :deploy_token, package_name_type: :scoped_naming_convention, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok5255 behaves like accept delete package tag request5256 with valid package name5257 returns a valid response5258 destroy the package tag5259 behaves like returning response status5260 returns no_content5261 behaves like track event5262 behaves like a package tracking event5263 creates a gitlab tracking event delete_tag5264 with tag from other package5265 behaves like returning response status5266 returns not_found5267 with invalid package name5268 package_name: "unknown", status: :not_found5269 behaves like returning response status5270 returns not_found5271 package_name: "", status: :not_found5272 behaves like returning response status5273 returns not_found5274 package_name: "%20", status: :bad_request5275 behaves like returning response status5276 returns bad_request5277 with invalid tag name5278 tag_name: "unknown", status: :not_found5279 behaves like returning response status5280 returns not_found5281 tag_name: "", status: :not_found5282 behaves like returning response status5283 returns not_found5284 tag_name: "%20", status: :bad_request5285 behaves like returning response status5286 returns bad_request5287 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok5288 behaves like accept delete package tag request5289 with valid package name5290 returns a valid response5291 destroy the package tag5292 behaves like returning response status5293 returns no_content5294 behaves like track event5295 behaves like a package tracking event5296 creates a gitlab tracking event delete_tag5297 with tag from other package5298 behaves like returning response status5299 returns not_found5300 with invalid package name5301 package_name: "unknown", status: :not_found5302 behaves like returning response status5303 returns not_found5304 package_name: "", status: :not_found5305 behaves like returning response status5306 returns not_found5307 package_name: "%20", status: :bad_request5308 behaves like returning response status5309 returns bad_request5310 with invalid tag name5311 tag_name: "unknown", status: :not_found5312 behaves like returning response status5313 returns not_found5314 tag_name: "", status: :not_found5315 behaves like returning response status5316 returns not_found5317 tag_name: "%20", status: :bad_request5318 behaves like returning response status5319 returns bad_request5320 auth: :deploy_token, package_name_type: :unscoped, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok5321 behaves like accept delete package tag request5322 with valid package name5323 returns a valid response5324 destroy the package tag5325 behaves like returning response status5326 returns no_content5327 behaves like track event5328 behaves like a package tracking event5329 creates a gitlab tracking event delete_tag5330 with tag from other package5331 behaves like returning response status5332 returns not_found5333 with invalid package name5334 package_name: "unknown", status: :not_found5335 behaves like returning response status5336 returns not_found5337 package_name: "", status: :not_found5338 behaves like returning response status5339 returns not_found5340 package_name: "%20", status: :bad_request5341 behaves like returning response status5342 returns bad_request5343 with invalid tag name5344 tag_name: "unknown", status: :not_found5345 behaves like returning response status5346 returns not_found5347 tag_name: "", status: :not_found5348 behaves like returning response status5349 returns not_found5350 tag_name: "%20", status: :bad_request5351 behaves like returning response status5352 returns bad_request5353 auth: :deploy_token, package_name_type: :non_existing, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :not_found5354 behaves like reject delete package tag request5355 behaves like returning response status5356 returns not_found5357 auth: :deploy_token, package_name_type: :scoped_naming_convention, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok5358 behaves like accept delete package tag request5359 with valid package name5360 returns a valid response5361 destroy the package tag5362 behaves like returning response status5363 returns no_content5364 behaves like track event5365 behaves like a package tracking event5366 creates a gitlab tracking event delete_tag5367 with tag from other package5368 behaves like returning response status5369 returns not_found5370 with invalid package name5371 package_name: "unknown", status: :not_found5372 behaves like returning response status5373 returns not_found5374 package_name: "", status: :not_found5375 behaves like returning response status5376 returns not_found5377 package_name: "%20", status: :bad_request5378 behaves like returning response status5379 returns bad_request5380 with invalid tag name5381 tag_name: "unknown", status: :not_found5382 behaves like returning response status5383 returns not_found5384 tag_name: "", status: :not_found5385 behaves like returning response status5386 returns not_found5387 tag_name: "%20", status: :bad_request5388 behaves like returning response status5389 returns bad_request5390 auth: :deploy_token, package_name_type: :scoped_no_naming_convention, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok5391 behaves like accept delete package tag request5392 with valid package name5393 returns a valid response5394 destroy the package tag5395 behaves like returning response status5396 returns no_content5397 behaves like track event5398 behaves like a package tracking event5399 creates a gitlab tracking event delete_tag5400 with tag from other package5401 behaves like returning response status5402 returns not_found5403 with invalid package name5404 package_name: "unknown", status: :not_found5405 behaves like returning response status5406 returns not_found5407 package_name: "", status: :not_found5408 behaves like returning response status5409 returns not_found5410 package_name: "%20", status: :bad_request5411 behaves like returning response status5412 returns bad_request5413 with invalid tag name5414 tag_name: "unknown", status: :not_found5415 behaves like returning response status5416 returns not_found5417 tag_name: "", status: :not_found5418 behaves like returning response status5419 returns not_found5420 tag_name: "%20", status: :bad_request5421 behaves like returning response status5422 returns bad_request5423 auth: :deploy_token, package_name_type: :unscoped, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok5424 behaves like accept delete package tag request5425 with valid package name5426 returns a valid response5427 destroy the package tag5428 behaves like returning response status5429 returns no_content5430 behaves like track event5431 behaves like a package tracking event5432 creates a gitlab tracking event delete_tag5433 with tag from other package5434 behaves like returning response status5435 returns not_found5436 with invalid package name5437 package_name: "unknown", status: :not_found5438 behaves like returning response status5439 returns not_found5440 package_name: "", status: :not_found5441 behaves like returning response status5442 returns not_found5443 package_name: "%20", status: :bad_request5444 behaves like returning response status5445 returns bad_request5446 with invalid tag name5447 tag_name: "unknown", status: :not_found5448 behaves like returning response status5449 returns not_found5450 tag_name: "", status: :not_found5451 behaves like returning response status5452 returns not_found5453 tag_name: "%20", status: :bad_request5454 behaves like returning response status5455 returns bad_request5456 auth: :deploy_token, package_name_type: :non_existing, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :not_found5457 behaves like reject delete package tag request5458 behaves like returning response status5459 returns not_found5460 POST /api/v4/projects/:id/packages/npm/-/npm/v1/security/advisories/bulk5461 behaves like handling audit request5462 with a group namespace5463 behaves like handling all conditions5464 auth: nil, request_forward: true, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :unauthorized5465 behaves like reject audit request5466 rejects the audit request5467 auth: nil, request_forward: false, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :unauthorized5468 behaves like reject audit request5469 rejects the audit request5470 auth: nil, request_forward: true, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :unauthorized5471 behaves like reject audit request5472 rejects the audit request5473 auth: nil, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :unauthorized5474 behaves like reject audit request5475 rejects the audit request5476 auth: nil, request_forward: true, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :unauthorized5477 behaves like reject audit request5478 rejects the audit request5479 auth: nil, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :unauthorized5480 behaves like reject audit request5481 rejects the audit request5482 auth: :oauth, request_forward: true, visibility: :public, user_role: :guest, expected_result: :redirect, expected_status: :temporary_redirect5483 behaves like redirect audit request5484 redirects audit request5485 auth: :oauth, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :redirect, expected_status: :temporary_redirect5486 behaves like redirect audit request5487 redirects audit request5488 auth: :oauth, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok5489 behaves like accept audit request5490 accepts the audit request5491 auth: :oauth, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok5492 behaves like accept audit request5493 accepts the audit request5494 auth: :oauth, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :redirect, expected_status: :temporary_redirect5495 behaves like redirect audit request5496 redirects audit request5497 auth: :oauth, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden5498 behaves like reject audit request5499 rejects the audit request5500 auth: :oauth, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok5501 behaves like accept audit request5502 accepts the audit request5503 auth: :oauth, request_forward: true, visibility: :private, user_role: :guest, expected_result: :redirect, expected_status: :temporary_redirect5504 behaves like redirect audit request5505 redirects audit request5506 auth: :oauth, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :redirect, expected_status: :temporary_redirect5507 behaves like redirect audit request5508 redirects audit request5509 auth: :oauth, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :redirect, expected_status: :temporary_redirect5510 behaves like redirect audit request5511 redirects audit request5512 auth: :oauth, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok5513 behaves like accept audit request5514 accepts the audit request5515 auth: :oauth, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok5516 behaves like accept audit request5517 accepts the audit request5518 auth: :personal_access_token, request_forward: true, visibility: :public, user_role: :guest, expected_result: :redirect, expected_status: :temporary_redirect5519 behaves like redirect audit request5520 redirects audit request5521 auth: :personal_access_token, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :redirect, expected_status: :temporary_redirect5522 behaves like redirect audit request5523 redirects audit request5524 auth: :personal_access_token, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok5525 behaves like accept audit request5526 accepts the audit request5527 auth: :personal_access_token, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok5528 behaves like accept audit request5529 accepts the audit request5530 auth: :personal_access_token, request_forward: true, visibility: :private, user_role: :guest, expected_result: :redirect, expected_status: :temporary_redirect5531 behaves like redirect audit request5532 redirects audit request5533 auth: :personal_access_token, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :redirect, expected_status: :temporary_redirect5534 behaves like redirect audit request5535 redirects audit request5536 auth: :personal_access_token, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden5537 behaves like reject audit request5538 rejects the audit request5539 auth: :personal_access_token, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok5540 behaves like accept audit request5541 accepts the audit request5542 auth: :personal_access_token, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :redirect, expected_status: :temporary_redirect5543 behaves like redirect audit request5544 redirects audit request5545 auth: :personal_access_token, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :redirect, expected_status: :temporary_redirect5546 behaves like redirect audit request5547 redirects audit request5548 auth: :personal_access_token, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok5549 behaves like accept audit request5550 accepts the audit request5551 auth: :personal_access_token, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok5552 behaves like accept audit request5553 accepts the audit request5554 auth: :job_token, request_forward: true, visibility: :public, user_role: :developer, expected_result: :redirect, expected_status: :temporary_redirect5555 behaves like redirect audit request5556 redirects audit request5557 auth: :job_token, request_forward: false, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok5558 behaves like accept audit request5559 accepts the audit request5560 auth: :job_token, request_forward: true, visibility: :private, user_role: :developer, expected_result: :redirect, expected_status: :temporary_redirect5561 behaves like redirect audit request5562 redirects audit request5563 auth: :job_token, request_forward: false, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok5564 behaves like accept audit request5565 accepts the audit request5566 auth: :job_token, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :redirect, expected_status: :temporary_redirect5567 behaves like redirect audit request5568 redirects audit request5569 auth: :job_token, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok5570 behaves like accept audit request5571 accepts the audit request5572 auth: :deploy_token, request_forward: true, visibility: :public, user_role: nil, expected_result: :redirect, expected_status: :temporary_redirect5573 behaves like redirect audit request5574 redirects audit request5575 auth: :deploy_token, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok5576 behaves like accept audit request5577 accepts the audit request5578 auth: :deploy_token, request_forward: true, visibility: :private, user_role: nil, expected_result: :redirect, expected_status: :temporary_redirect5579 behaves like redirect audit request5580 redirects audit request5581 auth: :deploy_token, request_forward: false, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok5582 behaves like accept audit request5583 accepts the audit request5584 auth: :deploy_token, request_forward: true, visibility: :internal, user_role: nil, expected_result: :redirect, expected_status: :temporary_redirect5585 behaves like redirect audit request5586 redirects audit request5587 auth: :deploy_token, request_forward: false, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok5588 behaves like accept audit request5589 accepts the audit request5590 with a developer5591 with a job token5592 behaves like reject audit request5593 rejects the audit request5594 POST /api/v4/projects/:id/packages/npm/-/npm/v1/security/audits/quick5595 behaves like handling audit request5596 with a group namespace5597 behaves like handling all conditions5598 auth: nil, request_forward: true, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :unauthorized5599 behaves like reject audit request5600 rejects the audit request5601 auth: nil, request_forward: false, visibility: :public, user_role: nil, expected_result: :reject, expected_status: :unauthorized5602 behaves like reject audit request5603 rejects the audit request5604 auth: nil, request_forward: true, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :unauthorized5605 behaves like reject audit request5606 rejects the audit request5607 auth: nil, request_forward: false, visibility: :private, user_role: nil, expected_result: :reject, expected_status: :unauthorized5608 behaves like reject audit request5609 rejects the audit request5610 auth: nil, request_forward: true, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :unauthorized5611 behaves like reject audit request5612 rejects the audit request5613 auth: nil, request_forward: false, visibility: :internal, user_role: nil, expected_result: :reject, expected_status: :unauthorized5614 behaves like reject audit request5615 rejects the audit request5616 auth: :oauth, request_forward: true, visibility: :public, user_role: :guest, expected_result: :redirect, expected_status: :temporary_redirect5617 behaves like redirect audit request5618 redirects audit request5619 auth: :oauth, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :redirect, expected_status: :temporary_redirect5620 behaves like redirect audit request5621 redirects audit request5622 auth: :oauth, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok5623 behaves like accept audit request5624 accepts the audit request5625 auth: :oauth, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok5626 behaves like accept audit request5627 accepts the audit request5628 auth: :oauth, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :redirect, expected_status: :temporary_redirect5629 behaves like redirect audit request5630 redirects audit request5631 auth: :oauth, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden5632 behaves like reject audit request5633 rejects the audit request5634 auth: :oauth, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok5635 behaves like accept audit request5636 accepts the audit request5637 auth: :oauth, request_forward: true, visibility: :private, user_role: :guest, expected_result: :redirect, expected_status: :temporary_redirect5638 behaves like redirect audit request5639 redirects audit request5640 auth: :oauth, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :redirect, expected_status: :temporary_redirect5641 behaves like redirect audit request5642 redirects audit request5643 auth: :oauth, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :redirect, expected_status: :temporary_redirect5644 behaves like redirect audit request5645 redirects audit request5646 auth: :oauth, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok5647 behaves like accept audit request5648 accepts the audit request5649 auth: :oauth, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok5650 behaves like accept audit request5651 accepts the audit request5652 auth: :personal_access_token, request_forward: true, visibility: :public, user_role: :guest, expected_result: :redirect, expected_status: :temporary_redirect5653 behaves like redirect audit request5654 redirects audit request5655 auth: :personal_access_token, request_forward: true, visibility: :public, user_role: :reporter, expected_result: :redirect, expected_status: :temporary_redirect5656 behaves like redirect audit request5657 redirects audit request5658 auth: :personal_access_token, request_forward: false, visibility: :public, user_role: :guest, expected_result: :accept, expected_status: :ok5659 behaves like accept audit request5660 accepts the audit request5661 auth: :personal_access_token, request_forward: false, visibility: :public, user_role: :reporter, expected_result: :accept, expected_status: :ok5662 behaves like accept audit request5663 accepts the audit request5664 auth: :personal_access_token, request_forward: true, visibility: :private, user_role: :guest, expected_result: :redirect, expected_status: :temporary_redirect5665 behaves like redirect audit request5666 redirects audit request5667 auth: :personal_access_token, request_forward: true, visibility: :private, user_role: :reporter, expected_result: :redirect, expected_status: :temporary_redirect5668 behaves like redirect audit request5669 redirects audit request5670 auth: :personal_access_token, request_forward: false, visibility: :private, user_role: :guest, expected_result: :reject, expected_status: :forbidden5671 behaves like reject audit request5672 rejects the audit request5673 auth: :personal_access_token, request_forward: false, visibility: :private, user_role: :reporter, expected_result: :accept, expected_status: :ok5674 behaves like accept audit request5675 accepts the audit request5676 auth: :personal_access_token, request_forward: true, visibility: :internal, user_role: :guest, expected_result: :redirect, expected_status: :temporary_redirect5677 behaves like redirect audit request5678 redirects audit request5679 auth: :personal_access_token, request_forward: true, visibility: :internal, user_role: :reporter, expected_result: :redirect, expected_status: :temporary_redirect5680 behaves like redirect audit request5681 redirects audit request5682 auth: :personal_access_token, request_forward: false, visibility: :internal, user_role: :guest, expected_result: :accept, expected_status: :ok5683 behaves like accept audit request5684 accepts the audit request5685 auth: :personal_access_token, request_forward: false, visibility: :internal, user_role: :reporter, expected_result: :accept, expected_status: :ok5686 behaves like accept audit request5687 accepts the audit request5688 auth: :job_token, request_forward: true, visibility: :public, user_role: :developer, expected_result: :redirect, expected_status: :temporary_redirect5689 behaves like redirect audit request5690 redirects audit request5691 auth: :job_token, request_forward: false, visibility: :public, user_role: :developer, expected_result: :accept, expected_status: :ok5692 behaves like accept audit request5693 accepts the audit request5694 auth: :job_token, request_forward: true, visibility: :private, user_role: :developer, expected_result: :redirect, expected_status: :temporary_redirect5695 behaves like redirect audit request5696 redirects audit request5697 auth: :job_token, request_forward: false, visibility: :private, user_role: :developer, expected_result: :accept, expected_status: :ok5698 behaves like accept audit request5699 accepts the audit request5700 auth: :job_token, request_forward: true, visibility: :internal, user_role: :developer, expected_result: :redirect, expected_status: :temporary_redirect5701 behaves like redirect audit request5702 redirects audit request5703 auth: :job_token, request_forward: false, visibility: :internal, user_role: :developer, expected_result: :accept, expected_status: :ok5704 behaves like accept audit request5705 accepts the audit request5706 auth: :deploy_token, request_forward: true, visibility: :public, user_role: nil, expected_result: :redirect, expected_status: :temporary_redirect5707 behaves like redirect audit request5708 redirects audit request5709 auth: :deploy_token, request_forward: false, visibility: :public, user_role: nil, expected_result: :accept, expected_status: :ok5710 behaves like accept audit request5711 accepts the audit request5712 auth: :deploy_token, request_forward: true, visibility: :private, user_role: nil, expected_result: :redirect, expected_status: :temporary_redirect5713 behaves like redirect audit request5714 redirects audit request5715 auth: :deploy_token, request_forward: false, visibility: :private, user_role: nil, expected_result: :accept, expected_status: :ok5716 behaves like accept audit request5717 accepts the audit request5718 auth: :deploy_token, request_forward: true, visibility: :internal, user_role: nil, expected_result: :redirect, expected_status: :temporary_redirect5719 behaves like redirect audit request5720 redirects audit request5721 auth: :deploy_token, request_forward: false, visibility: :internal, user_role: nil, expected_result: :accept, expected_status: :ok5722 behaves like accept audit request5723 accepts the audit request5724 with a developer5725 with a job token5726 behaves like reject audit request5727 rejects the audit request5728 GET /api/v4/projects/:id/packages/npm/*package_name/-/*file_name5729 a public project5730 behaves like successfully downloads the file5731 returns the file5732 behaves like a package tracking event5733 creates a gitlab tracking event pull_package5734 behaves like bumping the package last downloaded at field5735DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and5736from Rails 7.1 will use the default Ruby implementation.5737You can set `config.active_support.remove_deprecated_time_with_zone_name = true`5738to enable the new behavior now.5739 (called from block (2 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/packages_shared_examples.rb:183)5740 bumps last_downloaded_at5741 with a job token for a different user5742 behaves like successfully downloads the file5743 returns the file5744 private project5745 behaves like a package file that requires auth5746 denies download with no token5747 with access token5748 behaves like successfully downloads the file5749 returns the file5750 behaves like a package tracking event5751 creates a gitlab tracking event pull_package5752 behaves like bumping the package last downloaded at field5753DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and5754from Rails 7.1 will use the default Ruby implementation.5755You can set `config.active_support.remove_deprecated_time_with_zone_name = true`5756to enable the new behavior now.5757 (called from block (2 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/packages_shared_examples.rb:183)5758 bumps last_downloaded_at5759 with job token5760 behaves like successfully downloads the file5761 returns the file5762 behaves like a package tracking event5763 creates a gitlab tracking event pull_package5764 behaves like bumping the package last downloaded at field5765DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and5766from Rails 7.1 will use the default Ruby implementation.5767You can set `config.active_support.remove_deprecated_time_with_zone_name = true`5768to enable the new behavior now.5769 (called from block (2 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/packages_shared_examples.rb:183)5770 bumps last_downloaded_at5771 with guest5772 denies download when not enough permissions5773 with access to package registry for everyone5774 behaves like successfully downloads the file5775 returns the file5776 internal project5777 behaves like a package file that requires auth5778 denies download with no token5779 with access token5780 behaves like successfully downloads the file5781 returns the file5782 behaves like a package tracking event5783 creates a gitlab tracking event pull_package5784 behaves like bumping the package last downloaded at field5785DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and5786from Rails 7.1 will use the default Ruby implementation.5787You can set `config.active_support.remove_deprecated_time_with_zone_name = true`5788to enable the new behavior now.5789 (called from block (2 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/packages_shared_examples.rb:183)5790 bumps last_downloaded_at5791 with job token5792 behaves like successfully downloads the file5793 returns the file5794 behaves like a package tracking event5795 creates a gitlab tracking event pull_package5796 behaves like bumping the package last downloaded at field5797DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and5798from Rails 7.1 will use the default Ruby implementation.5799You can set `config.active_support.remove_deprecated_time_with_zone_name = true`5800to enable the new behavior now.5801 (called from block (2 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/support/shared_examples/requests/api/packages_shared_examples.rb:183)5802 bumps last_downloaded_at5803 with a job token for a different user5804 behaves like successfully downloads the file5805 returns the file5806 PUT /api/v4/projects/:id/packages/npm/:package_name5807 when params are correct5808 invalid package record5809 invalid package name5810 behaves like handling invalid record with 400 error5811 handles an ActiveRecord::RecordInvalid exception with 400 error5812 behaves like not a package tracking event5813 does not create a gitlab tracking event5814 invalid package version5815 version: "1"5816 behaves like handling invalid record with 400 error5817 handles an ActiveRecord::RecordInvalid exception with 400 error5818 behaves like not a package tracking event5819 does not create a gitlab tracking event5820 version: "1.2"5821 behaves like handling invalid record with 400 error5822 handles an ActiveRecord::RecordInvalid exception with 400 error5823 behaves like not a package tracking event5824 does not create a gitlab tracking event5825 version: "1./2.3"5826 behaves like handling invalid record with 400 error5827 handles an ActiveRecord::RecordInvalid exception with 400 error5828 behaves like not a package tracking event5829 does not create a gitlab tracking event5830 version: "../../../../../1.2.3"5831 behaves like handling invalid record with 400 error5832 handles an ActiveRecord::RecordInvalid exception with 400 error5833 behaves like not a package tracking event5834 does not create a gitlab tracking event5835 version: "%2e%2e%2f1.2.3"5836 behaves like handling invalid record with 400 error5837 handles an ActiveRecord::RecordInvalid exception with 400 error5838 behaves like not a package tracking event5839 does not create a gitlab tracking event5840 invalid package attachment data5841 behaves like handling invalid record with 400 error5842 handles an ActiveRecord::RecordInvalid exception with 400 error5843 behaves like not a package tracking event5844 does not create a gitlab tracking event5845 valid package params5846 with a scoped name5847 behaves like handling upload with different authentications5848 creates npm package with file with job token5849 with access token5850 behaves like a package tracking event5851 creates a gitlab tracking event push_package5852 behaves like a successful package creation5853 creates npm package with file5854 with an authenticated job token5855 creates the package metadata5856 with any scoped name5857 behaves like handling upload with different authentications5858 creates npm package with file with job token5859 with access token5860 behaves like a package tracking event5861 creates a gitlab tracking event push_package5862 behaves like a successful package creation5863 creates npm package with file5864 with an authenticated job token5865 creates the package metadata5866 with an unscoped name5867 behaves like handling upload with different authentications5868 creates npm package with file with job token5869 with access token5870 behaves like a package tracking event5871 creates a gitlab tracking event push_package5872 behaves like a successful package creation5873 creates npm package with file5874 with an authenticated job token5875 creates the package metadata5876 with an existing package5877 following the naming convention5878 behaves like handling invalid record with 400 error5879 handles an ActiveRecord::RecordInvalid exception with 400 error5880 behaves like not a package tracking event5881 does not create a gitlab tracking event5882 with a new version5883 behaves like uploading the package5884 uploads the package5885 not following the naming convention5886 behaves like uploading the package5887 uploads the package5888 package creation fails5889 returns an error if the package already exists5890 behaves like not a package tracking event5891 does not create a gitlab tracking event5892 with dependencies5893 creates npm package with file and dependencies5894 with existing dependencies5895 reuses them5896 when the lease to create a package is already taken5897 returns an error5898 behaves like not a package tracking event5899 does not create a gitlab tracking event5900 with a too large metadata structure5901 when a large value for readme is set5902 behaves like a successful package creation5903 creates npm package with file5904 when a large value for readmeFilename is set5905 behaves like a successful package creation5906 creates npm package with file5907 when a large value for licenseText is set5908 behaves like a successful package creation5909 creates npm package with file5910 when the large field is not one of the ignored fields5911 returns an error5912 behaves like not a package tracking event5913 does not create a gitlab tracking event5914 when the Npm-Command in headers is deprecate5915 when the user is not authorized to destroy the package5916 does not call DeprecatePackageService5917 when the user is authorized to destroy the package5918 calls DeprecatePackageService with the correct arguments5919API::Notes5920 when there are cross-reference system notes5921 behaves like with cross-reference system notes5922 returns only the note that the user should see5923 avoids Git calls and N+1 SQL queries5924 when noteable is an Issue5925 behaves like noteable API with confidential notes5926 behaves like noteable API5927 GET /projects/:id/issues/:noteable_id/notes5928 returns an array of notes5929 returns a 404 error when noteable id not found5930 returns 404 when not authorized5931 sorting5932 sorts by ascending order when requested5933 sorts by updated_at in descending order when requested5934 sorts by updated_at in ascending order when requested5935 without sort params5936 sorts by created_at in descending order by default5937 fetches notes using parent path as id paremeter5938 2 notes with equal created_at5939 page breaks first page correctly5940 page breaks second page correctly5941 GET /projects/:id/issues/:noteable_id/notes/:note_id5942 returns a note by id5943 returns a 404 error if note not found5944 POST /projects/:id/issues/:noteable_id/notes5945 creates a new note5946 returns a 400 bad request error if body not given5947 returns a 401 unauthorized error if user not authenticated5948 creates an activity event when a note is created5949 setting created_at5950 by an admin5951 sets the creation time on the new note5952 by a project owner5953 sets the creation time on the new note5954 by a group owner5955 sets the creation time on the new note5956 by another user5957 ignores the given creation time5958 when the user is posting an award emoji on a noteable created by someone else5959 creates a new note5960 when the user is posting an award emoji on their own noteable5961 creates a new note5962 when user does not have access to read the noteable5963 responds with 4045964 when request exceeds the rate limit5965 prevents user from creating more notes5966 allows user in allow-list to create notes5967 PUT /projects/:id/issues/:noteable_id/notes/:note_id5968 returns a 404 error when note id not found5969 returns a 400 bad request error if body is empty5970 when only body param is present5971 updates the note text5972 when confidential param is present5973 does not allow to change confidentiality5974 DELETE /projects/:id/issues/:noteable_id/notes/:note_id5975 deletes a note5976 returns a 404 error when note id not found5977 behaves like 412 response5978 for a modified resource5979 returns 412 with a JSON error5980 for an unmodified resource5981 returns 204 with an empty body5982 POST /projects/:id/issues/:noteable_id/notes5983 with internal param5984 creates a confidential note if internal is set to true5985 with deprecated confidential param5986 creates a confidential note if confidential is set to true5987 when user does not have access to create noteable5988 responds with resource not found error5989 does not create new note5990 when referencing other project5991 GET /projects/:id/noteable/:noteable_id/notes5992 current user cannot view the notes5993 returns an empty array5994 issue is confidential5995 returns 4045996 current user can view the note5997 returns a non-empty array5998 activity filters5999 when not provided6000 returns all the notes6001 behaves like a notes request6002 is a note array response6003 when all_notes provided6004 returns all the notes6005 behaves like a notes request6006 is a note array response6007 when provided6008 filter: "only_comments", count: 1, system_notable: false6009 properly filters the returned notables6010 behaves like a notes request6011 is a note array response6012 filter: "only_activity", count: 1, system_notable: true6013 properly filters the returned notables6014 behaves like a notes request6015 is a note array response6016 GET /projects/:id/noteable/:noteable_id/notes/:note_id6017 current user cannot view the notes6018 returns a 404 error6019 when issue is confidential6020 returns 4046021 current user can view the note6022 returns an issue note by id6023 without notes widget6024 does not fetch notes6025 does not fetch specific note6026 does not create note6027 does not update note6028 does not run quick actions6029 when noteable is a Snippet6030 behaves like noteable API6031 GET /projects/:id/snippets/:noteable_id/notes6032 returns an array of notes6033 returns a 404 error when noteable id not found6034 returns 404 when not authorized6035 sorting6036 sorts by ascending order when requested6037 sorts by updated_at in descending order when requested6038 sorts by updated_at in ascending order when requested6039 without sort params6040 sorts by created_at in descending order by default6041 fetches notes using parent path as id paremeter6042 2 notes with equal created_at6043 page breaks first page correctly6044 page breaks second page correctly6045 GET /projects/:id/snippets/:noteable_id/notes/:note_id6046 returns a note by id6047 returns a 404 error if note not found6048 POST /projects/:id/snippets/:noteable_id/notes6049 creates a new note6050 returns a 400 bad request error if body not given6051 returns a 401 unauthorized error if user not authenticated6052 creates an activity event when a note is created6053 setting created_at6054 by an admin6055 sets the creation time on the new note6056 by a project owner6057 sets the creation time on the new note6058 by a group owner6059 sets the creation time on the new note6060 by another user6061 ignores the given creation time6062 when the user is posting an award emoji on a noteable created by someone else6063 creates a new note6064 when the user is posting an award emoji on their own noteable6065 creates a new note6066 when user does not have access to read the noteable6067 responds with 4046068 when request exceeds the rate limit6069 prevents user from creating more notes6070 allows user in allow-list to create notes6071 PUT /projects/:id/snippets/:noteable_id/notes/:note_id6072 returns a 404 error when note id not found6073 returns a 400 bad request error if body is empty6074 when only body param is present6075 updates the note text6076 when confidential param is present6077 does not allow to change confidentiality6078 DELETE /projects/:id/snippets/:noteable_id/notes/:note_id6079 deletes a note6080 returns a 404 error when note id not found6081 behaves like 412 response6082 for a modified resource6083 returns 412 with a JSON error6084 for an unmodified resource6085 returns 204 with an empty body6086 when noteable is a Merge Request6087 behaves like noteable API6088 GET /projects/:id/merge_requests/:noteable_id/notes6089 returns an array of notes6090 returns a 404 error when noteable id not found6091 returns 404 when not authorized6092 sorting6093 sorts by ascending order when requested6094 sorts by updated_at in descending order when requested6095 sorts by updated_at in ascending order when requested6096 without sort params6097 sorts by created_at in descending order by default6098 fetches notes using parent path as id paremeter6099 2 notes with equal created_at6100 page breaks first page correctly6101 page breaks second page correctly6102 GET /projects/:id/merge_requests/:noteable_id/notes/:note_id6103 returns a note by id6104 returns a 404 error if note not found6105 POST /projects/:id/merge_requests/:noteable_id/notes6106 creates a new note6107 returns a 400 bad request error if body not given6108 returns a 401 unauthorized error if user not authenticated6109 creates an activity event when a note is created6110 setting created_at6111 by an admin6112 sets the creation time on the new note6113 by a project owner6114 sets the creation time on the new note6115 by a group owner6116 sets the creation time on the new note6117 by another user6118 ignores the given creation time6119 when the user is posting an award emoji on a noteable created by someone else6120 creates a new note6121 when the user is posting an award emoji on their own noteable6122 creates a new note6123 when user does not have access to read the noteable6124 responds with 4046125 when request exceeds the rate limit6126 prevents user from creating more notes6127 allows user in allow-list to create notes6128 PUT /projects/:id/merge_requests/:noteable_id/notes/:note_id6129 returns a 404 error when note id not found6130 returns a 400 bad request error if body is empty6131 when only body param is present6132 updates the note text6133 when confidential param is present6134 does not allow to change confidentiality6135 DELETE /projects/:id/merge_requests/:noteable_id/notes/:note_id6136 deletes a note6137 returns a 404 error when note id not found6138 behaves like 412 response6139 for a modified resource6140 returns 412 with a JSON error6141 for an unmodified resource6142 returns 204 with an empty body6143 a command only note6144 /spend6145 returns 202 Accepted status6146 does not actually create a new note6147 does however create a system note about the change6148 applies the commands6149 reports the changes6150 /merge6151 returns 202 Accepted status6152 does not actually create a new note6153 applies the commands6154 reports the changes6155 when the merge request discussion is locked6156 when a user is a team member6157 returns 200 status6158 creates a new note6159 when a user is not a team member6160 returns 403 status6161 does not create a new note6162ProjectsController6163 updates Service Desk attributes6164 GET new6165 with an authenticated user6166 when namespace_id param is present6167 when user has access to the namespace6168 renders the template6169 when user does not have access to the namespace6170 responds with status 4046171 GET index6172 as a user6173 redirects to root page6174 as a guest6175 redirects to Explore page6176 GET #activity as JSON6177 when user has permission to see the event6178 returns count6179 design events are visible6180 returns correct count6181 when user has no permission to see the event6182 filters out invisible event6183 GET show6184 user not project member6185 user does not have access to project6186 does not initialize notification setting6187 user has access to project6188 and does not have notification setting6189 initializes notification as disabled6190 and has notification setting6191 shows current notification setting6192 when there is a tag with the same name as the default branch6193 redirects to tree view for the default branch6194 when the default branch name is ambiguous6195 when ref starts with ref/heads/6196 when there is no conflicting ref6197 is expected to respond with numeric status code ok6198 and that other ref exists6199 redirects to tree view for the default branch6200 when ref starts with ref/tags/6201 when there is no conflicting ref6202 is expected to respond with numeric status code ok6203 and that other ref exists6204 redirects to tree view for the default branch6205 when ref starts with heads/6206 when there is no conflicting ref6207 is expected to respond with numeric status code ok6208 and that other ref exists6209 redirects to tree view for the default branch6210 when ref starts with tags/6211 when there is no conflicting ref6212 is expected to respond with numeric status code ok6213 and that other ref exists6214 redirects to tree view for the default branch6215 when project repository is disabled6216 shows wiki homepage6217 shows issues list page if wiki is disabled6218 shows activity page if wiki and issues are disabled6219 shows activity if enabled by user6220 project with empty repo6221 with readme view set6222 renders the empty project view6223 with activity view set6224 renders the empty project view6225 with files view set6226 renders the empty project view6227 with wiki view set6228 renders the empty project view6229 project with broken repo6230 with readme view set6231 renders the empty project view6232 with activity view set6233 renders the empty project view6234 with files view set6235 renders the empty project view6236 with wiki view set6237 renders the empty project view6238 rendering default project view6239 renders the activity view6240 renders the files view6241 renders the readme view6242 does not make Gitaly requests6243 renders files even with invalid license6244 tracking events6245 tracks page views6246 when the project is importing6247 does not track page views6248 PUC highlighting6249 option is enabled6250 adds the highlighting class6251 option is disabled6252 doesn't add the highlighting class6253 when the url contains .atom6254 expects an error creating the project6255 when the project is pending deletions6256 renders a 404 error6257 redirection from http://someproject.git6258 user_type: :anonymous, project_visibility: :public, expected_redirect: :redirect_to_project6259 returns the expected status6260 user_type: :anonymous, project_visibility: :internal, expected_redirect: :redirect_to_signup6261 returns the expected status6262 user_type: :anonymous, project_visibility: :private, expected_redirect: :redirect_to_signup6263 returns the expected status6264 user_type: :signed_in, project_visibility: :public, expected_redirect: :redirect_to_project6265 returns the expected status6266 user_type: :signed_in, project_visibility: :internal, expected_redirect: :redirect_to_project6267 returns the expected status6268 user_type: :signed_in, project_visibility: :private, expected_redirect: nil6269 returns the expected status6270 user_type: :member, project_visibility: :public, expected_redirect: :redirect_to_project6271 returns the expected status6272 user_type: :member, project_visibility: :internal, expected_redirect: :redirect_to_project6273 returns the expected status6274 user_type: :member, project_visibility: :private, expected_redirect: :redirect_to_project6275 returns the expected status6276 when project is moved and git format is requested6277 redirects to new project path6278 when the project is forked and has a repository6279 does not increase the number of queries when the project is forked6280 POST create6281 on import6282 when import by url is disabled6283 does not create project and reports an error6284 when import by url is enabled6285 creates project6286 GET edit6287 allows an admin user to access the page6288 sets the badge API endpoint6289 POST #archive6290 for a user with the ability to archive a project6291 archives the project6292 redirects to projects path6293 for a user that does not have the ability to archive a project6294 does not archive the project6295 returns 4046296 POST #unarchive6297 for a user with the ability to unarchive a project6298 unarchives the project6299 redirects to projects path6300 for a user that does not have the ability to unarchive a project6301 does not unarchive the project6302 returns 4046303 #housekeeping6304 when authenticated as owner6305 forces a full garbage collection6306 logs an audit event6307 and requesting prune6308 enqueues pruning6309 when authenticated as developer6310 does not execute housekeeping6311 #update6312 hashed storage6313 behaves like updating a project6314 updates Fast Forward Merge attributes6315 does not update namespace6316 when there is a conflicting project path6317 does not show any references to the conflicting path6318 when only renaming a project path6319 doesnt change the disk_path when using hashed storage6320 upgrades and move project to hashed storage when project was originally legacy (PENDING: No reason given)6321 when project has container repositories with tags6322 does not allow to rename the project6323 legacy storage6324 behaves like updating a project6325 updates Fast Forward Merge attributes6326 does not update namespace6327 when there is a conflicting project path6328 does not show any references to the conflicting path6329 when only renaming a project path6330 doesnt change the disk_path when using hashed storage (PENDING: No reason given)6331 upgrades and move project to hashed storage when project was originally legacy6332 when project has container repositories with tags6333 does not allow to rename the project6334 as maintainer6335 behaves like unauthorized when external service denies access6336 allows access when the authorization service allows it6337 allows access when the authorization service denies it6338 updates when the service allows access6339 does not update when the service rejects access6340 when updating boolean values on project_settings6341 boolean_value: "1", result: true6342 updates project settings attributes accordingly6343 boolean_value: "0", result: false6344 updates project settings attributes accordingly6345 boolean_value: 1, result: true6346 updates project settings attributes accordingly6347 boolean_value: 0, result: false6348 updates project settings attributes accordingly6349 boolean_value: true, result: true6350 updates project settings attributes accordingly6351 boolean_value: false, result: false6352 updates project settings attributes accordingly6353 with project feature attributes6354 feature_access_level: :metrics_dashboard_access_level6355 behaves like feature update success6356 updates access level successfully6357 feature_access_level: :container_registry_access_level6358 behaves like feature update success6359 updates access level successfully6360 feature_access_level: :environments_access_level6361 behaves like feature update success6362 updates access level successfully6363 feature_access_level: :feature_flags_access_level6364 behaves like feature update success6365 updates access level successfully6366 feature_access_level: :releases_access_level6367 behaves like feature update success6368 updates access level successfully6369 feature_access_level: :monitor_access_level6370 behaves like feature update success6371 updates access level successfully6372 feature_access_level: :infrastructure_access_level6373 behaves like feature update success6374 updates access level successfully6375 feature_access_level: :model_experiments_access_level6376 behaves like feature update success6377 updates access level successfully6378 #transfer6379 updates namespace6380 when new namespace is empty6381 behaves like project namespace is not changed6382 project namespace is not changed6383 when new namespace is the same as the current namespace6384 behaves like project namespace is not changed6385 project namespace is not changed6386 #destroy6387 redirects to the dashboard6388 when the project is forked6389 closes all related merge requests6390 PUT #new_issuable_address for issue6391 has http status 2006392 changes the user incoming email token6393 changes projects new issue address6394 PUT #new_issuable_address for merge request6395 has http status 2006396 changes the user incoming email token6397 changes projects new merge request address6398 POST #toggle_star6399 toggles star if user is signed in6400 does nothing if user is not signed in6401 DELETE remove_fork6402 does nothing if user is not signed in6403 when signed in6404 with forked project6405 removes fork from project6406 when project not forked6407 does nothing if project was not forked6408 GET refs6409 gets a list of branches and tags6410 gets a list of branches, tags and commits6411 uses gitaly pagination6412 when gitaly is unavailable6413 responds with 503 error6414 when preferred language is Japanese6415 gets a list of branches, tags and commits6416 when private project6417 as a guest6418 renders forbidden6419 when input params are invalid6420 does not break6421 when sort param is invalid6422 uses default sort by name6423 POST #preview_markdown6424 renders json in a correct format6425 when not authorized6426 returns 4046427 state filter on references6428 renders JSON body with state filter for issues6429 renders JSON body with state filter for MRs6430 when path parameter is provided6431 renders JSON body with image links expanded6432 when path and ref parameters are provided6433 renders JSON body with image links expanded6434 #ensure_canonical_path6435 for a GET request6436 when requesting the canonical path6437 with exactly matching casing6438 loads the project6439 with different casing6440 redirects to the normalized path6441 when requesting a redirected path6442 redirects to the canonical path6443 redirects to the canonical path (testing non-show action)6444 for a POST request6445 when requesting the canonical path with different casing6446 does not 4046447 does not redirect to the correct casing6448 when requesting a redirected path6449 returns not found6450 for a DELETE request6451 when requesting the canonical path with different casing6452 does not 4046453 does not redirect to the correct casing6454 when requesting a redirected path6455 returns not found6456 project export6457 #export6458 when project export is enabled6459 returns 3026460 when the project storage_size exceeds the application setting max_export_size6461 returns 302 with alert6462 when the project storage_size does not exceed the application setting max_export_size6463 returns 302 without alert6464 when application setting max_export_size is not set6465 returns 302 without alert6466 when project export is disabled6467 returns 4046468 when the endpoint receives requests above the limit6469 prevents requesting project export6470 #download_export6471 object storage enabled6472 when project export is enabled6473 returns 2006474 when project export file is absent6475 alerts the user and returns 3026476 when project export is disabled6477 returns 4046478 when the endpoint receives requests above the limit6479 prevents requesting project export6480 applies correct scope when throttling6481 applies throttle per namespace6482 throttles downloads within same namespaces6483 allows downloads from different namespaces6484 #remove_export6485 when project export is enabled6486 returns 3026487 when project export is disabled6488 returns 4046489 #generate_new_export6490 when project export is enabled6491 returns 3026492 when project export is disabled6493 returns 4046494 when the endpoint receives requests above the limit6495 prevents requesting project export6496 GET show.atom6497 filters by calling event.visible_to_user?6498 filters by calling event.visible_to_user?6499 GET #unfoldered_environment_names6500 shows the environment names of a public project to an anonymous user6501 does not show environment names of a private project to anonymous users6502 shows environment names of a private project to a project member6503 does not show environment names of a private project to a logged-in non-member6504Projects::ClustersController6505 GET index6506 functionality6507 when project has one or more clusters6508 lists available clusters and renders html6509 lists available clusters with json serializer6510 sets the polling interval header for json requests6511 feature flag is disabled6512 does not list any clusters6513 when page is specified6514 redirects to the page6515 displays cluster list for associated page6516 when project does not have a cluster6517 returns an empty state page6518 security6519 is allowed for admin when admin mode enabled6520 is disabled for admin when admin mode disabled6521 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 2006522 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 2006523 is expected to be allowed for developer. Expected: 200,201,204,302 Got: 2006524 is expected to be denied for reporter. Expected: 401,404 Got: 4046525 is expected to be denied for guest. Expected: 401,404 Got: 4046526 is expected to be denied for user. Expected: 401,404 Got: 4046527 is expected to be denied for external. Expected: 401,404 Got: 4046528 behaves like GET #metrics_dashboard for dashboard6529 returns correct dashboard6530 behaves like GET #metrics_dashboard correctly formatted response6531 returns a json object with the correct keys6532 when metrics dashboard feature is unavailable6533 returns 404 not found6534 POST create for existing cluster6535 feature flag is disabled6536 responds with :not_found6537 functionality6538 when creates a cluster6539 creates a new cluster6540 when creates a RBAC-enabled cluster6541 creates a new cluster6542 when creates a user-managed cluster6543 creates a new user-managed cluster6544 security6545 is allowed for admin when admin mode enabled6546 is disabled for admin when admin mode disabled6547 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 3026548 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 3026549 is expected to be denied for developer. Expected: 401,404 Got: 4046550 is expected to be denied for reporter. Expected: 401,404 Got: 4046551 is expected to be denied for guest. Expected: 401,404 Got: 4046552 is expected to be denied for user. Expected: 401,404 Got: 4046553 is expected to be denied for external. Expected: 401,404 Got: 4046554 DELETE clear cluster cache6555 deletes the namespaces associated with the cluster6556 feature flag is disabled6557 responds with :not_found6558 security6559 is allowed for admin when admin mode enabled6560 is disabled for admin when admin mode disabled6561 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 3026562 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 3026563 is expected to be denied for developer. Expected: 401,404 Got: 4046564 is expected to be denied for reporter. Expected: 401,404 Got: 4046565 is expected to be denied for guest. Expected: 401,404 Got: 4046566 is expected to be denied for user. Expected: 401,404 Got: 4046567 is expected to be denied for external. Expected: 401,404 Got: 4046568 GET cluster_status6569 feature flag is disabled6570 responds with :not_found6571 functionality6572 responds with matching schema6573 security6574 is allowed for admin when admin mode enabled6575 is disabled for admin when admin mode disabled6576 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 2006577 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 2006578 is expected to be denied for developer. Expected: 401,404 Got: 4046579 is expected to be denied for reporter. Expected: 401,404 Got: 4046580 is expected to be denied for guest. Expected: 401,404 Got: 4046581 is expected to be denied for user. Expected: 401,404 Got: 4046582 is expected to be denied for external. Expected: 401,404 Got: 4046583 GET show6584 feature flag is disabled6585 responds with :not_found6586 security6587 is allowed for admin when admin mode enabled6588 is disabled for admin when admin mode disabled6589 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 2006590 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 2006591 is expected to be allowed for developer. Expected: 200,201,204,302 Got: 2006592 is expected to be denied for reporter. Expected: 401,404 Got: 4046593 is expected to be denied for guest. Expected: 401,404 Got: 4046594 is expected to be denied for user. Expected: 401,404 Got: 4046595 is expected to be denied for external. Expected: 401,404 Got: 4046596 PUT update6597 updates and redirects back to show page6598 feature flag is disabled6599 responds with :not_found6600 when format is json6601 when changing parameters6602 when valid parameters are used6603 updates and redirects back to show page6604 when invalid parameters are used6605 rejects changes6606 security6607 is allowed for admin when admin mode enabled6608 is disabled for admin when admin mode disabled6609 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 3026610 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 3026611 is expected to be denied for developer. Expected: 401,404 Got: 4046612 is expected to be denied for reporter. Expected: 401,404 Got: 4046613 is expected to be denied for guest. Expected: 401,404 Got: 4046614 is expected to be denied for user. Expected: 401,404 Got: 4046615 is expected to be denied for external. Expected: 401,404 Got: 4046616 DELETE destroy6617 feature flag is disabled6618 responds with :not_found6619 functionality6620 when cluster is provided by GCP6621 when cluster is created6622 destroys and redirects back to clusters list6623 when cluster is being created6624 destroys and redirects back to clusters list6625 when cluster is provided by user6626 destroys and redirects back to clusters list6627 security6628 is allowed for admin when admin mode enabled6629 is disabled for admin when admin mode disabled6630 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 3026631 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 3026632 is expected to be denied for developer. Expected: 401,404 Got: 4046633 is expected to be denied for reporter. Expected: 401,404 Got: 4046634 is expected to be denied for guest. Expected: 401,404 Got: 4046635 is expected to be denied for user. Expected: 401,404 Got: 4046636 is expected to be denied for external. Expected: 401,404 Got: 4046637 no project_id param6638 does not respond to any action without project_id param6639API::Ci::Triggers6640 POST /projects/:project_id/trigger/pipeline6641 Handles errors6642 returns bad request if token is missing6643 returns not found if project is not found6644 Have a commit6645 creates pipeline6646 stores payload as a variable6647 returns bad request with no pipeline created if there's no commit for that ref6648 Validates variables6649 validates variables to be a hash6650 validates variables needs to be a map of key-valued strings6651 creates trigger request with variables6652 when triggering a pipeline from a trigger token6653 does not leak the presence of project when token is for different project6654 creates builds from the ref given in the URL, not in the body6655 when ref contains a dot6656 creates builds from the ref given in the URL, not in the body6657 adding arguments to the application context6658 when triggering a pipeline from a trigger token6659 behaves like storing arguments in the application context for the API6660 places the expected params in the application context6661 behaves like not executing any extra queries for the application context6662 does not execute more queries than without adding anything to the application context6663 when triggered from another running job6664 when other job is triggered by a user6665 behaves like storing arguments in the application context for the API6666 places the expected params in the application context6667 behaves like not executing any extra queries for the application context6668 does not execute more queries than without adding anything to the application context6669 when other job is triggered by a runner6670 behaves like storing arguments in the application context for the API6671 places the expected params in the application context6672 behaves like not executing any extra queries for the application context6673 does not execute more queries than without adding anything to the application context6674 when is triggered by a pipeline hook6675 does not create a new pipeline6676 GET /projects/:id/triggers6677 authenticated user who can access triggers6678 returns a list of triggers with tokens exposed correctly6679 authenticated user with invalid permissions6680 does not return triggers list6681 unauthenticated user6682 does not return triggers list6683 GET /projects/:id/triggers/:trigger_id6684 authenticated user with valid permissions6685 returns trigger details6686 responds with 404 Not Found if requesting non-existing trigger6687 authenticated user with invalid permissions6688 does not return triggers list6689 unauthenticated user6690 does not return triggers list6691 POST /projects/:id/triggers6692 authenticated user with valid permissions6693 with required parameters6694 creates trigger6695 without required parameters6696 does not create trigger6697 authenticated user with invalid permissions6698 does not create trigger6699 unauthenticated user6700 does not create trigger6701 PUT /projects/:id/triggers/:trigger_id6702 user is maintainer of the project6703 the trigger belongs to user6704 updates description6705 the trigger does not belong to user6706 does not update trigger6707 user is developer of the project6708 the trigger belongs to user6709 does not update trigger6710 the trigger does not belong to user6711 does not update trigger6712 unauthenticated user6713 does not update trigger6714 DELETE /projects/:id/triggers/:trigger_id6715 authenticated user with valid permissions6716 deletes trigger6717 responds with 404 Not Found if requesting non-existing trigger6718 behaves like 412 response6719 for a modified resource6720 returns 412 with a JSON error6721 for an unmodified resource6722 returns 204 with an empty body6723 authenticated user with invalid permissions6724 does not delete trigger6725 unauthenticated user6726 does not delete trigger6727API::Deployments6728 GET /projects/:id/deployments6729 as member of the project6730 returns projects deployments sorted by id asc6731 returns multiple deployments without N + 16732 with updated_at filters specified6733 when using `order_by=updated_at`6734 returns projects deployments with last update in specified datetime range6735 when not using `order_by=updated_at`6736 returns an error6737 with finished after and before filters specified6738 for successful deployments6739 returns projects deployments finished before the specified datetime range6740 returns projects deployments finished after the specified datetime range6741 for unsuccessful deployments6742 returns an error6743 when a forbidden order_by is specified6744 returns an error6745 with the environment filter specifed6746 returns deployments for the environment6747 ordering6748 returns ordered deployments6749 with invalid order_by6750 returns error6751 with invalid sorting6752 returns error6753 as non member6754 returns a 404 status code6755 GET /projects/:id/deployments/:deployment_id6756 as a member of the project6757 returns the projects deployment6758 as non member6759 returns a 404 status code6760 POST /projects/:id/deployments6761 as a maintainer6762 creates a new deployment6763 errors when creating a deployment with an invalid name6764 links any merged merge requests to the deployment6765 as a developer6766 creates a new deployment6767 links any merged merge requests to the deployment6768 links any picked merge requests to the deployment6769 as non member6770 returns a 404 status code6771 PUT /projects/:id/deployments/:deployment_id6772 as a maintainer6773 returns a 403 when updating a deployment with a build6774 updates a deployment without an associated build6775 returns an error when an invalid status transition is detected6776 links merge requests when the deployment status changes to success6777 as a developer6778 returns a 403 when updating a deployment with a build6779 updates a deployment without an associated build6780 as non member6781 returns a 404 status code6782 DELETE /projects/:id/deployments/:deployment_id6783 as an maintainer6784 deletes a deployment6785 will not delete a running deployment6786 as a developer6787 is forbidden6788 as non member6789 is not found6790 for non-existent deployment6791 is not found6792 GET /projects/:id/deployments/:deployment_id/merge_requests6793 when a user is not a member of the deployment project6794 returns a 404 status code6795 when a user member of the deployment project6796 returns the relevant merge requests linked to a deployment for a project6797 when a deployment is not associated to any existing merge requests6798 returns an empty array6799 prevent N + 1 queries6800 when the endpoint returns multiple records6801 succeeds6802 with 10 more records6803 does not increase the query count6804API::Terraform::State6805 GET /projects/:id/terraform/state/:name6806 behaves like endpoint with unique user tracking6807 without authentication6808 does not track unique hll event6809 does not track Snowplow event6810 with maintainer permissions6811 behaves like tracking unique hll events6812 tracks unique event6813 behaves like Snowplow event tracking with RedisHLL context6814 behaves like Snowplow event tracking6815 is emitted6816 behaves like it depends on value of the `terraform_state.enabled` config6817 when terraform_state.enabled=false6818 returns `forbidden` response6819 when terraform_state.enabled=true6820 returns a successful response6821 without authentication6822 returns 401 if user is not authenticated6823 personal access token authentication6824 with maintainer permissions6825 given_state_name: "test-state"6826 behaves like can access terraform state6827 returns terraform state of a project of given state name6828 given_state_name: "test.state"6829 behaves like can access terraform state6830 returns terraform state of a project of given state name6831 given_state_name: "test%2Ffoo"6832 behaves like can access terraform state6833 returns terraform state of a project of given state name6834 for a project that does not exist6835 returns not found6836 with invalid state name6837 returns a 404 error6838 behaves like cannot access a state that is scheduled for deletion6839 returns unprocessable entity6840 with developer permissions6841 behaves like can access terraform state6842 returns terraform state of a project of given state name6843 job token authentication6844 with maintainer permissions6845 returns unauthorized if the the job is not running6846 behaves like can access terraform state6847 returns terraform state of a project of given state name6848 for a project that does not exist6849 returns not found6850 with developer permissions6851 behaves like can access terraform state6852 returns terraform state of a project of given state name6853 POST /projects/:id/terraform/state/:name6854 behaves like endpoint with unique user tracking6855 without authentication6856 does not track unique hll event6857 does not track Snowplow event6858 with maintainer permissions6859 behaves like tracking unique hll events6860 tracks unique event6861 behaves like Snowplow event tracking with RedisHLL context6862 behaves like Snowplow event tracking6863 is emitted6864 behaves like it depends on value of the `terraform_state.enabled` config6865 when terraform_state.enabled=false6866 returns `forbidden` response6867 when terraform_state.enabled=true6868 returns a successful response6869 when terraform state with a given name is already present6870 with maintainer permissions6871 given_state_name: "test-state"6872 updates the state6873 given_state_name: "test.state"6874 updates the state6875 given_state_name: "test%2Ffoo"6876 updates the state6877 with invalid state name6878 returns a 404 error6879 when serial already exists6880 returns unprocessable entity6881 behaves like cannot access a state that is scheduled for deletion6882 returns unprocessable entity6883 without body6884 returns no content if no body is provided6885 with developer permissions6886 returns forbidden6887 when there is no terraform state of a given name6888 with maintainer permissions6889 given_state_name: "test-state"6890 creates a new state6891 given_state_name: "test.state"6892 creates a new state6893 given_state_name: "test%2Ffoo"6894 creates a new state6895 without body6896 returns no content if no body is provided6897 with developer permissions6898 returns forbidden6899 when using job token authentication6900 associates the job with the newly created state version6901 response depending on the max allowed state size6902 when the max allowed state size is unlimited (set as 0)6903 returns a success response6904 when the max allowed state size is greater than the request state size6905 returns a success response6906 when the max allowed state size is equal to the request state size6907 returns a success response6908 when the max allowed state size is less than the request state size6909 returns a 'payload too large' response6910 DELETE /projects/:id/terraform/state/:name6911 behaves like endpoint with unique user tracking6912 without authentication6913 does not track unique hll event6914 does not track Snowplow event6915 with maintainer permissions6916 behaves like tracking unique hll events6917 tracks unique event6918 behaves like Snowplow event tracking with RedisHLL context6919 behaves like Snowplow event tracking6920 is emitted6921 behaves like it depends on value of the `terraform_state.enabled` config6922 when terraform_state.enabled=false6923 returns `forbidden` response6924 when terraform_state.enabled=true6925 returns a successful response6926 with maintainer permissions6927 given_state_name: "test-state"6928 behaves like schedules the state for deletion6929 returns empty body6930 given_state_name: "test.state"6931 behaves like schedules the state for deletion6932 returns empty body6933 given_state_name: "test%2Ffoo"6934 behaves like schedules the state for deletion6935 returns empty body6936 with invalid state name6937 returns a 404 error6938 behaves like cannot access a state that is scheduled for deletion6939 returns unprocessable entity6940 with developer permissions6941 returns forbidden6942 POST /projects/:id/terraform/state/:name/lock6943 behaves like endpoint with unique user tracking6944 without authentication6945 does not track unique hll event6946 does not track Snowplow event6947 with maintainer permissions6948 behaves like tracking unique hll events6949 tracks unique event6950 behaves like Snowplow event tracking with RedisHLL context6951 behaves like Snowplow event tracking6952 is emitted6953 behaves like cannot access a state that is scheduled for deletion6954 returns unprocessable entity6955 with invalid state name6956 returns a 404 error6957 state is already locked6958 returns an error6959 user does not have permission to lock the state6960 returns an error6961 given_state_name: "test-state"6962 locks the terraform state6963 given_state_name: "test%2Ffoo"6964 locks the terraform state6965 with a dot in the state name6966 locks the terraform state6967 DELETE /projects/:id/terraform/state/:name/lock6968 behaves like endpoint with unique user tracking6969 without authentication6970 does not track unique hll event6971 does not track Snowplow event6972 with maintainer permissions6973 behaves like tracking unique hll events6974 tracks unique event6975 behaves like Snowplow event tracking with RedisHLL context6976 behaves like Snowplow event tracking6977 is emitted6978 behaves like cannot access a state that is scheduled for deletion6979 returns unprocessable entity6980 behaves like it depends on value of the `terraform_state.enabled` config6981 when terraform_state.enabled=false6982 returns `forbidden` response6983 when terraform_state.enabled=true6984 returns a successful response6985 given_state_name: "test-state"6986 with the correct lock id6987 removes the terraform state lock6988 with no lock id (force-unlock)6989 removes the terraform state lock6990 given_state_name: "test.state"6991 with the correct lock id6992 removes the terraform state lock6993 with no lock id (force-unlock)6994 removes the terraform state lock6995 given_state_name: "test%2Ffoo"6996 with the correct lock id6997 removes the terraform state lock6998 with no lock id (force-unlock)6999 removes the terraform state lock7000 with invalid state name7001 returns a 404 error7002 with an incorrect lock id7003 returns an error7004 with a longer than 255 character lock id7005 returns an error7006 user does not have permission to unlock the state7007 returns an error7008Emails::Profile7009 for new users, the email7010 contains the password text7011 includes a link for user to set password7012 explains the reset link expiration7013 behaves like an email sent from GitLab7014 has the characteristics of an email sent from GitLab7015 behaves like a new user email7016 is sent to the new user with the correct subject and body7017 behaves like it should not have Gmail Actions links7018 is expected not to have body including "ViewAction"7019 behaves like a user cannot unsubscribe through footer link7020 does not have a List-Unsubscribe header or a body link7021 for users that signed up, the email7022 does not contain the new user's password7023 behaves like an email sent from GitLab7024 has the characteristics of an email sent from GitLab7025 behaves like a new user email7026 is sent to the new user with the correct subject and body7027 behaves like it should not have Gmail Actions links7028 is expected not to have body including "ViewAction"7029 behaves like a user cannot unsubscribe through footer link7030 does not have a List-Unsubscribe header or a body link7031 user added ssh key7032 is sent to the new user7033 has the correct subject7034 contains the new ssh key title7035 includes a link to ssh keys page7036 behaves like an email sent from GitLab7037 has the characteristics of an email sent from GitLab7038 behaves like it should not have Gmail Actions links7039 is expected not to have body including "ViewAction"7040 behaves like a user cannot unsubscribe through footer link7041 does not have a List-Unsubscribe header or a body link7042 with SSH key that does not exist7043 is expected not to raise Exception7044 user added gpg key7045 is sent to the new user7046 has the correct subject7047 contains the new gpg key title7048 includes a link to gpg keys page7049 behaves like an email sent from GitLab7050 has the characteristics of an email sent from GitLab7051 behaves like it should not have Gmail Actions links7052 is expected not to have body including "ViewAction"7053 behaves like a user cannot unsubscribe through footer link7054 does not have a List-Unsubscribe header or a body link7055 with GPG key that does not exist7056 is expected not to raise Exception7057 user personal access token has been created7058 when valid7059 is sent to the user7060 has the correct subject7061 provides the names of the token7062 includes a link to personal access tokens page7063 includes the email reason7064 behaves like an email sent from GitLab7065 has the characteristics of an email sent from GitLab7066 behaves like it should not have Gmail Actions links7067 is expected not to have body including "ViewAction"7068 behaves like a user cannot unsubscribe through footer link7069 does not have a List-Unsubscribe header or a body link7070 user personal access token is about to expire7071 is sent to the user7072 has the correct subject7073 mentions the access tokens will expire7074 provides the names of expiring tokens7075 includes a link to personal access tokens page7076 includes the email reason7077 behaves like an email sent from GitLab7078 has the characteristics of an email sent from GitLab7079 behaves like it should not have Gmail Actions links7080 is expected not to have body including "ViewAction"7081 behaves like a user cannot unsubscribe through footer link7082 does not have a List-Unsubscribe header or a body link7083 with User does not exist7084 is expected not to raise Exception7085 user personal access token has expired7086 when valid7087 is sent to the user7088 has the correct subject7089 mentions the access token has expired7090 includes a link to personal access tokens page7091 includes the email reason7092 behaves like an email sent from GitLab7093 has the characteristics of an email sent from GitLab7094 behaves like it should not have Gmail Actions links7095 is expected not to have body including "ViewAction"7096 behaves like a user cannot unsubscribe through footer link7097 does not have a List-Unsubscribe header or a body link7098 when invalid7099 when user does not exist7100 is expected not to change `ActionMailer::Base.deliveries.count`7101 when user is not active7102 is expected not to change `ActionMailer::Base.deliveries.count`7103 user personal access token has been revoked7104 when valid7105 is sent to the user7106 has the correct subject7107 provides the names of the token7108 wont include the revocation reason7109 includes the email reason7110 behaves like an email sent from GitLab7111 has the characteristics of an email sent from GitLab7112 behaves like it should not have Gmail Actions links7113 is expected not to have body including "ViewAction"7114 behaves like a user cannot unsubscribe through footer link7115 does not have a List-Unsubscribe header or a body link7116 when source is provided7117 is sent to the user7118 has the correct subject7119 provides the names of the token7120 includes the revocation reason7121 includes the email reason7122 behaves like an email sent from GitLab7123 has the characteristics of an email sent from GitLab7124 behaves like it should not have Gmail Actions links7125 is expected not to have body including "ViewAction"7126 behaves like a user cannot unsubscribe through footer link7127 does not have a List-Unsubscribe header or a body link7128 SSH key notification7129 notification email for expired ssh key7130 when valid7131 behaves like an email sent from GitLab7132 has the characteristics of an email sent from GitLab7133 behaves like it should not have Gmail Actions links7134 is expected not to have body including "ViewAction"7135 behaves like a user cannot unsubscribe through footer link7136 does not have a List-Unsubscribe header or a body link7137 behaves like is sent to the user7138 is expected to be delivered to ["user1300@example.org"]7139 behaves like includes a link to ssh key page7140 is expected to have body matching /http:\/\/localhost\/-\/profile\/keys/7141 behaves like includes the email reason7142 is expected to have body matching /You're receiving this email because of your account on <a .*>localhost<\/a>/7143 behaves like has the correct subject7144 is expected to have subject matching /Your SSH key has expired/7145 behaves like has the correct body text7146 is expected to have body matching /SSH keys with the following fingerprints have expired/7147 when invalid7148 when user does not exist7149 behaves like does not send email7150 is expected not to change `ActionMailer::Base.deliveries.count`7151 when user is not active7152 behaves like does not send email7153 is expected not to change `ActionMailer::Base.deliveries.count`7154 notification email for expiring ssh key7155 when valid7156 behaves like an email sent from GitLab7157 has the characteristics of an email sent from GitLab7158 behaves like it should not have Gmail Actions links7159 is expected not to have body including "ViewAction"7160 behaves like a user cannot unsubscribe through footer link7161 does not have a List-Unsubscribe header or a body link7162 behaves like is sent to the user7163 is expected to be delivered to ["user1300@example.org"]7164 behaves like includes a link to ssh key page7165 is expected to have body matching /http:\/\/localhost\/-\/profile\/keys/7166 behaves like includes the email reason7167 is expected to have body matching /You're receiving this email because of your account on <a .*>localhost<\/a>/7168 behaves like has the correct subject7169 is expected to have subject matching /Your SSH key is expiring soon/7170 behaves like has the correct body text7171 is expected to have body matching /SSH keys with the following fingerprints are scheduled to expire soon/7172 when invalid7173 when user does not exist7174 behaves like does not send email7175 is expected not to change `ActionMailer::Base.deliveries.count`7176 when user is not active7177 behaves like does not send email7178 is expected not to change `ActionMailer::Base.deliveries.count`7179 user unknown sign in email7180 is sent to the user7181 has the correct subject7182 mentions the username7183 mentions the new sign-in IP7184 mentions the time7185 includes a link to the change password documentation7186 mentions two factor authentication when two factor is not enabled7187 includes a link to two-factor authentication documentation7188 behaves like an email sent from GitLab7189 has the characteristics of an email sent from GitLab7190 behaves like it should not have Gmail Actions links7191 is expected not to have body including "ViewAction"7192 behaves like a user cannot unsubscribe through footer link7193 does not have a List-Unsubscribe header or a body link7194 when two factor authentication is enabled7195 does not mention two factor authentication7196 user attempted sign in with wrong 2FA OTP email7197 is sent to the user7198 has the correct subject7199 mentions the IP address7200 mentioned the time7201 includes a link to the change password documentation7202 behaves like an email sent from GitLab7203 has the characteristics of an email sent from GitLab7204 behaves like it should not have Gmail Actions links7205 is expected not to have body including "ViewAction"7206 behaves like a user cannot unsubscribe through footer link7207 does not have a List-Unsubscribe header or a body link7208 disabled two-factor authentication email7209 is sent to the user7210 has the correct subject7211 includes a link to two-factor authentication settings page7212 behaves like an email sent from GitLab7213 has the characteristics of an email sent from GitLab7214 behaves like it should not have Gmail Actions links7215 is expected not to have body including "ViewAction"7216 behaves like a user cannot unsubscribe through footer link7217 does not have a List-Unsubscribe header or a body link7218 added a new email address7219 is sent to the user7220 has the correct subject7221 includes a link to the email address page7222 behaves like an email sent from GitLab7223 has the characteristics of an email sent from GitLab7224 behaves like it should not have Gmail Actions links7225 is expected not to have body including "ViewAction"7226 behaves like a user cannot unsubscribe through footer link7227 does not have a List-Unsubscribe header or a body link7228 awarded a new achievement7229 is sent to the user7230 has the correct subject7231 includes a link to the profile page7232 includes a link to the awarding group7233 behaves like an email sent from GitLab7234 has the characteristics of an email sent from GitLab7235 behaves like it should not have Gmail Actions links7236 is expected not to have body including "ViewAction"7237 behaves like a user cannot unsubscribe through footer link7238 does not have a List-Unsubscribe header or a body link7239UploadsController7240 POST #authorize7241 behaves like handle uploads authorize7242 POST #authorize7243 when a user is not authorized to upload a file7244 returns 404 status7245 when id is not passed as a param7246 returns 404 status7247 when a user can upload a file7248 and the request bypassed workhorse7249 raises an exception7250 and request is sent by gitlab-workhorse to authorize the request7251 when using local storage7252 behaves like a local file7253 behaves like a valid response7254 responds with status 2007255 uses the gitlab-workhorse content type7256 responds with status 200, location of uploads store and object details7257 when using remote storage7258 when direct upload is enabled7259 behaves like a valid response7260 responds with status 2007261 uses the gitlab-workhorse content type7262 responds with status 200, location of uploads remote store and object details7263 when direct upload is disabled7264 behaves like a local file7265 behaves like a valid response7266 responds with status 2007267 uses the gitlab-workhorse content type7268 responds with status 200, location of uploads store and object details7269 POST create7270 snippet uploads7271 when a user does not have permissions to upload a file7272 returns 401 when the user is not logged in7273 returns 404 when user can't comment on a snippet7274 when a user is logged in7275 returns an error without file7276 returns an error with invalid model7277 returns 404 status when object not found7278 with valid image7279 returns a content with original filename, new link, and correct type.7280 creates a corresponding Upload record7281 with valid non-image file7282 returns a content with original filename, new link, and correct type.7283 creates a corresponding Upload record7284 user uploads7285 returns 401 when the user has no access7286 when user is logged in7287 returns a content with original filename, new link, and correct type.7288 creates a corresponding Upload record7289 returns 404 when given user is not the logged in one7290 with valid non-image file7291 returns a content with original filename, new link, and correct type.7292 creates a corresponding Upload record7293 GET show7294 Content-Disposition security measures7295 for PNG files7296 behaves like uploaded file with disposition7297 returns correct Content-Disposition7298 for PDF files7299 behaves like uploaded file with disposition7300 returns correct Content-Disposition7301 for SVG files7302 behaves like uploaded file with disposition7303 returns correct Content-Disposition7304 when viewing a user avatar7305 when signed in7306 when the user is blocked7307 responds with status 4017308 when the user isn't blocked7309 responds with status 2007310 behaves like content publicly cached7311 ensures content is publicly cached7312 when not signed in7313 when restricted visibility level is not set to public7314 responds with status 2007315 behaves like content publicly cached7316 ensures content is publicly cached7317 when restricted visibility level is set to public7318 responds with status 4017319 when viewing a project avatar7320 when the project is public7321 when not signed in7322 responds with status 2007323 behaves like content 5 min private cached with revalidation7324 ensures content will not be cached without revalidation7325 when signed in7326 responds with status 2007327 behaves like content 5 min private cached with revalidation7328 ensures content will not be cached without revalidation7329 when the project is private7330 when not signed in7331 responds with status 4017332 when signed in7333 when the user has access to the project7334 when the user is blocked7335 responds with status 4017336 when the user isn't blocked7337 responds with status 2007338 behaves like content 5 min private cached with revalidation7339 ensures content will not be cached without revalidation7340 when the user doesn't have access to the project7341 responds with status 4047342 when viewing a group avatar7343 when the group is public7344 when not signed in7345 responds with status 2007346 behaves like content 5 min private cached with revalidation7347 ensures content will not be cached without revalidation7348 when signed in7349 responds with status 2007350 behaves like content 5 min private cached with revalidation7351 ensures content will not be cached without revalidation7352 when the group is private7353 when signed in7354 when the user has access to the project7355 when the user is blocked7356 responds with status 4017357 when the user isn't blocked7358 responds with status 2007359 behaves like content 5 min private cached with revalidation7360 ensures content will not be cached without revalidation7361 when the user doesn't have access to the project7362 responds with status 4047363 when viewing a note attachment7364 when the project is public7365 when not signed in7366 responds with status 2007367 behaves like content not cached7368 ensures content will not be cached without revalidation7369 when signed in7370 responds with status 2007371 behaves like content not cached7372 ensures content will not be cached without revalidation7373 when the project is private7374 when not signed in7375 responds with status 4017376 when signed in7377 when the user has access to the project7378 when the user is blocked7379 responds with status 4017380 when the user isn't blocked7381 responds with status 2007382 behaves like content not cached7383 ensures content will not be cached without revalidation7384 when the user doesn't have access to the project7385 responds with status 4047386 when viewing a topic avatar7387 when signed in7388 responds with status 2007389 behaves like content publicly cached7390 ensures content is publicly cached7391 when not signed in7392 responds with status 2007393 behaves like content publicly cached7394 ensures content is publicly cached7395 Appearance7396 when viewing a custom pwa icon7397 behaves like view custom logo7398 when not signed in7399 responds with status 2007400 behaves like content publicly cached7401 ensures content is publicly cached7402 when viewing a custom header logo7403 behaves like view custom logo7404 when not signed in7405 responds with status 2007406 behaves like content publicly cached7407 ensures content is publicly cached7408 when viewing a custom logo7409 behaves like view custom logo7410 when not signed in7411 responds with status 2007412 behaves like content publicly cached7413 ensures content is publicly cached7414 original filename or a version filename must match7415 has a valid filename on the original file7416 successfully returns the file7417 has an invalid filename on the original file7418 returns a 4047419 when viewing alert metric images7420 responds with status 2007421 when viewing an achievement7422 when signed in7423 responds with status 2007424 behaves like content publicly cached7425 ensures content is publicly cached7426 when not signed in7427 responds with status 2007428 behaves like content publicly cached7429 ensures content is publicly cached7430SentNotificationsController7431 GET unsubscribe7432 when the user is not logged in7433 when the force param is passed7434 unsubscribes the user7435 does not delete the issue email participant for non-service-desk issue7436 sets the flash message7437 redirects to the login page7438 when the force param is not passed7439 when project is public7440 when unsubscribing from issue7441 shows issue title7442 does not delete the issue email participant7443 behaves like unsubscribing as anonymous7444 does not unsubscribe the user7445 does not set the flash message7446 renders unsubscribe page7447 shows project name or path7448 when unsubscribing from confidential issue7449 does not show issue title7450 behaves like unsubscribing as anonymous7451 does not unsubscribe the user7452 does not set the flash message7453 renders unsubscribe page7454 shows project name or path7455 when unsubscribing from merge request7456 shows merge request title7457 shows project name or path7458 behaves like unsubscribing as anonymous7459 does not unsubscribe the user7460 does not set the flash message7461 renders unsubscribe page7462 shows project name or path7463 when project is not public7464 when unsubscribing from issue7465 does not show issue title7466 behaves like unsubscribing as anonymous7467 does not unsubscribe the user7468 does not set the flash message7469 renders unsubscribe page7470 does not show project name or path7471 when unsubscribing from confidential issue7472 does not show issue title7473 behaves like unsubscribing as anonymous7474 does not unsubscribe the user7475 does not set the flash message7476 renders unsubscribe page7477 does not show project name or path7478 when unsubscribing from merge request7479 dos not show merge request title7480 behaves like unsubscribing as anonymous7481 does not unsubscribe the user7482 does not set the flash message7483 renders unsubscribe page7484 does not show project name or path7485 when the noteable associated to the notification has been deleted7486 behaves like returns 4047487 does not set the flash message7488 returns a 4047489 when the user is logged in7490 when the ID passed does not exist7491 behaves like returns 4047492 does not set the flash message7493 returns a 4047494 when the force param is passed7495 unsubscribes the user7496 sets the flash message7497 redirects to the issue page7498 when the force param is not passed7499 unsubscribes the user7500 sets the flash message7501 redirects to the merge request page7502 when project is private7503 and user does not have access7504 unsubscribes user and redirects to root path7505 and user has access7506 unsubscribes user and redirects to issue path7507 does not delete the issue email participant for non-service-desk issue7508 when the noteable associated to the notification has been deleted7509 behaves like returns 4047510 does not set the flash message7511 returns a 4047512 when support bot is the notification recipient7513 deletes the external author on the issue7514 when noteable is not an issue7515 does not delete the external author on the issue7516Projects::Snippets::BlobsController7517 GET #raw7518 with a snippet without a repository7519 behaves like raw snippet without repository7520 when authorized7521 returns a 4227522 when unauthorized7523 behaves like returning response status7524 returns not_found7525 project_visibility_level: :public, snippet_visibility_level: :public, user: :author, status: :ok7526 responds with correct status7527 project_visibility_level: :public, snippet_visibility_level: :public, user: :developer, status: :ok7528 responds with correct status7529 project_visibility_level: :public, snippet_visibility_level: :public, user: :other_user, status: :ok7530 responds with correct status7531 project_visibility_level: :public, snippet_visibility_level: :public, user: nil, status: :ok7532 responds with correct status7533 project_visibility_level: :public, snippet_visibility_level: :private, user: :author, status: :ok7534 responds with correct status7535 project_visibility_level: :public, snippet_visibility_level: :private, user: :developer, status: :ok7536 responds with correct status7537 project_visibility_level: :public, snippet_visibility_level: :private, user: :other_user, status: :not_found7538 responds with correct status7539 project_visibility_level: :public, snippet_visibility_level: :private, user: nil, status: :not_found7540 responds with correct status7541 project_visibility_level: :private, snippet_visibility_level: :public, user: :author, status: :ok7542 responds with correct status7543 project_visibility_level: :private, snippet_visibility_level: :public, user: :developer, status: :ok7544 responds with correct status7545 project_visibility_level: :private, snippet_visibility_level: :public, user: :other_user, status: :not_found7546 responds with correct status7547 project_visibility_level: :private, snippet_visibility_level: :public, user: nil, status: :redirect7548 responds with correct status7549 project_visibility_level: :private, snippet_visibility_level: :private, user: :author, status: :ok7550 responds with correct status7551 project_visibility_level: :private, snippet_visibility_level: :private, user: :developer, status: :ok7552 responds with correct status7553 project_visibility_level: :private, snippet_visibility_level: :private, user: :other_user, status: :not_found7554 responds with correct status7555 project_visibility_level: :private, snippet_visibility_level: :private, user: nil, status: :redirect7556 responds with correct status7557 behaves like raw snippet blob7558 with valid params7559 delivers file with correct Workhorse headers7560 responds with status 2007561 Content Disposition7562 when the disposition is inline7563 returns inline in the content disposition header7564 when the disposition is attachment7565 returns attachment plus the filename in the content disposition header7566 with invalid file path7567 behaves like returning response status7568 returns not_found7569 with invalid ref7570 behaves like returning response status7571 returns not_found7572 behaves like content disposition headers7573 sets content disposition to inline7574 when inline param is false7575 sets content disposition to attachment7576getting container repositories in a project7577 returns the total count of container repositories7578 behaves like a working graphql query7579 returns a successful response7580 matches the JSON schema7581 with different permissions7582 project_visibility: :private, role: :maintainer, access_granted: true, can_delete: true7583 return the proper response7584 project_visibility: :private, role: :developer, access_granted: true, can_delete: true7585 return the proper response7586 project_visibility: :private, role: :reporter, access_granted: true, can_delete: false7587 return the proper response7588 project_visibility: :private, role: :guest, access_granted: false, can_delete: false7589 return the proper response7590 project_visibility: :private, role: :anonymous, access_granted: false, can_delete: false7591 return the proper response7592 project_visibility: :public, role: :maintainer, access_granted: true, can_delete: true7593 return the proper response7594 project_visibility: :public, role: :developer, access_granted: true, can_delete: true7595 return the proper response7596 project_visibility: :public, role: :reporter, access_granted: true, can_delete: false7597 return the proper response7598 project_visibility: :public, role: :guest, access_granted: true, can_delete: false7599 return the proper response7600 project_visibility: :public, role: :anonymous, access_granted: true, can_delete: false7601 return the proper response7602 limiting the number of repositories7603 only returns N repositories7604 filter by name7605 returns the searched container repository7606 behaves like handling graphql network errors with the container registry7607 returns a connection error7608 behaves like not hitting graphql network errors with the container registry7609 does not return any error7610 sorting and pagination7611 when sorting by name7612 when ascending7613 behaves like sorted paginated query7614 behaves like requires variables7615 shared example requires variables to be set7617 when sorting7618 sorts correctly7619 when paginating7620 paginates correctly7621 when descending7622 behaves like sorted paginated query7623 behaves like requires variables7624 shared example requires variables to be set7626 when sorting7627 sorts correctly7628 when paginating7629 paginates correctly7630API::Ci::Runner7631 /api/v4/jobs7632 PATCH /api/v4/jobs/:id/trace7633 updates runner info7634 behaves like API::CI::Runner application context metadata7635 contains correct context metadata7636 behaves like runner migrations backoff7637 when executing locking database migrations7638 returns 429 error7639 with runner_migrations_backoff disabled7640 does not return 4297641 when request is valid7642 gets correct response7643 when job has been updated recently7644 is expected not to change `job.updated_at`7645 changes the job's trace7646 when Runner makes a force-patch7647 is expected not to change `job.updated_at`7648 doesn't change the build.trace7649 when job was not updated recently7650 is expected to change `job.updated_at`7651 changes the job.trace7652 when Runner makes a force-patch7653 is expected to change `job.updated_at`7654 doesn't change the job.trace7655 when project for the build has been deleted7656 responds with forbidden7657 when trace is patched7658 has valid trace7659 when job is cancelled7660 when trace is patched7661 returns Forbidden7662 when redis data are flushed7663 has empty trace7664 when we perform partial patch7665 returns an error7666 when we resend full trace7667 succeeds with updating trace7668 when concurrent update of trace is happening7669 returns that operation conflicts7670 when the job is canceled7671 receives status in header7672 when build trace is being watched7673 returns X-GitLab-Trace-Update-Interval as 37674 when build trace is not being watched7675 returns the interval in X-GitLab-Trace-Update-Interval7676 when job does not exist anymore7677 returns 403 Forbidden7678 when Runner makes a force-patch7679 gets correct response7680 when content-range start is too big7681 gets 416 error response with range headers7682 when content-range start is too small7683 gets 416 error response with range headers7684 when Content-Range header is missing7685 is expected to respond with numeric status code bad_request7686 when job has been errased7687 is expected to respond with numeric status code forbidden7688 when the job log is too big7689 returns 403 Forbidden7690API::Release::Links7691 GET /projects/:id/releases/:tag_name/assets/links7692 when there are two release links7693 returns 200 HTTP status7694 returns release links ordered by created_at7695 matches response schema7696 when using JOB-TOKEN auth7697 returns releases links7698 when release does not exist7699 behaves like 404 response7700 returns 4047701 when user is not a project member7702 behaves like 404 response7703 returns 4047704 when project is public7705 allows the request7706 and the releases are private7707 behaves like 403 response7708 returns 4037709 GET /projects/:id/releases/:tag_name/assets/links/:link_id7710 returns 200 HTTP status7711 returns a link entry7712 matches response schema7713 when using JOB-TOKEN auth7714 returns releases link7715 when specified tag is not found in the project7716 behaves like 404 response7717 returns 4047718 when user is not a project member7719 behaves like 404 response7720 returns 4047721 when project is public7722 allows the request7723 #direct_asset_url7724 when filepath is provided7725 is expected to eq "http://localhost/namespace605/project-647/-/releases/v0.1/downloads/bin/bigfile.exe"7726 when filepath is not provided7727 is expected to eq "https://google.com/-/jobs/140463678/artifacts/download"7728 POST /projects/:id/releases/:tag_name/assets/links7729 accepts the request7730 creates a new release7731 matches response schema7732 when using `direct_asset_path`7733 creates a new release link successfully7734 when using JOB-TOKEN auth7735 creates a new release link7736 with protected tag7737 when user has access to the protected tag7738 accepts the request7739 when user does not have access to the protected tag7740 forbids the request7741 when name is empty7742 behaves like 400 response7743 returns 4007744 when user is a reporter7745 behaves like 403 response7746 returns 4037747 when user is not a project member7748 forbids the request7749 when project is public7750 forbids the request7751 when the same link already exists7752 behaves like 400 response7753 returns 4007754 PUT /projects/:id/releases/:tag_name/assets/links/:link_id7755 accepts the request7756 updates the name7757 does not update the url7758 matches response schema7759 when params are invalid7760 returns 400 error7761 when using `direct_asset_path`7762 updates the release link7763 when using JOB-TOKEN auth7764 updates the release link7765 with protected tag7766 when user has access to the protected tag7767 accepts the request7768 when user does not have access to the protected tag7769 forbids the request7770 when params is empty7771 does not allow the request7772 when there are no corresponding release link7773 behaves like 404 response7774 returns 4047775 when user is a reporter7776 behaves like 403 response7777 returns 4037778 when user is not a project member7779 behaves like 404 response7780 returns 4047781 when project is public7782 behaves like 403 response7783 returns 4037784 DELETE /projects/:id/releases/:tag_name/assets/links/:link_id7785 accepts the request7786 destroys the release link7787 matches response schema7788 when using JOB-TOKEN auth7789 deletes the release link7790 with protected tag7791 when user has access to the protected tag7792 accepts the request7793 when user does not have access to the protected tag7794 forbids the request7795 when destroy process fails7796 behaves like 400 response7797 returns 4007798 when there are no corresponding release link7799 behaves like 404 response7800 returns 4047801 when user is a reporter7802 behaves like 403 response7803 returns 4037804 when user is not a project member7805 behaves like 404 response7806 returns 4047807 when project is public7808 behaves like 403 response7809 returns 4037810API::PagesDomains7811 GET /pages/domains7812 behaves like GET request permissions for admin mode7813 behaves like when admin7814 behaves like makes request7815 returns7816 behaves like makes request7817 returns7818 behaves like when user7819 returns7820 behaves like makes request7821 returns7822 when pages is disabled7823 behaves like 404 response7824 returns 4047825 when pages is enabled7826 when authenticated as an admin7827 returns paginated all pages domains7828 when authenticated as a non-member7829 behaves like 403 response7830 returns 4037831 GET /projects/:project_id/pages/domains7832 when pages is disabled7833 behaves like 404 response7834 returns 4047835 when user is a maintainer7836 behaves like get pages domains7837 returns paginated pages domains7838 when user is a developer7839 behaves like 403 response7840 returns 4037841 when user is a reporter7842 behaves like 403 response7843 returns 4037844 when user is a guest7845 behaves like 403 response7846 returns 4037847 when user is not a member7848 behaves like 404 response7849 returns 4047850 GET /projects/:project_id/pages/domains/:domain7851 when domain is vacant7852 behaves like 404 response7853 returns 4047854 when user is a maintainer7855 behaves like get pages domain7856 returns pages domain7857 returns pages domain with project path7858 returns pages domain with a certificate7859 returns pages domain with an expired certificate7860 returns pages domain with letsencrypt7861 when user is a developer7862 behaves like 403 response7863 returns 4037864 when user is a reporter7865 behaves like 403 response7866 returns 4037867 when user is a guest7868 behaves like 403 response7869 returns 4037870 when user is not a member7871 behaves like 404 response7872 returns 4047873 POST /projects/:project_id/pages/domains7874 when user is a maintainer7875 behaves like post pages domains7876 creates a new pages domain7877 creates a new secure pages domain7878 creates domain with letsencrypt enabled7879 creates domain with letsencrypt enabled and provided certificate7880 fails to create pages domain without key7881 fails to create pages domain with key missmatch7882 when user is a developer7883 behaves like 403 response7884 returns 4037885 when user is a reporter7886 behaves like 403 response7887 returns 4037888 when user is a guest7889 behaves like 403 response7890 returns 4037891 when user is not a member7892 behaves like 404 response7893 returns 4047894 PUT /projects/:project_id/pages/domains/:domain7895 when domain is vacant7896 behaves like 404 response7897 returns 4047898 when user is a maintainer7899 behaves like put pages domain7900 updates pages domain removing certificate7901 publishes PagesDomainUpdatedEvent event7902 updates pages domain adding certificate7903 updates pages domain adding certificate with letsencrypt7904 updates pages domain enabling letsencrypt7905 updates pages domain disabling letsencrypt while preserving the certificate7906 updates pages domain with expired certificate7907 updates pages domain with expired certificate not updating key7908 updates certificate source to user_provided if is changed7909 with invalid params7910 fails to update pages domain adding certificate without key7911 does not publish PagesDomainUpdatedEvent event7912 fails to update pages domain adding certificate with missing chain7913 fails to update pages domain with key missmatch7914 when user is a developer7915 behaves like 403 response7916 returns 4037917 when user is a reporter7918 behaves like 403 response7919 returns 4037920 when user is a guest7921 behaves like 403 response7922 returns 4037923 when user is not a member7924 behaves like 404 response7925 returns 4047926 DELETE /projects/:project_id/pages/domains/:domain7927 when domain is vacant7928 behaves like 404 response7929 returns 4047930 when user is a maintainer7931 behaves like delete pages domain7932 deletes a pages domain7933 when user is a developer7934 behaves like 403 response7935 returns 4037936 when user is a reporter7937 behaves like 403 response7938 returns 4037939 when user is a guest7940 behaves like 403 response7941 returns 4037942 when user is not a member7943 behaves like 404 response7944 returns 4047945Projects::VariablesController7946 GET #show7947 renders the variables as json7948 has only one variable7949 PATCH #update7950 with invalid new variable parameters7951 does not update the existing variable7952 does not create the new variable7953 returns a bad request response7954 with duplicate new variable parameters7955 does not update the existing variable7956 does not create the new variable7957 returns a bad request response7958 with valid new variable parameters7959 updates the existing variable7960 creates the new variable7961 returns a successful response7962 has all variables in response7963 with a deleted variable7964 destroys the variable7965 returns a successful response7966 has all variables in response7967 with missing variable7968 returns not found response7969 for variables of type file7970 creates new variable of type file7971 with environment scope7972 with same key and different environment scope7973 does not update the existing variable7974 creates the new variable7975 returns a successful response including all variables7976 with same key and same environment scope7977 does not update the existing variable7978 does not create the new variable7979 returns a bad request response7980Adding an image DiffNote7981 behaves like a Note mutation when the user does not have permission7982 behaves like a Note mutation that does not create a Note7983 is expected not to change `Note.count`7984 behaves like a mutation that returns top-level errors7985 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"7986 when the user has permission7987 returns the note with the correct position7988 behaves like a Note mutation that creates a Note7989 is expected to change `Note.count` by 17990 behaves like a Note mutation when there are active record validation errors7991 returns an empty Note7992 behaves like a Note mutation that does not create a Note7993 is expected not to change `Note.count`7994 behaves like a mutation that returns errors in the response7995 is expected to contain exactly "Error 1" and "Error 2"7996 behaves like a Note mutation when there are rate limit validation errors7997 with rate limiter7998 behaves like a Note mutation that does not create a Note7999 is expected not to change `Note.count`8000 behaves like a mutation that returns top-level errors8001 is expected to contain exactly "This endpoint has been requested too many times. Try again later."8002 when the user is in the allowlist8003 behaves like a Note mutation that creates a Note8004 is expected to change `Note.count` by 18006 behaves like a Note mutation when the given resource id is not for a Noteable8007 behaves like a Note mutation that does not create a Note8008 is expected not to change `Note.count`8009 behaves like a mutation that returns top-level errors8010 is expected to include / does not represent an instance of Noteable/8011API::Ml::Mlflow::Runs8012 # order random8013 POST /projects/:id/ml/mlflow/api/2.0/mlflow/runs/log-metric8014 logs the metric8015 Error Cases8016 behaves like MLflow|shared error cases8017 when not authenticated8018 is Unauthorized8019 when user does not have access8020 is Not Found8021 when model experiments is unavailable8022 is Not Found8023 behaves like MLflow|Requires api scope8024 when user has access but token has wrong scope8025 is expected to respond with numeric status code forbidden8026 behaves like MLflow|run_id param error cases8027 when run id is not passed8028 is Bad Request8029 when run_id is invalid8030 is Resource Does Not Exist8031 when run_id is not in in the project8032 is Resource Does Not Exist8033 behaves like MLflow|Bad Request on missing required8034 when "key" is missing8035 is Bad Request8036 when "value" is missing8037 is Bad Request8038 when "timestamp" is missing8039 is Bad Request8040 GET /projects/:id/ml/mlflow/api/2.0/mlflow/runs/get8041 gets the run8042 Error States8043 behaves like MLflow|run_id param error cases8044 when run id is not passed8045 is Bad Request8046 when run_id is invalid8047 is Resource Does Not Exist8048 when run_id is not in in the project8049 is Resource Does Not Exist8050 behaves like MLflow|shared error cases8051 when not authenticated8052 is Unauthorized8053 when user does not have access8054 is Not Found8055 when model experiments is unavailable8056 is Not Found8057 behaves like MLflow|Requires read_api scope8058 when user has access but token has wrong scope8059 is expected to respond with numeric status code forbidden8060 POST /projects/:id/ml/mlflow/api/2.0/mlflow/runs/create8061 creates the run8062 Error States8063 when experiment id is not passed8064 behaves like MLflow|Bad Request8065 is Bad Request8066 when experiment id does not exist8067 behaves like MLflow|Not Found - Resource Does Not Exist8068 is Resource Does Not Exist8069 when experiment exists but is not part of the project8070 behaves like MLflow|Not Found - Resource Does Not Exist8071 is Resource Does Not Exist8072 behaves like MLflow|shared error cases8073 when not authenticated8074 is Unauthorized8075 when user does not have access8076 is Not Found8077 when model experiments is unavailable8078 is Not Found8079 behaves like MLflow|Requires api scope8080 when user has access but token has wrong scope8081 is expected to respond with numeric status code forbidden8082 POST /projects/:id/ml/mlflow/api/2.0/mlflow/runs/update8083 updates the run8084 Error States8085 when status in invalid8086 behaves like MLflow|Bad Request8087 is Bad Request8088 when end_time is invalid8089 behaves like MLflow|Bad Request8090 is Bad Request8091 behaves like MLflow|shared error cases8092 when not authenticated8093 is Unauthorized8094 when user does not have access8095 is Not Found8096 when model experiments is unavailable8097 is Not Found8098 behaves like MLflow|Requires api scope8099 when user has access but token has wrong scope8100 is expected to respond with numeric status code forbidden8101 behaves like MLflow|run_id param error cases8102 when run id is not passed8103 is Bad Request8104 when run_id is invalid8105 is Resource Does Not Exist8106 when run_id is not in in the project8107 is Resource Does Not Exist8108 POST /projects/:id/ml/mlflow/api/2.0/mlflow/runs/log-batch8109 logs parameters and metrics8110 when parameter was already logged8111 does not log8112 when tag was already logged8113 logs only 18114 Error Cases8115 when required metric key is missing8116 behaves like MLflow|Bad Request8117 is Bad Request8118 when required param key is missing8119 behaves like MLflow|Bad Request8120 is Bad Request8121 behaves like MLflow|shared error cases8122 when not authenticated8123 is Unauthorized8124 when user does not have access8125 is Not Found8126 when model experiments is unavailable8127 is Not Found8128 behaves like MLflow|Requires api scope8129 when user has access but token has wrong scope8130 is expected to respond with numeric status code forbidden8131 behaves like MLflow|run_id param error cases8132 when run id is not passed8133 is Bad Request8134 when run_id is invalid8135 is Resource Does Not Exist8136 when run_id is not in in the project8137 is Resource Does Not Exist8138 POST /projects/:id/ml/mlflow/api/2.0/mlflow/runs/set-tag8139 logs the tag8140 Error Cases8141 when tag was already logged8142 behaves like MLflow|Bad Request8143 is Bad Request8144 behaves like MLflow|shared error cases8145 when not authenticated8146 is Unauthorized8147 when user does not have access8148 is Not Found8149 when model experiments is unavailable8150 is Not Found8151 behaves like MLflow|Requires api scope8152 when user has access but token has wrong scope8153 is expected to respond with numeric status code forbidden8154 behaves like MLflow|run_id param error cases8155 when run id is not passed8156 is Bad Request8157 when run_id is invalid8158 is Resource Does Not Exist8159 when run_id is not in in the project8160 is Resource Does Not Exist8161 behaves like MLflow|Bad Request on missing required8162 when "key" is missing8163 is Bad Request8164 when "value" is missing8165 is Bad Request8166 POST /projects/:id/ml/mlflow/api/2.0/mlflow/runs/log-parameter8167 logs the parameter8168 Error Cases8169 when parameter was already logged8170 behaves like MLflow|Bad Request8171 is Bad Request8172 behaves like MLflow|shared error cases8173 when not authenticated8174 is Unauthorized8175 when user does not have access8176 is Not Found8177 when model experiments is unavailable8178 is Not Found8179 behaves like MLflow|Requires api scope8180 when user has access but token has wrong scope8181 is expected to respond with numeric status code forbidden8182 behaves like MLflow|run_id param error cases8183 when run id is not passed8184 is Bad Request8185 when run_id is invalid8186 is Resource Does Not Exist8187 when run_id is not in in the project8188 is Resource Does Not Exist8189 behaves like MLflow|Bad Request on missing required8190 when "key" is missing8191 is Bad Request8192 when "value" is missing8193 is Bad Request8194Projects::Settings::AccessTokensController8195 GET /:namespace/:project/-/settings/access_tokens8196 behaves like feature unavailable8197 user is not a maintainer8198 is expected to respond with numeric status code not_found8199 behaves like GET resource access tokens available8200 retrieves active access tokens8201 lists all available scopes8202 returns for json response8203 behaves like GET access tokens are paginated and ordered8204 when multiple access tokens are returned8205 returns paginated response8206 when access_token_pagination feature flag is disabled8207 returns all tokens in system8208 when tokens returned are ordered8209 orders token list ascending on expires_at8210 orders tokens on id in case token has same expires_at8211 POST /:namespace/:project/-/settings/access_tokens8212 behaves like feature unavailable8213 user is not a maintainer8214 is expected to respond with numeric status code not_found8215 behaves like POST resource access tokens available8216 renders JSON with a token8217 creates resource access token8218 creates project bot user8219 is expected to change `User.count` by 18220 is expected to change `PersonalAccessToken.count` by 18221 when unsuccessful8222 does not create the token8223 does not add the project bot as a member8224 does not create the project bot user8225 renders JSON with an error8226 when project access token creation is disabled8227 is expected to respond with numeric status code not_found8228 does not create the token8229 does not add the project bot as a member8230 does not create the project bot user8231 with custom access level8232 behaves like POST resource access tokens available8233 renders JSON with a token8234 creates resource access token8235 creates project bot user8236 is expected to change `User.count` by 18237 is expected to change `PersonalAccessToken.count` by 18238 when unsuccessful8239 does not create the token8240 does not add the project bot as a member8241 does not create the project bot user8242 renders JSON with an error8243 PUT /:namespace/:project/-/settings/access_tokens/:id8244 behaves like feature unavailable8245 user is not a maintainer8246 is expected to respond with numeric status code not_found8247 behaves like PUT resource access tokens available8248 calls delete user worker8249 removes membership of bot user8250 creates GhostUserMigration records to handle migration in a worker8251 when unsuccessful8252 shows a failure alert8253 #index8254 includes details of the active project access tokens8255Dashboard::MilestonesController8256 #index8257 returns group and project milestones to which the user belongs8258 returns closed group and project milestones to which the user belongs8259 searches legacy project milestones by title when search_title is given8260 searches group milestones by title when search_title is given8261 shows counts of open/closed/all group and project milestones to which the user belongs to8262 external authorization8263 behaves like disabled when using an external authorization service8264 works when the feature is not enabled8265 renders a 404 with a message when the feature is enabled8266get board lists8267 for a project8268 behaves like group and project board list issues query8269 when the user does not have access to the board8270 returns nil8271 when user can read the board8272 can access the issues8273 does not set the relative positions of the issues not being returned8274 when filtering by confidential8275 returns matching issue8276 when filtering by a unioned argument8277 returns correctly filtered issues (FAILED - 1)82791st Try error in ./spec/requests/api/graphql/boards/board_list_issues_query_spec.rb:117:8280[{"message"=>"Timeout on validation of query", "locations"=>[], "extensions"=>{"code"=>"validationTimeout"}}]8282RSpec::Retry: 2nd try ./spec/requests/api/graphql/boards/board_list_issues_query_spec.rb:1178283 when feature flag is disabled8284 returns an error8285 for a group8286 behaves like group and project board list issues query8287 when the user does not have access to the board8288 returns nil8289 when user can read the board8290 can access the issues8291 does not set the relative positions of the issues not being returned8292 when filtering by confidential8293 returns matching issue8294 when filtering by a unioned argument8295 returns correctly filtered issues8296 when feature flag is disabled8297 returns an error8298API::ResourceLabelEvents8299 when eventable is an Issue8300 behaves like resource_label_events API8301 GET /projects/:id/issues/:noteable_id/resource_label_events8302 with local label reference8303 returns an array of resource label events8304 returns a 404 error when eventable id not found8305 returns 404 when not authorized8306 with cross-project label reference8307 returns cross references accessible by user8308 does not return cross references not accessible by user8309 GET /projects/:id/issues/:noteable_id/resource_label_events/:event_id8310 with local label reference8311 returns a resource label event by id8312 returns 404 when not authorized8313 returns a 404 error if resource label event not found8314 with cross-project label reference8315 returns a 404 error if cross-reference project is not accessible8316 pagination8317 returns the second page8318 when eventable is a Merge Request8319 behaves like resource_label_events API8320 GET /projects/:id/merge_requests/:noteable_id/resource_label_events8321 with local label reference8322 returns an array of resource label events8323 returns a 404 error when eventable id not found8324 returns 404 when not authorized8325 with cross-project label reference8326 returns cross references accessible by user8327 does not return cross references not accessible by user8328 GET /projects/:id/merge_requests/:noteable_id/resource_label_events/:event_id8329 with local label reference8330 returns a resource label event by id8331 returns 404 when not authorized8332 returns a 404 error if resource label event not found8333 with cross-project label reference8334 returns a 404 error if cross-reference project is not accessible8335 pagination8336 returns the second page8337Toggling an AwardEmoji8338 when the user has permission8339 when the given awardable is not an Awardable8340 behaves like a mutation that does not create or destroy an AwardEmoji8341 is expected not to change `AwardEmoji.count`8342 behaves like a mutation that returns top-level errors8343 is expected to include /was provided invalid value for awardableId/8344 when the given awardable is an Awardable but still cannot be awarded an emoji8345 behaves like a mutation that does not create or destroy an AwardEmoji8346 is expected not to change `AwardEmoji.count`8347 behaves like a mutation that returns top-level errors8348 is expected to contain exactly "You cannot award emoji to this resource."8349 when the given awardable is an Awardable8350 when no emoji has been awarded by the current_user yet8351 creates an emoji8352 returns the emoji8353 returns toggledOn as true8354 marking Todos as done8355 type: :issue, expectation: true8356 is expected to eq true8357 type: :merge_request, expectation: true8358 is expected to eq true8359 type: :project_snippet, expectation: false8360 is expected to eq false8361 for notes8362 regular Notes8363 marks the Todo as done8364 PersonalSnippet Notes8365 does not mark the Todo as done8366 when there were active record validation errors8367 returns an empty awardEmoji8368 behaves like a mutation that does not create or destroy an AwardEmoji8369 is expected not to change `AwardEmoji.count`8370 behaves like a mutation that returns errors in the response8371 is expected to contain exactly "Error 1" and "Error 2"8372 when an emoji has been awarded by the current_user8373 removes the emoji8374 returns no errors8375 returns an empty awardEmoji8376 returns toggledOn as false8377 when the user does not have permission8378 behaves like a mutation that does not create or destroy an AwardEmoji8379 is expected not to change `AwardEmoji.count`8380 behaves like a mutation that returns a top-level access error8381 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"8382Admin::IntegrationsController8383 behaves like Integrations::Actions8384 GET #edit8385 assigns the integration8386 behaves like unknown integration8387 returns 404 Not Found8388 PUT #update8389 updates the integration with the provided params and redirects to the form8390 when sending a password field8391 updates the integration with the password and other params8392 when sending a blank password field8393 ignores the password field and saves the other params8394 behaves like unknown integration8395 returns 404 Not Found8396 PUT #test8397 behaves like unknown integration8398 returns 404 Not Found8399 #edit8400 integration_name: "asana"8401 successfully displays the template8402 integration_name: "assembla"8403 successfully displays the template8404 integration_name: "bamboo"8405 successfully displays the template8406 integration_name: "bugzilla"8407 successfully displays the template8408 integration_name: "buildkite"8409 successfully displays the template8410 integration_name: "campfire"8411 successfully displays the template8412 integration_name: "clickup"8413 successfully displays the template8414 integration_name: "confluence"8415 successfully displays the template8416 integration_name: "custom_issue_tracker"8417 successfully displays the template8418 integration_name: "datadog"8419 successfully displays the template8420 integration_name: "discord"8421 successfully displays the template8422 integration_name: "drone_ci"8423 successfully displays the template8424 integration_name: "emails_on_push"8425 successfully displays the template8426 integration_name: "ewm"8427 successfully displays the template8428 integration_name: "external_wiki"8429 successfully displays the template8430 integration_name: "hangouts_chat"8431 successfully displays the template8432 integration_name: "harbor"8433 successfully displays the template8434 integration_name: "irker"8435 successfully displays the template8436 integration_name: "jira"8437 successfully displays the template8438 integration_name: "mattermost"8439 successfully displays the template8440 integration_name: "mattermost_slash_commands"8441 successfully displays the template8442 integration_name: "microsoft_teams"8443 successfully displays the template8444 integration_name: "mock_ci"8445 successfully displays the template8446 integration_name: "mock_monitoring"8447 successfully displays the template8448 integration_name: "packagist"8449 successfully displays the template8450 integration_name: "pipelines_email"8451 successfully displays the template8452 integration_name: "pivotaltracker"8453 successfully displays the template8454 integration_name: "prometheus"8455 successfully displays the template8456 integration_name: "pumble"8457 successfully displays the template8458 integration_name: "pushover"8459 successfully displays the template8460 integration_name: "redmine"8461 successfully displays the template8462 integration_name: "slack"8463 successfully displays the template8464 integration_name: "slack_slash_commands"8465 successfully displays the template8466 integration_name: "squash_tm"8467 successfully displays the template8468 integration_name: "teamcity"8469 successfully displays the template8470 integration_name: "telegram"8471 successfully displays the template8472 integration_name: "unify_circuit"8473 successfully displays the template8474 integration_name: "webex_teams"8475 successfully displays the template8476 integration_name: "youtrack"8477 successfully displays the template8478 integration_name: "zentao"8479 successfully displays the template8480 when GitLab.com8481 returns 4048482 #update8483 with valid params8484 updates the integration8485 calls to PropagateIntegrationWorker8486 with invalid params8487 does not update the integration8488 does not call to PropagateIntegrationWorker8489 #reset8490 returns 200 OK8491 deletes the integration and all inheriting integrations8492API::ProtectedBranches8493 GET /projects/:id/protected_branches8494 when authenticated as a maintainer8495 when search param is not present8496 behaves like protected branches8497 returns the protected branches8498 when search param is present8499 behaves like protected branches8500 returns the protected branches8501 when authenticated as a developer8502 behaves like protected branches8503 returns the protected branches8504 when authenticated as a guest8505 behaves like 403 response8506 returns 4038507 GET /projects/:id/protected_branches/:branch8508 when authenticated as a maintainer8509 behaves like protected branch8510 returns the protected branch8511 when protected branch does not exist8512 behaves like 404 response8513 returns 4048514 when protected branch contains a wildcard8515 behaves like protected branch8516 returns the protected branch8517 when protected branch does not exist8518 behaves like 404 response8519 returns 4048520 when protected branch contains a period8521 behaves like protected branch8522 returns the protected branch8523 when protected branch does not exist8524 behaves like 404 response8525 returns 4048526 when a deploy key is present8527 returns deploy key information8528 when authenticated as a developer8529 behaves like protected branch8530 returns the protected branch8531 when protected branch does not exist8532 behaves like 404 response8533 returns 4048534 when authenticated as a guest8535 behaves like 403 response8536 returns 4038537 POST /projects/:id/protected_branches8538 when authenticated as a maintainer8539 protects a single branch8540 protects a single branch and developers can push8541 protects a single branch and developers can merge8542 protects a single branch and developers can push and merge8543 protects a single branch and no one can push8544 protects a single branch and no one can merge8545 protects a single branch and no one can push or merge8546 protects a single branch and allows force pushes8547 returns a 409 error if the same branch is protected twice8548 when branch has a wildcard in its name8549 protects multiple branches with a wildcard in the name8550 when a policy restricts rule creation8551 prevents creations of the protected branch rule8552 when authenticated as a developer8553 returns a 403 error8554 when authenticated as a guest8555 returns a 403 error8556 PATCH /projects/:id/protected_branches/:name8557 when authenticated as a maintainer8558 updates a single branch8559 when allow_force_push is not set8560 responds with a bad request error8561 when returned protected branch is invalid8562 returns a 4228563 when authenticated as a developer8564 returns a 403 error8565 when authenticated as a guest8566 returns a 403 error8567 DELETE /projects/:id/protected_branches/unprotect/:branch8568 when authenticated as a maintainer8569 unprotects a single branch8570 returns 404 if branch does not exist8571 behaves like 412 response8572 for a modified resource8573 returns 412 with a JSON error8574 for an unmodified resource8575 returns 204 with an empty body8576 when a policy restricts rule deletion8577 prevents deletion of the protected branch rule8578 when branch has a wildcard in its name8579 unprotects a wildcard branch8580 when authenticated as a developer8581 returns a 403 error8582 when authenticated as a guest8583 returns a 403 error8584API::Ci::SecureFiles8585 GET /projects/:id/secure_files8586 ci_secure_files_read_only feature flag8587 when the flag is enabled8588 returns a 503 when attempting to upload a file8589 returns a 200 when downloading a file8590 when the feature is disabled at the instance level8591 returns a 403 when attempting to upload a file8592 returns a 403 when downloading a file8593 when the flag is disabled8594 returns a 201 when uploading a file when the ci_secure_files_read_only feature flag is disabled8595 authenticated user with admin permissions8596 returns project secure files8597 authenticated user with read permissions8598 returns project secure files8599 authenticated user with guest permissions8600 does not return project secure files8601 authenticated user with no permissions8602 does not return project secure files8603 unconfirmed user8604 does not return project secure files8605 unauthenticated user8606 does not return project secure files8607 GET /projects/:id/secure_files/:secure_file_id8608 authenticated user with admin permissions8609 returns project secure file details8610 returns project secure file details with metadata when supported8611 responds with 404 Not Found if requesting non-existing secure file8612 authenticated user with read permissions8613 returns project secure file details8614 authenticated user with no permissions8615 does not return project secure file details8616 unconfirmed user8617 does not return project secure file details8618 unauthenticated user8619 does not return project secure file details8620 GET /projects/:id/secure_files/:secure_file_id/download8621 authenticated user with admin permissions8622 returns a secure file8623 responds with 404 Not Found if requesting non-existing secure file8624 authenticated user with read permissions8625 returns a secure file8626 authenticated user with no permissions8627 does not return project secure file details8628 unconfirmed user8629 does not return project secure file details8630 unauthenticated user8631 does not return project secure file details8632 POST /projects/:id/secure_files8633 authenticated user with admin permissions8634 creates a secure file8635 uploads and downloads a secure file8636 returns an error when the file checksum fails to validate8637 returns an error when no file is uploaded8638 returns an error when the file name is missing8639 returns an error when the file name has already been used8640 returns an error when an unexpected validation failure happens8641 returns a 413 error when the file size is too large8642 returns an error when and invalid file name is supplied8643 authenticated user with read permissions8644 does not create a secure file8645 authenticated user with no permissions8646 does not create a secure file8647 unconfirmed user8648 does not create a secure file8649 unauthenticated user8650 does not create a secure file8651 DELETE /projects/:id/secure_files/:secure_file_id8652 authenticated user with admin permissions8653 deletes the secure file8654 responds with 404 Not Found if requesting non-existing secure_file8655 authenticated user with read permissions8656 does not delete the secure_file8657 authenticated user with no permissions8658 does not delete the secure_file8659 unconfirmed user8660 does not delete the secure_file8661 unauthenticated user8662 does not delete the secure_file8663Emails::AutoDevops8664 #auto_devops_disabled_email8665 sents email with correct subject8666 sents an email to the user8667 is sent as GitLab email8668 behaves like appearance header and footer enabled8669 contains header and footer8670 behaves like appearance header and footer not enabled8671 does not contain header and footer8672API::SystemHooks8673 behaves like web-hook API endpoints8674 GET /hooks8675 authorized user8676 returns all hooks8677 when user is forbidden8678 prevents access to hooks8679 when user is unauthorized8680 prevents access to hooks8681 the hook has URL variables8682 returns the names of the url variables8683 GET /hooks/:hook_id8684 authorized user8685 returns a project hook8686 returns a 404 error if hook id is not available8687 the hook is disabled8688 has the correct alert status8689 the hook is backed-off8690 has the correct alert status8691 when user is forbidden8692 does not access an existing hook8693 when user is unauthorized8694 does not access an existing hook8695 POST /hooks8696WARNING: ignoring the provided expectation message argument (:push_events) since it is not a string or a proc.8697WARNING: ignoring the provided expectation message argument (:tag_push_events) since it is not a string or a proc.8698WARNING: ignoring the provided expectation message argument (:merge_requests_events) since it is not a string or a proc.8699WARNING: ignoring the provided expectation message argument (:repository_update_events) since it is not a string or a proc.8700 adds hook8701 adds the token without including it in the response8702 returns a 400 error if url not given8703 returns a 400 error if no parameters are provided8704WARNING: ignoring the provided expectation message argument (:push_events) since it is not a string or a proc.8705WARNING: ignoring the provided expectation message argument (:tag_push_events) since it is not a string or a proc.8706WARNING: ignoring the provided expectation message argument (:merge_requests_events) since it is not a string or a proc.8707WARNING: ignoring the provided expectation message argument (:repository_update_events) since it is not a string or a proc.8708 sets default values for events8709 returns a 422 error if token not valid8710 returns a 422 error if url not valid8711 PUT /hooks/:hook_id8712 updates an existing hook8713 updates the URL variables8714 adds the token without including it in the response8715 returns 404 error if hook id not found8716 returns 400 error if no parameters are provided8717 returns a 422 error if url is not valid8718 returns a 422 error if token is not valid8719 DELETE /projects/:id/hooks/:hook_id8720 deletes hook from project8721 returns a 404 error when deleting non existent hook8722 returns a 404 error if hook id not given8723 returns forbidden if a user attempts to delete hooks they do not own8724 behaves like 412 response8725 for a modified resource8726 returns 412 with a JSON error8727 for an unmodified resource8728 returns 204 with an empty body8729 PUT /hooks/:hook_id/url_variables/:key8730 sets the variable8731 overwrites existing values8732 returns a 404 error when editing non existent hook8733 returns a 422 error when the key is illegal8734 returns a 422 error when the value is illegal8735 DELETE /hooks/:hook_id/url_variables/:key8736 unsets the variable8737 returns 404 for keys that do not exist8738 returns a 404 error when deleting a variable from a non existent hook8739 behaves like web-hook API endpoints test hook8740 POST /:hook_id8741 tests the hook8742Destroying multiple package files8743 post graphql mutation8744 with valid params8745 user_role: :maintainer, shared_examples_name: "destroying the package files"8746 behaves like destroying the package files8747 marks the package file as pending destruction8748 behaves like returning response status8749 returns success8750 user_role: :developer, shared_examples_name: "denying the mutation request"8751 behaves like denying the mutation request8752 does not mark the package file as pending destruction8753 behaves like returning response status8754 returns success8755 user_role: :reporter, shared_examples_name: "denying the mutation request"8756 behaves like denying the mutation request8757 does not mark the package file as pending destruction8758 behaves like returning response status8759 returns success8760 user_role: :guest, shared_examples_name: "denying the mutation request"8761 behaves like denying the mutation request8762 does not mark the package file as pending destruction8763 behaves like returning response status8764 returns success8765 user_role: :anonymous, shared_examples_name: "denying the mutation request"8766 behaves like denying the mutation request8767 does not mark the package file as pending destruction8768 behaves like returning response status8769 returns success8770 with more than 100 files8771 behaves like denying the mutation request8772 does not mark the package file as pending destruction8773 behaves like returning response status8774 returns success8775 with files outside of the project8776 behaves like denying the mutation request8777 does not mark the package file as pending destruction8778 behaves like returning response status8779 returns success8780 with invalid params8781 behaves like denying the mutation request8782 does not mark the package file as pending destruction8783 behaves like returning response status8784 returns success8785Projects::Registry::RepositoriesController8786 when user has access to registry8787 GET #index8788 behaves like renders a list of repositories8789 when root container repository exists8790 does not create root container repository8791 when root container repository is not created8792 when there are tags for this repository8793 creates a root container repository8794 behaves like renders 200 for html and 404 for json8795 successfully renders container repositories8796 returns 404 for request in json format8797 when there is a ContainerRegistry::Path::InvalidRegistryPathError8798 displays a connection error message8799 when there is a Faraday::Error8800 displays a connection error message8801 when there are no tags for this repository8802 does not ensure root container repository8803 behaves like renders 200 for html and 404 for json8804 successfully renders container repositories8805 returns 404 for request in json format8806 when there is a ContainerRegistry::Path::InvalidRegistryPathError8807 displays a connection error message8808 when there is a Faraday::Error8809 displays a connection error message8810 GET #show8811 behaves like renders a list of repositories8812 when root container repository exists8813 does not create root container repository8814 when root container repository is not created8815 when there are tags for this repository8816 creates a root container repository8817 behaves like renders 200 for html and 404 for json8818 successfully renders container repositories8819 returns 404 for request in json format8820 when there is a ContainerRegistry::Path::InvalidRegistryPathError8821 displays a connection error message8822 when there is a Faraday::Error8823 displays a connection error message8824 when there are no tags for this repository8825 does not ensure root container repository8826 behaves like renders 200 for html and 404 for json8827 successfully renders container repositories8828 returns 404 for request in json format8829 when there is a ContainerRegistry::Path::InvalidRegistryPathError8830 displays a connection error message8831 when there is a Faraday::Error8832 displays a connection error message8833 DELETE #destroy8834 when root container repository exists8835 marks the repository as delete_scheduled8836 tracks the event8837 when user does not have access to registry8838 GET #index8839 responds with 4048840 does not ensure root container repository8841conan package details8842 has the correct metadata8843 has the correct file metadata8844 behaves like a package detail8845 behaves like a working graphql query8846 returns a successful response8847 behaves like matching the package details schema8848 matches the JSON schema8849 with pipelines8850 behaves like a working graphql query8851 returns a successful response8852 behaves like matching the package details schema8853 matches the JSON schema8854 behaves like a package with files8855 has the right amount of files8856 has the basic package files data8857 with package files pending destruction8858 does not return them8859Query.runners8860 Query.runners8861 runner_type is INSTANCE_TYPE and status is ACTIVE8862 behaves like a working graphql query returning expected runner8863 returns expected runner8864 does not execute more queries per runner8865 behaves like a working graphql query8866 returns a successful response8867 runner_type is PROJECT_TYPE and status is NEVER_CONTACTED8868 behaves like a working graphql query returning expected runner8869 returns expected runner8870 does not execute more queries per runner8871 behaves like a working graphql query8872 returns a successful response8873 pagination8874 when sorted by contacted_at ascending8875 behaves like sorted paginated query8876 behaves like requires variables8877 shared example requires variables to be set8879 when sorting8880DEPRECATION WARNING: TimeWithZone#to_s(:inspect) is deprecated. Please use TimeWithZone#to_fs(:inspect) instead. (called from block in cursor_attributes_for_node at /builds/gitlab-org/gitlab/lib/gitlab/pagination/keyset/order.rb:101)8881DEPRECATION WARNING: TimeWithZone#to_s(:inspect) is deprecated. Please use TimeWithZone#to_fs(:inspect) instead. (called from block in cursor_attributes_for_node at /builds/gitlab-org/gitlab/lib/gitlab/pagination/keyset/order.rb:101)8882 sorts correctly8883 when paginating8884DEPRECATION WARNING: TimeWithZone#to_s(:inspect) is deprecated. Please use TimeWithZone#to_fs(:inspect) instead. (called from block in cursor_attributes_for_node at /builds/gitlab-org/gitlab/lib/gitlab/pagination/keyset/order.rb:101)8885DEPRECATION WARNING: TimeWithZone#to_s(:inspect) is deprecated. Please use TimeWithZone#to_fs(:inspect) instead. (called from block in cursor_attributes_for_node at /builds/gitlab-org/gitlab/lib/gitlab/pagination/keyset/order.rb:101)8886DEPRECATION WARNING: TimeWithZone#to_s(:inspect) is deprecated. Please use TimeWithZone#to_fs(:inspect) instead. (called from block in cursor_attributes_for_node at /builds/gitlab-org/gitlab/lib/gitlab/pagination/keyset/order.rb:101)8887DEPRECATION WARNING: TimeWithZone#to_s(:inspect) is deprecated. Please use TimeWithZone#to_fs(:inspect) instead. (called from block in cursor_attributes_for_node at /builds/gitlab-org/gitlab/lib/gitlab/pagination/keyset/order.rb:101)8888DEPRECATION WARNING: TimeWithZone#to_s(:inspect) is deprecated. Please use TimeWithZone#to_fs(:inspect) instead. (called from block in cursor_attributes_for_node at /builds/gitlab-org/gitlab/lib/gitlab/pagination/keyset/order.rb:101)8889DEPRECATION WARNING: TimeWithZone#to_s(:inspect) is deprecated. Please use TimeWithZone#to_fs(:inspect) instead. (called from block in cursor_attributes_for_node at /builds/gitlab-org/gitlab/lib/gitlab/pagination/keyset/order.rb:101)8890 paginates correctly8891 when sorted by created_at8892 behaves like sorted paginated query8893 behaves like requires variables8894 shared example requires variables to be set8896 when sorting8897DEPRECATION WARNING: TimeWithZone#to_s(:inspect) is deprecated. Please use TimeWithZone#to_fs(:inspect) instead. (called from block in cursor_attributes_for_node at /builds/gitlab-org/gitlab/lib/gitlab/pagination/keyset/order.rb:101)8898DEPRECATION WARNING: TimeWithZone#to_s(:inspect) is deprecated. Please use TimeWithZone#to_fs(:inspect) instead. (called from block in cursor_attributes_for_node at /builds/gitlab-org/gitlab/lib/gitlab/pagination/keyset/order.rb:101)8899 sorts correctly8900 when paginating8901DEPRECATION WARNING: TimeWithZone#to_s(:inspect) is deprecated. Please use TimeWithZone#to_fs(:inspect) instead. (called from block in cursor_attributes_for_node at /builds/gitlab-org/gitlab/lib/gitlab/pagination/keyset/order.rb:101)8902DEPRECATION WARNING: TimeWithZone#to_s(:inspect) is deprecated. Please use TimeWithZone#to_fs(:inspect) instead. (called from block in cursor_attributes_for_node at /builds/gitlab-org/gitlab/lib/gitlab/pagination/keyset/order.rb:101)8903DEPRECATION WARNING: TimeWithZone#to_s(:inspect) is deprecated. Please use TimeWithZone#to_fs(:inspect) instead. (called from block in cursor_attributes_for_node at /builds/gitlab-org/gitlab/lib/gitlab/pagination/keyset/order.rb:101)8904DEPRECATION WARNING: TimeWithZone#to_s(:inspect) is deprecated. Please use TimeWithZone#to_fs(:inspect) instead. (called from block in cursor_attributes_for_node at /builds/gitlab-org/gitlab/lib/gitlab/pagination/keyset/order.rb:101)8905DEPRECATION WARNING: TimeWithZone#to_s(:inspect) is deprecated. Please use TimeWithZone#to_fs(:inspect) instead. (called from block in cursor_attributes_for_node at /builds/gitlab-org/gitlab/lib/gitlab/pagination/keyset/order.rb:101)8906DEPRECATION WARNING: TimeWithZone#to_s(:inspect) is deprecated. Please use TimeWithZone#to_fs(:inspect) instead. (called from block in cursor_attributes_for_node at /builds/gitlab-org/gitlab/lib/gitlab/pagination/keyset/order.rb:101)8907 paginates correctly8908Group.runners8909 edges8910 contains custom edge information8911helm package details8912 has the correct file metadata8913 behaves like a package detail8914 behaves like a working graphql query8915 returns a successful response8916 behaves like matching the package details schema8917 matches the JSON schema8918 with pipelines8919 behaves like a working graphql query8920 returns a successful response8921 behaves like matching the package details schema8922 matches the JSON schema8923 behaves like a package with files8924 has the right amount of files8925 has the basic package files data8926 with package files pending destruction8927 does not return them8928Mutations::Metrics::Dashboard::Annotations::Create8929 is expected to require graphql authorizations :admin_metrics_dashboard_annotation8930 when annotation source is environment8931 when the user does not have permission8932 does not create the annotation8933 behaves like a mutation that returns top-level errors8934 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"8935 when the user has permission8936 creates the annotation8937 returns the created annotation8938 when environment_id is missing8939 behaves like a mutation that returns top-level errors8940 is expected to contain exactly "Either a cluster or environment global id is required"8941 when environment_id is invalid8942 behaves like an invalid argument to the mutation8943 behaves like a mutation that returns top-level errors8944 is expected to contain exactly (include "invalid value for environmentId")8945 when metrics dashboard feature is unavailable8946 behaves like a mutation that returns top-level errors8947 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"8948 when annotation source is cluster8949 with permission8950 creates the annotation8951 returns the created annotation8952 when cluster_id is missing8953 behaves like a mutation that returns top-level errors8954 is expected to contain exactly "Either a cluster or environment global id is required"8955 without permission8956 does not create the annotation8957 behaves like a mutation that returns top-level errors8958 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"8959 when cluster_id is invalid8960 behaves like an invalid argument to the mutation8961 behaves like a mutation that returns top-level errors8962 is expected to contain exactly (include "invalid value for clusterId")8963 when both environment_id and cluster_id are provided8964 behaves like a mutation that returns top-level errors8965 is expected to contain exactly "Either a cluster or environment global id is required"8966 when environment_id is given an ID of the wrong type8967 behaves like an invalid argument to the mutation8968 behaves like a mutation that returns top-level errors8969 is expected to contain exactly (include "invalid value for environmentId")8970 when cluster_id is given an ID of the wrong type8971 behaves like an invalid argument to the mutation8972 behaves like a mutation that returns top-level errors8973 is expected to contain exactly (include "invalid value for clusterId")8974Admin::SessionsController8975 #new8976 for regular users8977 shows error page8978 for admin users8979 renders a password form8980 already in admin mode8981 redirects to original location8982 #create8983 for regular users8984 shows error page8985 for admin users8986 sets admin mode with a valid password8987 fails with an invalid password8988 fails if not requested first8989 fails if request period expired8990 when using two-factor authentication via OTP8991 requests two factor after a valid password is provided8992 can login with valid otp8993 cannot login with invalid otp8994 with password authentication disabled8995 allows 2FA stage of non-password login8996 on a read-only instance8997 does not attempt to write to the database with valid otp8998 does not attempt to write to the database with invalid otp8999 does not attempt to write to the database with backup code9000 when using two-factor authentication via WebAuthn9001 requests two factor after a valid password is provided9002 can login with valid auth9003 cannot login with invalid auth9004 #destroy9005 for regular users9006 shows error page9007 for admin users9008 disables admin mode and redirects to main page9009Groups::Settings::CiCdController9010 GET #show9011 when user is owner9012 renders show with 200 status code9013 when user is not owner9014 renders a 4049015 external authorization9016 renders show with 200 status code9017 PATCH #update_auto_devops9018 when user does not have enough permission9019 is expected to respond with numeric status code not_found9020 when user has enough privileges9021 is expected to redirect to "/groups/group99/-/settings/ci_cd"9022 when service execution went wrong9023 returns a flash alert9024 when service execution was successful9025 returns a flash notice9026 when changing auto devops value9027 when explicitly enabling auto devops9028 updates group attribute9029 when explicitly disabling auto devops9030 updates group attribute9031 PATCH #update9032 when user is not an admin9033 is expected to respond with numeric status code not_found9034 when user is an admin9035 when admin mode is disabled9036 is expected to respond with numeric status code not_found9037 when admin mode is enabled9038 is expected to redirect to "/groups/group99/-/settings/ci_cd"9039 when service execution went wrong9040 returns a flash alert9041 when service execution was successful9042 returns a flash notice9043Admin::Ci::VariablesController9044 GET #show9045 when signed in as admin9046 renders the variables as json9047 has only one variable9048 when signed in as regular user9049 returns 4049050 PATCH #update9051 when signed in as admin9052 with invalid new variable parameters9053 does not update the existing variable9054 does not create the new variable9055 returns a bad request response9056 with duplicate new variable parameters9057 does not update the existing variable9058 does not create the new variable9059 returns a bad request response9060 with valid new variable parameters9061 updates the existing variable9062 creates the new variable9063 returns a successful response9064 has all variables in response9065 with a deleted variable9066 destroys the variable9067 returns a successful response9068 has all variables in response9069 with missing variable9070 returns not found response9071 for variables of type file9072 creates new variable of type file9073 when signed in as regular user9074 returns 4049075AbuseReportsController9076 POST add_category9077 when user is reported for abuse9078 renders new template9079 sets the instance variables9080 tracks the snowplow event9081 when abuse_report is missing in params9082 raises an error9083 when user_id is missing in params9084 redirects the reporter to root_path9085 when the user has already been deleted9086 redirects the reporter to root_path9087 when the user has already been banned9088 redirects the reporter to the user's profile9089 POST create9090 with valid attributes9091 saves the abuse report9092 calls notify9093 redirects back to root9094 tracks the snowplow event9095 with invalid attributes9096 redirects back to root9097 does not track the snowplow event9098API::Internal::Pages9099 GET /internal/pages/status9100 responds with 401 Unauthorized9101 responds with 204 no content9102 GET /internal/pages9103 when not authenticated9104 responds with 401 Unauthorized9105 when authenticated9106 when domain does not exist9107 responds with 204 no content9108 when querying a custom domain9109 when there are no pages deployed for the related project9110 responds with 204 No Content9111 when there are pages deployed for the related project9112 domain lookup is case insensitive9113 responds with the correct domain configuration9114 when querying a unique domain9115 when there are no pages deployed for the related project9116 responds with 204 No Content9117 when there are pages deployed for the related project9118 domain lookup is case insensitive9119 responds with the correct domain configuration9120 when the feature flag is disabled9121 when there are no pages deployed for the related project9122 responds with 204 No Content9123 when the unique domain is disabled9124 when there are no pages deployed for the related project9125 responds with 204 No Content9126 when querying a namespaced domain9127 when there are no pages deployed for the related project9128 responds with 204 No Content9129 when there are pages deployed for the related project9130 avoids N+1 queries9131 with a regular project9132 responds with the correct domain configuration9133 with a group root project9134 responds with the correct domain configuration9135Mutations::Boards::Create9136 behaves like boards create mutation9137 when the user does not have permission9138 does not create the board9139 behaves like a mutation that returns a top-level access error9140 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"9141 when the user has permission9142 when the parent (project_path or group_path) param is given9143 when everything is ok9144 creates the board9145 returns the created board9146 when hide_backlog_list parameter is true9147 returns the board with correct hide_backlog_list field9148 when hide_closed_list parameter is true9149 returns the board with correct hide_closed_list field9150 when the Boards::CreateService returns an error response9151 does not create a board9152 returns an error9153 when neither project_path nor group_path param is given9154 does not create the board9155 behaves like a mutation that returns top-level errors9156 is expected to contain exactly "Exactly one of group_path or project_path arguments is required"9157Setting the escalation status of an incident9158 sets given escalation_policy to the escalation status for the issue9159 when user does not have permission to edit the escalation status9160 behaves like a mutation that returns a top-level access error9161 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"9162 with non-incident issue is provided9163 behaves like a mutation that returns top-level errors9164 is expected to contain exactly "Feature unavailable for provided issue"9165 when status argument is not given9166 behaves like a mutation that returns top-level errors9167 is expected to contain exactly (include "status (Expected value to not be null)")9168 when status argument is invalid9169 behaves like an invalid argument to the mutation9170 behaves like a mutation that returns top-level errors9171 is expected to contain exactly (include "invalid value for status")9172API::Internal::MailRoom9173 POST /internal/mail_room/*mailbox_type9174 handle incoming_email successfully9175 schedules a EmailReceiverWorker job with raw email content9176 handle service_desk_email successfully9177 schedules a ServiceDeskEmailReceiverWorker job with raw email content9178 email content exceeds limit9179 responds with 400 bad request and replies with a failure message9180 not authenticated9181 responds with 401 Unauthorized9182 wrong token authentication9183 responds with 401 Unauthorized9184 wrong mailbox type authentication9185 responds with 401 Unauthorized9186 not supported mailbox type9187 responds with 401 Unauthorized9188 not enabled mailbox type9189 responds with 401 Unauthorized9190 handle invalid utf-8 email content9191 schedules a EmailReceiverWorker job with email content encoded to utf-8 forcefully9192 handle text/plain request content type9193 schedules a EmailReceiverWorker job with email content encoded to utf-8 forcefully9194Repositories::LfsStorageController9195 PUT #upload_authorize9196 with unauthorized roles9197 user_role: :guest, expected_status: :forbidden9198 behaves like returning response status9199 returns forbidden9200 user_role: :anonymous, expected_status: :unauthorized9201 behaves like returning response status9202 returns unauthorized9203 with at least developer role9204 sets Workhorse with a max limit9205 PUT #upload_finalize9206 with lfs enabled9207 with unauthorized roles9208 user_role: :guest, expected_status: :forbidden9209 behaves like returning response status9210 returns forbidden9211 user_role: :anonymous, expected_status: :unauthorized9212 behaves like returning response status9213 returns unauthorized9214 with at least developer role9215 creates the objects9216 without the workhorse header9217 is expected to raise JWT::DecodeError9218 without file9219 behaves like returning response status9220 returns unprocessable_entity9221 with an invalid file9222 behaves like returning response status9223 returns bad_request9224 when an expected error9225 ActiveRecord::RecordInvalid raised9226 renders lfs forbidden9227 UploadedFile::InvalidPathError raised9228 renders lfs forbidden9229 ObjectStorage::RemoteStoreError raised9230 renders lfs forbidden9231 when existing file has been deleted9232 replaces the file9233 with invalid file9234 renders bad request9235 when file is not stored9236 renders unprocessable entity9237 with lfs disabled9238 behaves like returning response status9239 returns not_implemented9240Admin::HookLogsController9241 # order random9242 behaves like WebHooks::HookLogActions9243 GET #show9244 renders a 200 if the hook exists9245 renders a 404 if the hook does not exist9246 POST #retry9247 executes the hook and redirects to the service form9248 renders a 404 if the hook does not exist9249Groups::Harbor::ArtifactsController9250 behaves like a harbor artifacts controller9251 GET #index.json9252 with harbor registry feature flag enabled9253 behaves like responds with 200 status with json9254 renders the index template9255 with harbor registry feature flag disabled9256 behaves like responds with 404 status9257 returns 4049258 with anonymous user9259 behaves like responds with 404 status9260 returns 4049261 with unauthorized user9262 behaves like responds with 404 status9263 returns 4049264 with valid params9265 with valid repository9266 behaves like responds with 200 status with json9267 renders the index template9268 with valid page9269 behaves like responds with 200 status with json9270 renders the index template9271 with valid limit9272 behaves like responds with 200 status with json9273 renders the index template9274 with invalid params9275 with invalid page9276 behaves like responds with 422 status with json9277 returns 4229278 with invalid limit9279 behaves like responds with 422 status with json9280 returns 4229281merge request content spec9282 GET cached_widget9283 behaves like cached widget request9284 avoids N+1 queries when multiple job artifacts are present9285 with non_public_artifacts disabled9286 behaves like cached widget request9287 avoids N+1 queries when multiple job artifacts are present9288getting list of branch rules for a project9289 # order random9290 when the user does have read_protected_branch abilities9291 queries9292 avoids N+1 queries9293 response9294 includes all fields9295 behaves like a working graphql query9296 returns a successful response9297 when limiting the number of results9298 returns pagination information9299 behaves like a working graphql query9300 returns a successful response9301 when no limit is provided9302 returns all branch_rules9303 when the user does not have read_protected_branch abilities9304 hides branch rules data9305 behaves like a working graphql query9306 returns a successful response9307Query9308 .namespace9309 behaves like retrieving a namespace9310 authorised query9311 fetches the expected data9312 behaves like a working graphql query9313 returns a successful response9314 unauthorised query9315 anonymous user9316 does not retrieve the record9317 the current user does not have permission9318 does not retrieve the record9319 behaves like retrieving a namespace9320 authorised query9321 fetches the expected data9322 behaves like a working graphql query9323 returns a successful response9324 unauthorised query9325 anonymous user9326 does not retrieve the record9327 the current user does not have permission9328 does not retrieve the record9329 does not retrieve project namespace9330 does not retrieve the record9331getting job information9332 # order random9333 if the user is not an admin9334 has no access to the jobs9335 when user is admin9336 has full access to all jobs9337 when filtered by status9338 gets pending jobs9339 gets pending and failed jobs9340 when N+1 queries9341 avoids N+1 queries successfully9342Mutations::Achievements::Delete9343 # order random9344 when the user does not have permission9345 does not revoke any achievements9346 behaves like a mutation that returns a top-level access error9347 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"9348 when the user has permission9349 deletes the achievement9350 when the params are invalid9351 returns the validation error9352 when the achievement_id is invalid9353 returns the validation error9354 when the feature flag is disabled9355 returns the relevant error9356Projects::Import::JiraController9357 GET #show9358 behaves like users without permissions9359 with anonymous user9360 redirects to new user page9361 when loged user is a developer9362 behaves like redirect with error9363 redirects to project issues path9364 renders a correct error9365 jira integration configuration9366 when Jira service is not enabled for the project9367 does not query Jira service9368 behaves like template with no message9369 does not set any message9370 renders show template9371 when Jira service is not configured correctly for the project9372 behaves like template with no message9373 does not set any message9374 renders show template9375Projects::ServiceDeskController9376 GET service desk properties9377 returns service_desk JSON data9378 when user is not project maintainer9379 renders 4049380 when issue template is present9381 returns template_file_missing as false9382 when issue template file becomes outdated9383 returns template_file_missing as true9384 PUT service desk properties9385 toggles services desk incoming email9386 sets issue_template_key9387 returns an error when update of service desk settings fails9388 when user cannot admin the project9389 renders 4049390Subscriptions::Notes::Updated9391 # order random9392 when user is authorized9393 receives updated note data9394 when note is confidential9395 and user has permission to read confidential notes9396 receives updated note data9397 and user does not have permission to read confidential notes9398 does not receive updated note data9399 when user is unauthorized9400 does not receive any data9401Setting subscribed status of a merge request9402 behaves like a subscribable resource api9403 when the user is not authorized9404 behaves like a mutation that returns top-level errors9405 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"9406 when user is authorized9407 marks the resource as subscribed9408 when passing subscribe false as input9409 unmarks the resource as subscribed9410PipelineSchedulePlay9411 # order random9412 when authorized9413 when mutation succeeds9414 is expected to eq []9415 when mutation fails9416 is expected to contain exactly "Unable to schedule a pipeline to run immediately."9417 when unauthorized9418 returns an error9419ChecksCollaboration9420 #can_collaborate_with_project?9421 is true if the user can push to the project9422 is true when the user can push to a branch of the project9423 when the user has forked the project9424 is true9425 is false when the project is archived9426Projects::Settings::SlacksController9427 # order random9428 GET slack_auth9429 when valid CSRF token is provided9430 calls service and redirects with no alerts if result is successful9431 calls service and redirects with the alert if there is error9432 when no CSRF token is provided9433 returns 4039434 when there was an OAuth error9435 redirects with an alert9436 POST update9437 when alias is valid9438 updates the record9439 when alias is invalid9440 does not update the record9441 DELETE destroy9442 destroys the record9443Mutations::Achievements::DeleteUserAchievement9444 # order random9445 when the user has permission9446 when the params are invalid9447 returns the validation error9448 when the user_achievement_id is invalid9449 returns the relevant error9450 when the feature flag is disabled9451 returns the relevant error9452 when everything is ok9453 deletes an user achievement9454 returns the deleted user achievement9455 when the user does not have permission9456 does not delete any user achievements9457 behaves like a mutation that returns a top-level access error9458 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"9459AbuseReportMailer9460 .notify9461 behaves like appearance header and footer enabled9462 contains header and footer9463 behaves like appearance header and footer not enabled9464 does not contain header and footer9465 with abuse_notification_email set9466 sends to the abuse_notification_email9467 includes the user in the subject9468 with no abuse_notification_email set9469 returns early9470Admin::RunnerProjectsController9471 # order random9472 #create9473 when assigning to another project9474 redirects to the admin runner edit page9475 when assigning to same project9476 redirects to the admin runner edit page9477 when assigning to an unknown project9478 shows 404 for unknown project9479 #destroy9480 when unassigning runner from project9481 redirects to the admin runner edit page9482 when unassigning from unknown project9483 shows 404 for unknown project runner relationship9484JiraConnect::SubscriptionsController9485 GET /-/jira_connect/subscriptions9486 is expected to include "http://self-managed-gitlab.com/-/jira_connect/"9487 is expected to include "http://self-managed-gitlab.com/api/"9488 is expected to include "http://self-managed-gitlab.com/oauth/"9489 is expected to include "frame-ancestors 'self' https://*.atlassian.net https://*.jira.com"9490 with additional iframe ancestors9491 is expected to include "frame-ancestors 'self' https://*.atlassian.net https://*.jira.com http://localhost:* http://dev.gitlab.com"9492 with no self-managed instance configured9493 is expected not to include "http://self-managed-gitlab.com/-/jira_connect/"9494 is expected not to include "http://self-managed-gitlab.com/api/"9495 is expected not to include "http://self-managed-gitlab.com/oauth/"9496 when json format9497 allows cross-origin requests9498 OPTIONS /-/jira_connect/subscriptions9499 allows cross-origin requests9500 OPTIONS /-/jira_connect/subscriptions/:id9501 allows cross-origin requests9502 DELETE /-/jira_connect/subscriptions/:id9503 allows cross-origin requests9504Projects::Settings::IntegrationHookLogsController9505 # order random9506 behaves like WebHooks::HookLogActions9507 GET #show9508 renders a 200 if the hook exists9509 renders a 404 if the hook does not exist9510 POST #retry9511 executes the hook and redirects to the service form9512 renders a 404 if the hook does not exist9513PipelineScheduleTakeOwnership9514 # order random9515 returns an error if the user is not allowed to take ownership of the schedule9516 takes ownership of the schedule9517query Jira service9518 behaves like unauthorized users cannot read services9519 when anonymous user9520 is expected to equal nil9521 when user developer9522 is expected to equal nil9523 when user can access project services9524 retuns list of jira imports9525 behaves like a working graphql query9526 returns a successful response9527getting a list of work item types for a project9528 when user has access to the project9529 returns all default work item types9530 behaves like a working graphql query9531 returns a successful response9532 when user doesn't have access to the project9533 does not return the project9534Projects::ErrorTracking::StackTracesController9535 GET #index9536 when awaiting data9537 responds with no data9538 behaves like sets the polling header9539 is expected to eq "1000"9540 when service result is successful9541 highlights stack trace source code9542 behaves like sets the polling header9543 is expected to eq "1000"9544 when service result is erroneous9545 without http_status9546 responds with bad request9547 with explicit http_status9548 responds with custom http status9549JobArtifactsDestroy9550 # order random9551 when the user is not allowed to destroy the job artifacts9552 returns an error9553 when the user is allowed to destroy the job artifacts9554 destroys the job artifacts and returns the expected data9555 when the the project this job belongs to is undergoing stats refresh9556 destroys no artifacts and returns the correct error9557Profiles::GpgKeysController9558 POST #create9559 creates a new key9560Setting assignees of an alert9561 updates the assignee of the alert9562 with operation_mode specified9563 updates the assignee of the alert9564PageLimiter9565 #limit_pages9566 max_page: 2, actual_page: 1, result: nil9567 returns the expected result9568 max_page: 2, actual_page: 2, result: nil9569 returns the expected result9570 max_page: 2, actual_page: 3, result: PageLimiter::PageOutOfBoundsError9571 returns the expected result9572 max_page: nil, actual_page: 1, result: PageLimiter::PageLimitNotANumberError9573 returns the expected result9574 max_page: 0, actual_page: 1, result: PageLimiter::PageLimitNotSensibleError9575 returns the expected result9576 max_page: -1, actual_page: 1, result: PageLimiter::PageLimitNotSensibleError9577 returns the expected result9578 #default_page_out_of_bounds_response9579 returns a bad_request header9580 #record_page_limit_interception9581 creates a metric counter9582 increments the counter9583Groups::DependencyProxyAuthController9584 GET #authenticate9585 without JWT9586 returns unauthorized with oauth realm9587 with valid JWT9588 user9589 is expected to respond with numeric status code success9590 deploy token9591 is expected to respond with numeric status code success9592 with invalid JWT9593 bad user9594 is expected to respond with numeric status code unauthorized9595 token with no user id9596 is expected to respond with numeric status code unauthorized9597 expired token9598 is expected to respond with numeric status code unauthorized9599 expired deploy token9600 is expected to respond with numeric status code unauthorized9601 revoked deploy token9602 is expected to respond with numeric status code unauthorized9603Timeline Events9604 # order random9605 POST /preview_markdown9606 when authorized9607 renders JSON in a correct format9608 when not authorized9609 returns 3029610WhatsNewController9611 GET #index9612 with no page param9613 responds with paginated data and headers9614 with page param9615 passes the page parameter9616 returns a 404 if page param is negative9617 with whats_new_variant = disabled9618 returns a 4049619Resetting a token on an existing HTTP Integration9620 updates the integration9621Updating an existing HTTP Integration9622 behaves like updating an existing HTTP integration9623 updates the integration9624Admin::InstanceReviewController9625 GET #index9626 with usage ping enabled9627 redirects to the customers app with correct params9628 with usage ping disabled9629 redirects to the customers app with correct params9630Projects::Ci::PrometheusMetrics::HistogramsController9631 POST /*namespace_id/:project_id/-/ci/prometheus_metrics/histograms9632 with known histograms9633 returns 201 Created9634 with unknown histograms9635 returns 404 Not Found9636User spoofs their IP9637 raises a 400 error9638Harbor::Repository9639 behaves like raises NotImplementedError when calling #container9640 #container9641 raises NotImplementedError9642Knapsack report was generated. Preview:9643{9644 "spec/requests/api/npm_project_packages_spec.rb": 583.6052409329995,9645 "spec/requests/api/notes_spec.rb": 157.63458975499998,9646 "spec/controllers/projects_controller_spec.rb": 86.41796432400042,9647 "spec/controllers/projects/clusters_controller_spec.rb": 90.63552963599977,9648 "spec/requests/api/ci/triggers_spec.rb": 89.22451376800018,9649 "spec/requests/api/deployments_spec.rb": 55.233301966,9650 "spec/requests/api/terraform/state_spec.rb": 56.55488090799918,9651 "spec/mailers/emails/profile_spec.rb": 22.486165100001017,9652 "spec/controllers/uploads_controller_spec.rb": 30.58278425500066,9653 "spec/controllers/sent_notifications_controller_spec.rb": 42.5541927560007,9654 "spec/controllers/projects/snippets/blobs_controller_spec.rb": 29.940980051000224,9655 "spec/requests/api/graphql/project/container_repositories_spec.rb": 29.879929311000524,9656 "spec/requests/api/ci/runner/jobs_trace_spec.rb": 31.099567192000904,9657 "spec/requests/api/release/links_spec.rb": 22.429979980999633,9658 "spec/requests/api/pages_domains_spec.rb": 11.53023003799899,9659 "spec/controllers/projects/variables_controller_spec.rb": 17.591145739999774,9660 "spec/requests/api/graphql/mutations/notes/create/image_diff_note_spec.rb": 21.829124227000648,9661 "spec/requests/api/ml/mlflow/runs_spec.rb": 9.094509245000154,9662 "spec/requests/projects/settings/access_tokens_controller_spec.rb": 15.240025761999277,9663 "spec/controllers/dashboard/milestones_controller_spec.rb": 18.30569331100014,9664 "spec/requests/api/graphql/boards/board_list_issues_query_spec.rb": 18.251941241000168,9665 "spec/requests/api/resource_label_events_spec.rb": 14.863024778998806,9666 "spec/requests/api/graphql/mutations/award_emojis/toggle_spec.rb": 14.018669061000764,9667 "spec/controllers/admin/integrations_controller_spec.rb": 6.8876929029993335,9668 "spec/requests/api/protected_branches_spec.rb": 8.609777703000873,9669 "spec/requests/api/ci/secure_files_spec.rb": 6.157637263000652,9670 "spec/mailers/emails/auto_devops_spec.rb": 6.663135542999953,9671 "spec/requests/api/system_hooks_spec.rb": 7.33963723099987,9672 "spec/requests/api/graphql/mutations/packages/destroy_files_spec.rb": 8.004971591999492,9673 "spec/controllers/projects/registry/repositories_controller_spec.rb": 6.0233898170008615,9674 "spec/requests/api/graphql/packages/conan_spec.rb": 9.862333867999041,9675 "spec/requests/api/graphql/ci/runners_spec.rb": 7.607318022000982,9676 "spec/requests/api/graphql/packages/helm_spec.rb": 8.558706823001557,9677 "spec/requests/api/graphql/mutations/metrics/dashboard/annotations/create_spec.rb": 5.318962314999226,9678 "spec/controllers/admin/sessions_controller_spec.rb": 4.269493513998896,9679 "spec/controllers/groups/settings/ci_cd_controller_spec.rb": 4.849703608000709,9680 "spec/controllers/admin/ci/variables_controller_spec.rb": 3.852395527999761,9681 "spec/requests/abuse_reports_controller_spec.rb": 5.924232746001508,9682 "spec/requests/api/internal/pages_spec.rb": 3.707605023999349,9683 "spec/requests/api/graphql/mutations/boards/create_spec.rb": 3.8470152689988026,9684 "spec/requests/api/graphql/mutations/issues/set_escalation_status_spec.rb": 2.2798934200000076,9685 "spec/requests/api/internal/mail_room_spec.rb": 1.0506932509997569,9686 "spec/controllers/repositories/lfs_storage_controller_spec.rb": 3.966969966999386,9687 "spec/requests/admin/hook_logs_controller_spec.rb": 1.2516761049992056,9688 "spec/requests/groups/harbor/artifacts_controller_spec.rb": 3.2923667980012397,9689 "spec/requests/projects/merge_requests/content_spec.rb": 4.265770083999087,9690 "spec/requests/api/graphql/project/branch_rules_spec.rb": 4.224150111000199,9691 "spec/requests/api/graphql/namespace_query_spec.rb": 3.6049691419993906,9692 "spec/requests/api/graphql/jobs_query_spec.rb": 3.8082700060003845,9693 "spec/requests/api/graphql/mutations/achievements/delete_spec.rb": 1.9745865849999973,9694 "spec/controllers/projects/import/jira_controller_spec.rb": 2.460048798999196,9695 "spec/controllers/projects/service_desk_controller_spec.rb": 3.389815370999713,9696 "spec/requests/api/graphql/subscriptions/notes/updated_spec.rb": 2.4096290770012274,9697 "spec/requests/api/graphql/mutations/merge_requests/set_subscription_spec.rb": 2.2401055179998366,9698 "spec/requests/api/graphql/mutations/ci/pipeline_schedule_play_spec.rb": 1.6614745410006435,9699 "spec/controllers/concerns/checks_collaboration_spec.rb": 2.6892585170007806,9700 "spec/controllers/projects/settings/slacks_controller_spec.rb": 2.3018091160010954,9701 "spec/requests/api/graphql/mutations/achievements/delete_user_achievement_spec.rb": 2.340802329001235,9702 "spec/mailers/abuse_report_mailer_spec.rb": 2.135049516999061,9703 "spec/controllers/admin/runner_projects_controller_spec.rb": 2.14723945500009,9704 "spec/requests/jira_connect/subscriptions_controller_spec.rb": 1.5530290410006273,9705 "spec/requests/projects/settings/integration_hook_logs_controller_spec.rb": 2.2590059539998038,9706 "spec/requests/api/graphql/mutations/ci/pipeline_schedule_take_ownership_spec.rb": 1.2519361049999134,9707 "spec/requests/api/graphql/project/base_service_spec.rb": 1.8593473460005043,9708 "spec/requests/api/graphql/project/work_item_types_spec.rb": 1.3864105709999421,9709 "spec/controllers/projects/error_tracking/stack_traces_controller_spec.rb": 1.3797226629994839,9710 "spec/requests/api/graphql/mutations/ci/job/artifacts_destroy_spec.rb": 1.728149360000316,9711 "spec/controllers/profiles/gpg_keys_controller_spec.rb": 1.4844118430009985,9712 "spec/requests/api/graphql/mutations/alert_management/alerts/set_assignees_spec.rb": 1.343938297999557,9713 "spec/controllers/concerns/page_limiter_spec.rb": 0.6919453459995566,9714 "spec/controllers/groups/dependency_proxy_auth_controller_spec.rb": 0.9772741650012904,9715 "spec/requests/projects/incident_management/timeline_events_spec.rb": 1.2042606639988662,9716 "spec/requests/whats_new_controller_spec.rb": 0.935428991999288,9717 "spec/requests/api/graphql/mutations/alert_management/http_integration/reset_token_spec.rb": 0.9377040210001724,9718 "spec/requests/api/graphql/mutations/alert_management/http_integration/update_spec.rb": 1.1097025309991295,9719 "spec/controllers/admin/instance_review_controller_spec.rb": 0.6470185329999367,9720 "spec/requests/projects/ci/promeheus_metrics/histograms_controller_spec.rb": 0.7389223970003513,9721 "spec/requests/user_spoofs_ip_spec.rb": 0.39109071900020353,9722 "spec/controllers/concerns/harbor/repository_spec.rb": 0.33977151799990689723}9724Knapsack global time execution for tests: 27m 32s9725Pending: (Failures listed here are expected and do not affect your suite's status)9726 1) ProjectsController#update hashed storage behaves like updating a project when only renaming a project path upgrades and move project to hashed storage when project was originally legacy9727 # No reason given9728 # ./spec/controllers/projects_controller_spec.rb:8469729 2) ProjectsController#update legacy storage behaves like updating a project when only renaming a project path doesnt change the disk_path when using hashed storage9730 # No reason given9731 # ./spec/controllers/projects_controller_spec.rb:8319732Failures:9733 1) get board lists for a project behaves like group and project board list issues query when user can read the board when filtering by a unioned argument returns correctly filtered issues9734 Failure/Error: expect(issue_id).to contain_exactly(issue1.to_gid.to_s, issue2.to_gid.to_s)9735 expected collection contained: ["gid://gitlab/Issue/171", "gid://gitlab/Issue/172"]9736 actual collection contained: ["gid://gitlab/Issue/172"]9737 the missing elements were: ["gid://gitlab/Issue/171"]9738 Shared Example Group: "group and project board list issues query" called from ./spec/requests/api/graphql/boards/board_list_issues_query_spec.rb:1459739 # ./spec/requests/api/graphql/boards/board_list_issues_query_spec.rb:123:in `block (5 levels) in <top (required)>'9740 # ./spec/spec_helper.rb:444:in `block (3 levels) in <top (required)>'9741 # ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'9742 # ./spec/spec_helper.rb:435:in `block (2 levels) in <top (required)>'9743 # ./spec/spec_helper.rb:431:in `block (3 levels) in <top (required)>'9744 # ./lib/gitlab/application_context.rb:61:in `with_raw_context'9745 # ./spec/spec_helper.rb:431:in `block (2 levels) in <top (required)>'9746 # ./spec/spec_helper.rb:268:in `block (2 levels) in <top (required)>'9747 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'9748 # ./spec/support/fast_quarantine.rb:23:in `block (2 levels) in <top (required)>'9749 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'9750 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'9751 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'9752Finished in 27 minutes 39 seconds (files took 1 minute 12.63 seconds to load)97533568 examples, 1 failure, 2 pending9754Failed examples:9755rspec './spec/requests/api/graphql/boards/board_list_issues_query_spec.rb[1:1:1:2:4:1]' # get board lists for a project behaves like group and project board list issues query when user can read the board when filtering by a unioned argument returns correctly filtered issues9756Randomized with seed 562399757[TEST PROF INFO] Time spent in factories: 10:48.466 (38.28% of total time)9758Stopped processing SimpleCov as a previous error not related to SimpleCov has been detected9759RSpec exited with 1.9760RETRIED_TESTS_REPORT_PATH: rspec/flaky/retried_tests_rspec_integration_pg14_3_12_report.txt9761Retrying the failing examples in a new RSpec process...9762$ gem install junit_merge --no-document --version 0.1.29763Successfully installed nokogiri-1.15.2-x86_64-linux9764Successfully installed junit_merge-0.1.297652 gems installed9766==> 'gem install junit_merge --no-document --version 0.1.2' succeeded in 2 seconds.9767Running RSpec command: bin/rspec -Ispec -rspec_helper --color --failure-exit-code 1 --error-exit-code 2 --format documentation --format Support::Formatters::JsonFormatter --out rspec/rspec-retry-4541357810.json --format RspecJunitFormatter --out rspec/rspec-retry-4541357810.xml --only-failures --pattern "spec/{commands,controllers,mailers,requests}{,/**/}*_spec.rb"9768Run options: include {:last_run_status=>"failed"}9769Test environment set up in 0.437565119 seconds9770get board lists9771 for a project9772 behaves like group and project board list issues query9773 when user can read the board9774 when filtering by a unioned argument9775 returns correctly filtered issues9776Finished in 6.81 seconds (files took 38.28 seconds to load)97771 example, 0 failures9778[TEST PROF INFO] Time spent in factories: 00:02.781 (33.06% of total time)9779Loading rspec/rspec-4541357810.json...9780Merged rspec/rspec-retry-4541357810.json adding 4 results.9781Saved rspec/rspec-4541357810.json.9782A test was flaky and succeeded after being retried. Checking to see if flaky test is part of this MR...9783Flaky test was not part of this MR.9785Running after script...9786$ echo -e "\e[0Ksection_start:`date +%s`:report_results_section[collapsed=true]\r\e[0KReport results"9794Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy9796Uploading artifacts...9797coverage/: found 4 matching artifact files and directories 9798WARNING: crystalball/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 9799deprecations/: found 8 matching artifact files and directories 9800knapsack/: found 4 matching artifact files and directories 9801query_recorder/: found 2 matching artifact files and directories 9802rspec/: found 13 matching artifact files and directories 9803WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 9804log/*.log: found 19 matching artifact files and directories 9805WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4541357810/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com9806WARNING: Retrying... context=artifacts-uploader error=request redirected9807Uploading artifacts as "archive" to coordinator... 201 Created id=4541357810 responseStatus=201 Created token=64_Efxot9808Uploading artifacts...9809rspec/rspec-*.xml: found 2 matching artifact files and directories 9810WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4541357810/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com9811WARNING: Retrying... context=artifacts-uploader error=request redirected9812Uploading artifacts as "junit" to coordinator... 201 Created id=4541357810 responseStatus=201 Created token=64_Efxot9814Job succeeded