rspec integration pg14 9/12
Passed Started
by
@himkp

Himanshu Kapoor
1Running with gitlab-runner 16.1.0~beta.59.g83c66823 (83c66823)2 on green-1.private.runners-manager.gitlab.com/gitlab.com/gitlab-org 4bq1s9yM, system ID: s_9d15f3e4e7ae3 feature flags: FF_NETWORK_PER_BUILD:true, FF_USE_FASTZIP:true, FF_USE_IMPROVED_URL_MASKING:true6Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-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 ...7Starting service registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-14-pgvector-0.4.1 ...8Authenticating with credentials from job payload (GitLab Registry)9Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-14-pgvector-0.4.1 ...10Using docker image sha256:2e09e9db92541ed81b1c00f1d5186f8c262d8b84e8d1755676ea4b25614f30c4 for registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-14-pgvector-0.4.1 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:afc7bd7a60824044709543a6a700385e412d750d9ab4fc72b427e335e1d0f3ec ...11WARNING: Service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 is already created. Ignoring.12WARNING: Service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 is already created. Ignoring.13Starting service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 ...14Authenticating with credentials from job payload (GitLab Registry)15Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 ...16Using docker image sha256:a9a90ece30d9630d694ab1997cd103ea8ec729789451b983a75c7b58b0062d45 for registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:7ef36177d5d0bc554fbb63d8210ae751bcc538bea7905b51d078d9ab90a755fa ...17Starting service redis:6.2-alpine ...18Pulling docker image redis:6.2-alpine ...19Using docker image sha256:85fd7bd884b6493c8eb6f4dffbe5406d97cce56aff84f1580a5eb5b9d841f158 for redis:6.2-alpine with digest redis@sha256:87c44d5d9f472e767c8737f4130c765d77bdc95c7472d6427cfc9d4632f12da6 ...20Waiting for services to be up and running (timeout 30 seconds)...21Authenticating with credentials from job payload (GitLab Registry)22Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-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 ...23Using docker image sha256:29b87d4e8d17fad91e09f1f9dc70458f075b8cefe102c904d6043b52d87d157a for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-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.19-rust-1.65-node-18.16-postgresql-14@sha256:8e1b76424e73a366225f410eabe5c92d13aaff628e0f8517cbd9416c0e2a2ac1 ...25Running on runner-4bq1s9ym-project-278964-concurrent-0 via runner-4bq1s9ym-private-1686242885-a54edf60...27Fetching changes with git depth set to 20...28Initialized empty Git repository in /builds/gitlab-org/gitlab/.git/29Created fresh repository.30remote: Enumerating objects: 132962, done. 31remote: Counting objects: 100% (132962/132962), done. 32remote: Compressing objects: 100% (88261/88261), done. 33remote: Total 132962 (delta 55395), reused 90861 (delta 39684), pack-reused 0 34Receiving objects: 100% (132962/132962), 116.60 MiB | 29.98 MiB/s, done.35Resolving deltas: 100% (55395/55395), done.37 * [new ref] refs/pipelines/894275018 -> refs/pipelines/89427501838Checking out 3853282a as detached HEAD (ref is refs/merge-requests/122037/merge)...39Skipping Git submodules setup40$ git remote set-url origin "${CI_REPOSITORY_URL}"42Checking cache for ruby-gems-debian-bullseye-ruby-3.0-16...43Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/ruby-gems-debian-bullseye-ruby-3.0-16 44Successfully extracted cache46Downloading artifacts for compile-test-assets (4440957385)...47Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4440957385 responseStatus=200 OK token=64_Rp1Uv48Downloading artifacts for detect-tests (4440957401)...49Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4440957401 responseStatus=200 OK token=64_Rp1Uv50Downloading artifacts for retrieve-tests-metadata (4440957412)...51Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4440957412 responseStatus=200 OK token=64_Rp1Uv52Downloading artifacts for setup-test-env (4440957391)...53Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4440957391 responseStatus=200 OK token=64_Rp1Uv55Using docker image sha256:29b87d4e8d17fad91e09f1f9dc70458f075b8cefe102c904d6043b52d87d157a for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-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.19-rust-1.65-node-18.16-postgresql-14@sha256:8e1b76424e73a366225f410eabe5c92d13aaff628e0f8517cbd9416c0e2a2ac1 ...56$ echo $FOSS_ONLY57$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb58$ export GOPATH=$CI_PROJECT_DIR/.go59$ mkdir -p $GOPATH60$ source scripts/utils.sh61$ source scripts/prepare_build.sh719Using decomposed database config (config/database.yml.decomposed-postgresql)720Geo DB won't be set up.721Embedding DB won't be set up.737$ source ./scripts/rspec_helpers.sh738$ run_timed_command "gem install knapsack --no-document"739$ gem install knapsack --no-document740Successfully installed knapsack-4.0.07411 gem installed742==> 'gem install knapsack --no-document' succeeded in 1 seconds.743$ echo -e "\e[0Ksection_start:`date +%s`:gitaly-test-spawn[collapsed=true]\r\e[0KStarting Gitaly"745$ section_start "gitaly-test-spawn" "Spawning Gitaly"; scripts/gitaly-test-spawn; section_end "gitaly-test-spawn"750$ echo -e "\e[0Ksection_end:`date +%s`:gitaly-test-spawn\r\e[0K"751$ rspec_paralellized_job "--tag ~quarantine --tag ~level:background_migration"752SKIP_FLAKY_TESTS_AUTOMATICALLY: 753RETRY_FAILED_TESTS_IN_NEW_PROCESS: true754KNAPSACK_GENERATE_REPORT: true755FLAKY_RSPEC_GENERATE_REPORT: true756KNAPSACK_TEST_FILE_PATTERN: spec/{commands,controllers,mailers,requests}{,/**/}*_spec.rb757KNAPSACK_LOG_LEVEL: debug758KNAPSACK_REPORT_PATH: knapsack/rspec_integration_pg14_9_12_report.json759FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json760FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_integration_pg14_9_12_report.json761NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_integration_pg14_9_12_report.json762SKIPPED_TESTS_REPORT_PATH: rspec/skipped_tests_rspec_integration_pg14_9_12.txt763CRYSTALBALL: 764RSPEC_TESTS_MAPPING_ENABLED: 765RSPEC_TESTS_FILTER_FILE: 766Knapsack report generator started!767warning: parser/current is loading parser/ruby30, which recognizes 3.0.5-compliant syntax, but you are running 3.0.6.769Run options: exclude {:quarantine=>true, :level=>"background_migration"}770Test environment set up in 1.658487995 seconds771API::Projects772 GET /projects773 when unauthenticated774 behaves like projects response775 returns an array of projects776 returns the proper security headers777 behaves like projects response without N + 1 queries778 avoids N + 1 queries779 when authenticated as regular user780 is expected to eq false781 includes various project feature fields782 includes correct value of container_registry_enabled783 includes project topics784 includes open_issues_count785 does not include projects marked for deletion786 does not include open_issues_count if issues are disabled787 does not include statistics by default788 includes statistics if requested789 does not include license by default790 does not include license if requested791 behaves like projects response792 returns an array of projects793 returns the proper security headers794 behaves like projects response without N + 1 queries795 avoids N + 1 queries796 when projects_preloader_fix is disabled797DEPRECATION WARNING: Invalid Feature Flag projects_preloader_fix stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)798 is expected to eq false799 when some projects are in a group800 behaves like projects response without N + 1 queries801 avoids N + 1 queries802 filter by topic (column topic_list)803 returns no projects804 returns matching project for a single topic805 returns matching project for multiple topics806 returns no projects if project match only some topic807 ignores topic if it is empty808 filter by topic_id809 with id of assigned topic810 behaves like projects response811 returns an array of projects812 returns the proper security headers813 with id of unassigned topic814 behaves like projects response815 returns an array of projects816 returns the proper security headers817 with non-existing topic id818 behaves like projects response819 returns an array of projects820 returns the proper security headers821 with empty topic id822 behaves like projects response823 returns an array of projects824 returns the proper security headers825 and with_issues_enabled=true826 only returns projects with issues enabled827 when external issue tracker is enabled828 includes open_issues_count829 does not include open_issues_count if issues are disabled830 and with simple=true831 returns a simplified version of all the projects832 and using archived833 returns archived projects834 returns non-archived projects835 returns every project836 filter by updated_at837 returns projects sorted by updated_at838 behaves like projects response839 returns an array of projects840 returns the proper security headers841 when filtering by updated_at and sorting by a different column842 returns an error843 and using search844 behaves like projects response845 returns an array of projects846 returns the proper security headers847 and using search and search_namespaces is true848 behaves like projects response849 returns an array of projects850 returns the proper security headers851 and using id_after852 behaves like projects response853 returns an array of projects854 returns the proper security headers855 regression: empty string is ignored856 behaves like projects response857 returns an array of projects858 returns the proper security headers859 and using id_before860 behaves like projects response861 returns an array of projects862 returns the proper security headers863 regression: empty string is ignored864 behaves like projects response865 returns an array of projects866 returns the proper security headers867 and using both id_after and id_before868 behaves like projects response869 returns an array of projects870 returns the proper security headers871 and membership=true872 behaves like projects response873 returns an array of projects874 returns the proper security headers875 and using the visibility filter876 filters based on private visibility param877 filters based on internal visibility param878 filters based on public visibility param879 and using the programming language filter880 filters case-insensitively by programming language881 and using sorting882 returns the correct order when sorted by id883 and with owned=true884 returns an array of projects the user owns885 when admin creates a project886 does not list as owned project for admin887 and with starred=true888 returns the starred projects viewable by the user889 and with all query parameters890 including owned filter891 returns only projects that satisfy all query parameters892 including membership filter893 returns only projects that satisfy all query parameters894 and with min_access_level895 returns an array of projects the user has at least developer access896 and imported=true897 returns only imported projects owned by current user898 does not expose import credentials899 when authenticated as a different user900 behaves like projects response901 returns an array of projects902 returns the proper security headers903 and with_issues_enabled=true904 does not return private issue projects905 when authenticated as admin906 behaves like projects response907 returns an array of projects908 returns the proper security headers909 with default created_at desc order910 orders by id desc instead911 sorting912 by project statistics913 sorting by repository_size914 admin user915 when sorting by repository_size ascendingly916 returns a properly sorted list of projects917 when sorting by repository_size descendingly918 returns a properly sorted list of projects919 non-admin user920 returns projects ordered normally921 sorting by storage_size922 admin user923 when sorting by storage_size ascendingly924 returns a properly sorted list of projects925 when sorting by storage_size descendingly926 returns a properly sorted list of projects927 non-admin user928 returns projects ordered normally929 sorting by wiki_size930 admin user931 when sorting by wiki_size ascendingly932 returns a properly sorted list of projects933 when sorting by wiki_size descendingly934 returns a properly sorted list of projects935 non-admin user936 returns projects ordered normally937 sorting by packages_size938 admin user939 when sorting by packages_size ascendingly940 returns a properly sorted list of projects941 when sorting by packages_size descendingly942 returns a properly sorted list of projects943 non-admin user944 returns projects ordered normally945 by similarity946 returns non-public items based ordered by similarity947 when `search` parameter is not given948 returns items ordered by created_at descending949 when called anonymously950 returns items ordered by created_at descending951 filtering by repository_storage952 admin user953 behaves like projects response954 returns an array of projects955 returns the proper security headers956 non-admin user957 behaves like projects response958 returns an array of projects959 returns the proper security headers960 with keyset pagination961 headers and records962 includes a pagination header with link to the next page963 contains only the first project with per_page = 1964 still includes a link if the end has reached and there is no more data after this page965 does not include a next link when the page does not have any records966 returns an empty array when the page does not have any records967 responds with 501 if order_by is different from id968 with descending sorting969 includes a pagination header with link to the next page970 contains only the last project with per_page = 1971 retrieving the full relation972 returns all projects973 with forked projects974 avoids N+1 queries975 when service desk is enabled976 avoids N+1 queries977 rate limiting978 when the user is signed in979 behaves like does not log request and does not block the request980 is expected not to receive error(*(any args)) 0 times981 when the user is not signed in982 behaves like rate limited endpoint983 when rate limiter enabled984 logs request and declines it when endpoint called more than the threshold985 when rate limiter is disabled986 does not log request and does not block the request987 POST /projects988 creates new project without path but with name and returns 201989 creates new project without name but with path and returns 201990 creates new project with name and path and returns 201991 creates last project before reaching project limit992 does not create new project without name or path and returns 400993 assigns attributes to project994 assigns container_registry_enabled to project995 assigns container_registry_enabled to project996 creates a project using a template997 returns 400 for an invalid template998 disallows creating a project with an import_url and template999 disallows creating a project with an import_url when git import source is disabled1000 allows creating a project without an import_url when git import source is disabled1001 disallows creating a project with an import_url that is not reachable1002 creates a project with an import_url that is valid1003 sets a project as public1004 sets a project as internal1005 sets a project as private1006 creates a new project initialized with a README.md1007 sets tag list to a project (deprecated)1008 sets topics to a project1009 uploads avatar for project a project1010 sets a project as not allowing outdated diff discussions to automatically resolve1011 sets a project as allowing outdated diff discussions to automatically resolve1012 sets a project as not removing source branches1013 sets a project as removing source branches1014 sets a project as allowing merge even if build fails1015 sets a project as allowing merge only if merge_when_pipeline_succeeds1016 sets a project as not allowing merge when pipeline is skipped1017 sets a project as allowing merge when pipeline is skipped1018 sets a project as allowing merge even if discussions are unresolved1019 sets a project as allowing merge if only_allow_merge_if_all_discussions_are_resolved is nil1020 sets a project as allowing merge only if all discussions are resolved1021 sets a project as enabling auto close referenced issues1022 sets a project as disabling auto close referenced issues1023 sets the merge method of a project to rebase merge1024 rejects invalid values for merge_method1025 ignores import_url when it is nil1026 maximum number of projects reached1027 does not create new project and respond with 4031028 behaves like create project with default branch parameter1029 creates project with provided default branch name1030 when branch name is empty1031 creates project with a default project branch name1032 when initialize with readme is not set1033 creates project with a default project branch name1034 when a visibility level is restricted1035 does not allow a non-admin to use a restricted visibility level1036 allows an admin to override restricted visibility settings1037 GET /users/:user_id/projects/1038 returns error when user not found1039 returns projects filtered by user id1040 includes container_registry_access_level1041 returns projects filtered by username1042 returns projects filtered by minimal access level1043 filter by updated_at1044 returns only projects updated on the given timeframe1045 and using id_after1046 only returns projects with id_after filter given1047 returns both projects without a id_after filter1048 and using id_before1049 only returns projects with id_before filter given1050 returns both projects without a id_before filter1051 and using both id_before and id_after1052 only returns projects with id matching the range1053 and using an admin to search1054 returns users projects when authenticated as admin1055 and using the programming language filter1056 filters case-insensitively by programming language1057 GET /users/:user_id/starred_projects/1058 returns error when user not found1059 with a public profile1060 returns projects filtered by user1061 filter by updated_at1062 returns only projects updated on the given timeframe1063 with a private profile1064 user does not have access to view the private profile1065 returns no projects1066 user has access to view the private profile1067 returns projects filtered by user1068 POST /projects/user/:id1069 creates new project without path but with name and return 2011070 creates new project with name and path and returns 2011071 responds with 400 on failure and not project1072 sets container_registry_enabled1073 assigns attributes to project1074 sets a project as public1075 sets a project as internal1076 sets a project as private1077 sets a project as not allowing outdated diff discussions to automatically resolve1078 sets a project as allowing outdated diff discussions to automatically resolve1079 sets a project as not removing source branches1080 sets a project as removing source branches1081 sets a project as allowing merge even if build fails1082 sets a project as allowing merge only if pipeline succeeds1083 sets a project as not allowing merge when pipeline is skipped1084 sets a project as allowing merge when pipeline is skipped1085 sets a project as allowing merge even if discussions are unresolved1086 sets a project as allowing merge only if all discussions are resolved1087 behaves like POST request permissions for admin mode1088 behaves like when admin1089 behaves like makes request1090 returns1091 behaves like makes request1092 returns1093 behaves like when user1094 returns1095 behaves like makes request1096 returns1097 behaves like create project with default branch parameter1098 creates project with provided default branch name1099 when branch name is empty1100 creates project with a default project branch name1101 when initialize with readme is not set1102 creates project with a default project branch name1103 container_registry_enabled1104 container_registry_enabled: true, container_registry_access_level: 201105 setting container_registry_enabled also sets container_registry_access_level1106 container_registry_enabled: false, container_registry_access_level: 01107 setting container_registry_enabled also sets container_registry_access_level1108 container_registry_access_level1109 container_registry_access_level: "enabled", container_registry_enabled: true1110 setting container_registry_access_level also sets container_registry_enabled1111 container_registry_access_level: "private", container_registry_enabled: true1112 setting container_registry_access_level also sets container_registry_enabled1113 container_registry_access_level: "disabled", container_registry_enabled: false1114 setting container_registry_access_level also sets container_registry_enabled1115 POST /projects/:id/uploads/authorize1116 with authorized user1117 returns 2001118 with unauthorized user1119 returns 4041120 with exempted project1121 returns 2001122 with no Workhorse headers1123 returns 4031124 POST /projects/:id/uploads1125 uploads the file and returns its info1126 does not leave the temporary file in place after uploading, even when the tempfile reaper does not run1127 with exempted project1128 behaves like capped upload attachments1129 limits the upload to 1 GiB1130 logs a warning if file exceeds attachment size1131 GET /projects/:id/groups1132 behaves like GET request permissions for admin mode1133 behaves like when admin1134 behaves like makes request1135 returns1136 behaves like makes request1137 returns1138 behaves like when user1139 returns1140 behaves like makes request1141 returns1142 when unauthenticated1143 does not return groups for private projects1144 for public projects1145 behaves like successful groups response1146 returns an array of groups1147 when authenticated as user1148 when user does not have access to the project1149 does not return groups1150 when user has access to the project1151 behaves like successful groups response1152 returns an array of groups1153 when search by root group name1154 behaves like successful groups response1155 returns an array of groups1156 with_shared option is on1157 behaves like successful groups response1158 returns an array of groups1159 when shared_min_access_level is set1160 behaves like successful groups response1161 returns an array of groups1162 when shared_visible_only is on1163 behaves like successful groups response1164 returns an array of groups1165 when search by shared group name1166 behaves like successful groups response1167 returns an array of groups1168 when skip_groups is set1169 behaves like successful groups response1170 returns an array of groups1171 when authenticated as admin1172 behaves like successful groups response1173 returns an array of groups1174 GET /project/:id/share_locations1175 behaves like GET request permissions for admin mode1176 behaves like when admin1177 behaves like makes request1178 returns1179 behaves like makes request1180 returns1181 behaves like when user1182 returns1183 behaves like makes request1184 returns1185 when unauthenticated1186 does not return the groups for the given project1187 when authenticated1188 when user is not the owner of the project1189 does not return the groups1190 when user is the owner of the project1191 with default search1192 behaves like successful groups response1193 returns an array of groups1194 when searching by group name1195 searching by group name1196 behaves like successful groups response1197 returns an array of groups1198 searching by full group path1199 behaves like successful groups response1200 returns an array of groups1201 when authenticated as admin1202 without share_with_group_lock1203 behaves like successful groups response1204 returns an array of groups1205 with share_with_group_lock1206 behaves like successful groups response1207 returns an array of groups1208 GET /projects/:id1209 exposes service desk attributes1210 behaves like GET request permissions for admin mode1211 behaves like when admin1212 behaves like makes request1213 returns1214 behaves like makes request1215 returns1216 behaves like when user1217 returns1218 behaves like makes request1219 returns1220 when unauthenticated1221 does not return private projects1222 returns public projects1223 the project is a public fork1224 hides details of a public fork parent1225 and the project has a private repository1226 hides protected attributes of private repositories if user is not a member1227 exposes protected attributes of private repositories if user is a member1228 when authenticated as an admin1229 returns a project by id1230 exposes all necessary attributes1231 when authenticated as a regular user1232 returns a project by id1233 returns a group link with expiration date1234 returns a project by path name1235 returns a 404 error if not found1236 returns a 404 error if user is not a member1237 handles users with dots1238 exposes namespace fields1239 does not include license fields by default1240 includes license fields when requested1241 does not include statistics by default1242 includes statistics if requested1243 includes import_error if user can admin project1244 does not include import_error if user cannot admin project1245 returns 404 when project is marked for deletion1246 and the project has a private repository1247 does not include statistics if user is not a member1248 includes statistics if user is a member1249 includes statistics also when repository is disabled1250 links exposure1251 exposes related resources full URIs1252 filters related URIs when their feature is not enabled1253 the project is a fork1254 shows details of a visible fork parent1255 hides details of a hidden fork parent1256 permissions1257 all projects1258 contains permission information1259 personal project1260 sets project access and returns 2001261 group project1262 sets the owner and return 2001263 nested group project1264 sets group access and return 2001265 with various access levels across nested groups1266 sets the maximum group access and return 2001267 when project belongs to a group namespace1268 returns group web_url and avatar_url1269 when project belongs to a user namespace1270 returns user web_url and avatar_url1271 when authenticated as a developer1272 hides sensitive admin attributes1273 behaves like storing arguments in the application context for the API1274 places the expected params in the application context1275 repository_storage attribute1276 when authenticated as an admin1277 returns repository_storage attribute1278 when authenticated as a regular user1279 does not return repository_storage attribute1280 when project is shared to multiple groups1281 avoids N+1 queries1282 GET /projects/:id/users1283 behaves like GET request permissions for admin mode1284 behaves like when admin1285 behaves like makes request1286 returns1287 behaves like makes request1288 returns1289 behaves like when user1290 returns1291 behaves like makes request1292 returns1293 when unauthenticated1294 behaves like project users response1295 returns the project users1296 when authenticated1297 returns a 404 error if not found1298 returns a 404 error if user is not a member1299 filters out users listed in skip_users1300 valid request1301 behaves like project users response1302 returns the project users1303 fork management1304 POST /projects/:id/fork/:forked_from_id1305 refreshes the forks count cache1306 behaves like POST request permissions for admin mode1307 behaves like when admin1308 behaves like makes request1309 returns1310 behaves like makes request1311 returns1312 behaves like when user1313 returns1314 behaves like makes request1315 returns1316 user is a developer1317 denies project to be forked from an existing project1318 user is maintainer1319 allows project to be forked from an existing project1320 fails without permission from forked_from project1321 denies project to be forked from a private project1322 user is admin1323 allows project to be forked from an existing project1324 allows project to be forked from a private project1325 refreshes the forks count cachce1326 fails if forked_from project which does not exist1327 fails with 409 if already forked1328 DELETE /projects/:id/fork1329 is not visible to users outside group1330 when users belong to project group1331 is forbidden to non-owner users1332 is idempotent if not forked1333 for a forked project1334 makes forked project unforked1335 behaves like DELETE request permissions for admin mode1336 behaves like when admin1337 behaves like makes request1338 returns1339 behaves like makes request1340 returns1341 behaves like when user1342 returns1343 behaves like makes request1344 returns1345 behaves like 412 response1346 for a modified resource1347 returns 412 with a JSON error1348 for an unmodified resource1349 returns 204 with an empty body1350 GET /projects/:id/forks1351 for a forked project1352 for a user that can access the forks1353 returns the forks1354 filter by updated_at1355 returns only forks updated on the given timeframe1356 for a user that cannot access the forks1357 returns an empty array1358 for a non-forked project1359 returns an empty array1360 POST /projects/:id/share1361 shares project with group1362 updates project authorization1363 returns a 400 error when group id is not given1364 returns a 400 error when access level is not given1365 returns a 400 error when sharing is disabled1366 returns a 404 error when user cannot read group1367 returns a 404 error when group does not exist1368 returns a 400 error when wrong params passed1369 returns a 400 error when the project-group share is created with an OWNER access level1370 returns a 409 error when link is not saved1371 when project is forked1372 returns a 404 error when group does not exist1373 DELETE /projects/:id/share/:group_id1374 returns a 400 when group id is not an integer1375 returns a 404 error when group link does not exist1376 returns a 404 error when project does not exist1377 for a valid group1378 returns 204 when deleting a group share1379 updates project authorization1380 behaves like 412 response1381 for a modified resource1382 returns 412 with a JSON error1383 for an unmodified resource1384 returns 204 with an empty body1385 POST /projects/:id/import_project_members/:project_id1386 records the query1387 returns 200 when it successfully imports members from another project1388 returns 404 if the source project does not exist1389 returns 404 if the target project members cannot be administered by the requester1390 returns 404 if the source project members cannot be viewed by the requester1391 returns 403 if the source project members cannot be administered by the requester1392 returns 422 if the import failed for valid projects1393 PUT /projects/:id1394 sets container_registry_access_level1395 sets container_registry_enabled1396 sets security_and_compliance_access_level1397 sets analytics_access_level1398 sets releases_access_level1399 sets environments_access_level1400 sets feature_flags_access_level1401 sets infrastructure_access_level1402 sets monitor_access_level1403 returns 400 when nothing sent1404 behaves like PUT request permissions for admin mode1405 behaves like when admin1406 behaves like makes request1407 returns1408 behaves like makes request1409 returns1410 behaves like when user1411 returns1412 behaves like makes request1413 returns1414 updating packages_enabled attribute1415 is enabled by default1416 disables project packages feature1417 when unauthenticated1418 returns authentication error1419 when authenticated as project owner1420 updates visibility_level1421 updates visibility_level from public to private1422 does not update visibility_level if it is restricted1423 does not update name to existing name1424 updates request_access_enabled1425 updates path & name to existing path & name in different namespace1426 updates default_branch1427 updates jobs_enabled1428 updates builds_access_level1429 updates pages_access_level1430 updates emails_disabled1431 updates build_git_strategy1432 rejects to update build_git_strategy when build_git_strategy is invalid1433 updates merge_method1434 rejects to update merge_method when merge_method is invalid1435 updates restrict_user_defined_variables1436 updates auto_devops_deploy_strategy1437 updates auto_devops_enabled1438 updates topics using tag_list (deprecated)1439 updates topics1440 updates enforce_auth_checks_on_uploads1441 updates squash_option1442 does not update an invalid squash_option1443 with changes to the avatar1444 uploads avatar to project without an avatar1445 uploads and changes avatar to project with an avatar1446 uploads and changes avatar to project among other changes1447 removes avatar from project with an avatar1448 when authenticated as project maintainer1449 updates path1450 updates other attributes1451 does not update path to existing path1452 updates name1453 does not update visibility_level1454 updates container_expiration_policy1455 doesn't update container_expiration_policy with invalid regex1456 doesn't update container_expiration_policy with invalid keep_n1457 when authenticated as project developer1458 does not update other attributes1459 when authenticated as the admin1460 ignores visibility level restrictions1461 when updating repository storage1462 as a user1463 returns 200 but does not change repository_storage1464 as an admin1465 returns 400 when repository storage is unknown1466 returns 200 when repository storage has changed1467 when updating service desk1468 returns 2001469 enables the service_desk1470 when updating keep latest artifact1471 returns 2001472 enables keep_latest_artifact1473 attribute mr_default_target_self1474 is by default set to false1475 for a non-forked project1476 is not exposed1477 is not possible to update1478 for a forked project1479 updates to true1480 POST /projects/:id/archive1481 on an unarchived project1482 archives the project1483 on an archived project1484 remains archived1485 user without archiving rights to the project1486 rejects the action1487 POST /projects/:id/unarchive1488 on an unarchived project1489 remains unarchived1490 on an archived project1491 unarchives the project1492 user without archiving rights to the project1493 rejects the action1494 POST /projects/:id/star1495 on an unstarred project1496 stars the project1497 on a starred project1498 does not modify the star count1499 POST /projects/:id/unstar1500 on a starred project1501 unstars the project1502 on an unstarred project1503 does not modify the star count1504 GET /projects/:id/starrers1505 returns not_found(404) for not existing project1506 public project without user1507 returns only starrers with a public profile1508 behaves like project starrers response1509 returns an array of starrers1510 returns the proper security headers1511 public project with user with private profile1512 returns current user with a private profile1513 behaves like project starrers response1514 returns an array of starrers1515 returns the proper security headers1516 private project1517 with unauthorized user1518 returns not_found for existing but unauthorized project1519 without user1520 returns not_found for existing but unauthorized project1521 GET /projects/:id/languages1522 with an authorized user1523 returns not_found(404) for not existing project1524 behaves like languages and percentages JSON response1525 when the languages haven't been detected yet1526 returns expected language values1527 when the languages were detected before1528 returns the detection from the database1529 with not authorized user1530 returns not_found for existing but unauthorized project1531 without user1532 returns not_found for existing but unauthorized project1533 behaves like languages and percentages JSON response1534 when the languages haven't been detected yet1535 returns expected language values1536 when the languages were detected before1537 returns the detection from the database1538 DELETE /projects/:id1539 behaves like DELETE request permissions for admin mode1540 behaves like when admin1541 behaves like makes request1542 returns1543 behaves like makes request1544 returns1545 behaves like when user1546 returns1547 behaves like makes request1548 returns1549 when authenticated as user1550 removes project1551 does not remove a project if not an owner1552 does not remove a non existing project1553 does not remove a project not attached to user1554 behaves like 412 response1555 for a modified resource1556 returns 412 with a JSON error1557 for an unmodified resource1558 returns 204 with an empty body1559 when authenticated as admin1560 removes any existing project1561 does not remove a non existing project1562 behaves like 412 response1563 for a modified resource1564 returns 412 with a JSON error1565 for an unmodified resource1566 returns 204 with an empty body1567 POST /projects/:id/fork1568 behaves like POST request permissions for admin mode1569 behaves like when admin1570 behaves like makes request1571 returns1572 behaves like makes request1573 returns1574 behaves like when user1575 returns1576 behaves like makes request1577 returns1578 when authenticated1579 forks if user has sufficient access to project1580 forks if user is admin1581 fails on missing project access for the project to fork1582 fails if forked project exists in the user namespace1583 fails if project to fork from does not exist1584 forks with explicit own user namespace id1585 forks with explicit own user name as namespace1586 forks to another user when admin1587 fails if trying to fork to another user when not admin1588 fails if trying to fork to non-existent namespace1589 forks to owned group1590 forks to owned subgroup1591 fails to fork to not owned group1592 forks to not owned group when admin1593 accepts a path for the target project1594 fails to fork if path is already taken1595 accepts custom parameters for the target project1596 fails to fork if name is already taken1597 forks to the same namespace with alternative path and name1598 fails to fork to the same namespace without alternative path and name1599 fails to fork with an unknown visibility level1600 when namespace_id is specified1601 and namespace_id is specified alone1602 behaves like forking to specified namespace_id1603 forks to specified namespace_id1604 and namespace_id and namespace are both specified1605 behaves like forking to specified namespace_id1606 forks to specified namespace_id1607 and namespace_id and namespace_path are both specified1608 behaves like forking to specified namespace_id1609 forks to specified namespace_id1610 when namespace_path is specified1611 and namespace_path is specified alone1612 behaves like forking to specified namespace_path1613 forks to specified namespace_path1614 and namespace_path and namespace are both specified1615 behaves like forking to specified namespace_path1616 forks to specified namespace_path1617 when unauthenticated1618 returns authentication error1619 forking disabled1620 denies project to be forked1621 POST /projects/:id/housekeeping1622 when authenticated as owner1623 starts the housekeeping process1624 logs an audit event1625 when requesting prune1626 triggers a prune1627 when requesting an unsupported task1628 responds with bad_request1629 when housekeeping lease is taken1630 returns conflict1631 when authenticated as developer1632 returns forbidden error1633 when unauthenticated1634 returns authentication error1635 POST /projects/:id/repository_size1636 when authenticated as owner1637 starts the housekeeping process1638 when authenticated as developer1639 returns forbidden error1640 when unauthenticated1641 returns authentication error1642 PUT /projects/:id/transfer1643 when authenticated as owner1644 transfers the project to the new namespace1645 fails when transferring to a non owned namespace1646 fails when transferring to an unknown namespace1647 fails on missing namespace1648 when authenticated as developer1649 target namespace allows developers to create projects1650 fails transferring the project to the target namespace1651 GET /projects/:id/transfer_locations1652 when the user has rights to transfer the project1653 returns 2001654 includes groups where the user has permissions to transfer a project to1655 does not include groups where the user doesn not have permissions to transfer a project1656 does not include the group id of the current project1657 with search1658 includes groups where the user has permissions to transfer a project to1659 group shares1660 only includes groups arising from group shares where the user has permission to transfer a project to1661 when the user does not have permissions to transfer the project1662 returns 4031663 GET /projects/:id/storage1664 returns project storage data when user is admin1665 does not return project storage data when user is not admin1666 responds with a 401 for unauthenticated users trying to access a non-existent project id1667 responds with a 403 for non-admin users trying to access a non-existent project id1668 behaves like GET request permissions for admin mode1669 behaves like when admin1670 behaves like makes request1671 returns1672 behaves like makes request1673 returns1674 behaves like when user1675 returns1676 behaves like makes request1677 returns1678 when unauthenticated1679 does not return project storage data1680 behaves like custom attributes endpoints1681 GET /projects with custom attributes filter1682 with an unauthorized user1683 does not filter by custom attributes1684 with an authorized user1685 filters by custom attributes1686 GET /projects with custom attributes1687 with an unauthorized user1688 does not include custom attributes1689 with an authorized user1690 does not include custom attributes by default1691 includes custom attributes if requested1692 GET /projects/:id with custom attributes1693 with an unauthorized user1694 does not include custom attributes1695 with an authorized user1696 does not include custom attributes by default1697 includes custom attributes if requested1698 GET /projects/:id/custom_attributes1699 with an unauthorized user1700 behaves like an unauthorized API user1701 is expected to eq 4031702 with an authorized user1703 returns all custom attributes1704 GET /projects/:id/custom_attributes/:key1705 with an unauthorized user1706 behaves like an unauthorized API user1707 is expected to eq 4031708 with an authorized user1709 returns a single custom attribute1710 PUT /projects/:id/custom_attributes/:key1711 with an unauthorized user1712 behaves like an unauthorized API user1713 is expected to eq 4031714 with an authorized user1715 creates a new custom attribute1716 updates an existing custom attribute1717 DELETE /projects/:id/custom_attributes/:key1718 with an unauthorized user1719 behaves like an unauthorized API user1720 is expected to eq 4031721 with an authorized user1722 deletes an existing custom attribute1723API::Ci::Pipelines1724 GET /projects/:id/pipelines1725 behaves like pipelines visibility table1726 visibility_level: :private, builds_access_level: :enabled, public_builds: true, is_admin: true, user_role: :non_member, response_status: 2001727 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1728 visibility_level: :private, builds_access_level: :enabled, public_builds: true, is_admin: true, user_role: :guest, response_status: 2001729 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1730 visibility_level: :private, builds_access_level: :enabled, public_builds: true, is_admin: true, user_role: :reporter, response_status: 2001731 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1732 visibility_level: :private, builds_access_level: :enabled, public_builds: true, is_admin: true, user_role: :developer, response_status: 2001733 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1734 visibility_level: :private, builds_access_level: :enabled, public_builds: true, is_admin: true, user_role: :maintainer, response_status: 2001735 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1736 visibility_level: :private, builds_access_level: :enabled, public_builds: true, is_admin: false, user_role: nil, response_status: 4041737 is expected to match (a hash including "message")1738 visibility_level: :private, builds_access_level: :enabled, public_builds: true, is_admin: false, user_role: :non_member, response_status: 4041739 is expected to match (a hash including "message")1740 visibility_level: :private, builds_access_level: :enabled, public_builds: true, is_admin: false, user_role: :guest, response_status: 2001741 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1742 visibility_level: :private, builds_access_level: :enabled, public_builds: true, is_admin: false, user_role: :reporter, response_status: 2001743 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1744 visibility_level: :private, builds_access_level: :enabled, public_builds: true, is_admin: false, user_role: :developer, response_status: 2001745 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1746 visibility_level: :private, builds_access_level: :enabled, public_builds: true, is_admin: false, user_role: :maintainer, response_status: 2001747 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1748 visibility_level: :private, builds_access_level: :enabled, public_builds: false, is_admin: true, user_role: :non_member, response_status: 2001749 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1750 visibility_level: :private, builds_access_level: :enabled, public_builds: false, is_admin: true, user_role: :guest, response_status: 2001751 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1752 visibility_level: :private, builds_access_level: :enabled, public_builds: false, is_admin: true, user_role: :reporter, response_status: 2001753 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1754 visibility_level: :private, builds_access_level: :enabled, public_builds: false, is_admin: true, user_role: :developer, response_status: 2001755 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1756 visibility_level: :private, builds_access_level: :enabled, public_builds: false, is_admin: true, user_role: :maintainer, response_status: 2001757 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1758 visibility_level: :private, builds_access_level: :enabled, public_builds: false, is_admin: false, user_role: nil, response_status: 4041759 is expected to match (a hash including "message")1760 visibility_level: :private, builds_access_level: :enabled, public_builds: false, is_admin: false, user_role: :non_member, response_status: 4041761 is expected to match (a hash including "message")1762 visibility_level: :private, builds_access_level: :enabled, public_builds: false, is_admin: false, user_role: :guest, response_status: 4031763 is expected to match (a hash including "message")1764 visibility_level: :private, builds_access_level: :enabled, public_builds: false, is_admin: false, user_role: :reporter, response_status: 2001765 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1766 visibility_level: :private, builds_access_level: :enabled, public_builds: false, is_admin: false, user_role: :developer, response_status: 2001767 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1768 visibility_level: :private, builds_access_level: :enabled, public_builds: false, is_admin: false, user_role: :maintainer, response_status: 2001769 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1770 visibility_level: :private, builds_access_level: :private, public_builds: true, is_admin: true, user_role: :non_member, response_status: 2001771 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1772 visibility_level: :private, builds_access_level: :private, public_builds: true, is_admin: true, user_role: :guest, response_status: 2001773 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1774 visibility_level: :private, builds_access_level: :private, public_builds: true, is_admin: true, user_role: :reporter, response_status: 2001775 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1776 visibility_level: :private, builds_access_level: :private, public_builds: true, is_admin: true, user_role: :developer, response_status: 2001777 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1778 visibility_level: :private, builds_access_level: :private, public_builds: true, is_admin: true, user_role: :maintainer, response_status: 2001779 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1780 visibility_level: :private, builds_access_level: :private, public_builds: true, is_admin: false, user_role: nil, response_status: 4041781 is expected to match (a hash including "message")1782 visibility_level: :private, builds_access_level: :private, public_builds: true, is_admin: false, user_role: :non_member, response_status: 4041783 is expected to match (a hash including "message")1784 visibility_level: :private, builds_access_level: :private, public_builds: true, is_admin: false, user_role: :guest, response_status: 2001785 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1786 visibility_level: :private, builds_access_level: :private, public_builds: true, is_admin: false, user_role: :reporter, response_status: 2001787 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1788 visibility_level: :private, builds_access_level: :private, public_builds: true, is_admin: false, user_role: :developer, response_status: 2001789 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1790 visibility_level: :private, builds_access_level: :private, public_builds: true, is_admin: false, user_role: :maintainer, response_status: 2001791 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1792 visibility_level: :private, builds_access_level: :private, public_builds: false, is_admin: true, user_role: :non_member, response_status: 2001793 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1794 visibility_level: :private, builds_access_level: :private, public_builds: false, is_admin: true, user_role: :guest, response_status: 2001795 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1796 visibility_level: :private, builds_access_level: :private, public_builds: false, is_admin: true, user_role: :reporter, response_status: 2001797 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1798 visibility_level: :private, builds_access_level: :private, public_builds: false, is_admin: true, user_role: :developer, response_status: 2001799 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1800 visibility_level: :private, builds_access_level: :private, public_builds: false, is_admin: true, user_role: :maintainer, response_status: 2001801 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1802 visibility_level: :private, builds_access_level: :private, public_builds: false, is_admin: false, user_role: nil, response_status: 4041803 is expected to match (a hash including "message")1804 visibility_level: :private, builds_access_level: :private, public_builds: false, is_admin: false, user_role: :non_member, response_status: 4041805 is expected to match (a hash including "message")1806 visibility_level: :private, builds_access_level: :private, public_builds: false, is_admin: false, user_role: :guest, response_status: 4031807 is expected to match (a hash including "message")1808 visibility_level: :private, builds_access_level: :private, public_builds: false, is_admin: false, user_role: :reporter, response_status: 2001809 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1810 visibility_level: :private, builds_access_level: :private, public_builds: false, is_admin: false, user_role: :developer, response_status: 2001811 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1812 visibility_level: :private, builds_access_level: :private, public_builds: false, is_admin: false, user_role: :maintainer, response_status: 2001813 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1814 visibility_level: :internal, builds_access_level: :enabled, public_builds: true, is_admin: true, user_role: :non_member, response_status: 2001815 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1816 visibility_level: :internal, builds_access_level: :enabled, public_builds: true, is_admin: true, user_role: :guest, response_status: 2001817 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1818 visibility_level: :internal, builds_access_level: :enabled, public_builds: true, is_admin: true, user_role: :reporter, response_status: 2001819 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1820 visibility_level: :internal, builds_access_level: :enabled, public_builds: true, is_admin: true, user_role: :developer, response_status: 2001821 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1822 visibility_level: :internal, builds_access_level: :enabled, public_builds: true, is_admin: true, user_role: :maintainer, response_status: 2001823 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1824 visibility_level: :internal, builds_access_level: :enabled, public_builds: true, is_admin: false, user_role: nil, response_status: 4041825 is expected to match (a hash including "message")1826 visibility_level: :internal, builds_access_level: :enabled, public_builds: true, is_admin: false, user_role: :non_member, response_status: 2001827 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1828 visibility_level: :internal, builds_access_level: :enabled, public_builds: true, is_admin: false, user_role: :guest, response_status: 2001829 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1830 visibility_level: :internal, builds_access_level: :enabled, public_builds: true, is_admin: false, user_role: :reporter, response_status: 2001831 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1832 visibility_level: :internal, builds_access_level: :enabled, public_builds: true, is_admin: false, user_role: :developer, response_status: 2001833 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1834 visibility_level: :internal, builds_access_level: :enabled, public_builds: true, is_admin: false, user_role: :maintainer, response_status: 2001835 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1836 visibility_level: :internal, builds_access_level: :enabled, public_builds: false, is_admin: true, user_role: :non_member, response_status: 2001837 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1838 visibility_level: :internal, builds_access_level: :enabled, public_builds: false, is_admin: true, user_role: :guest, response_status: 2001839 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1840 visibility_level: :internal, builds_access_level: :enabled, public_builds: false, is_admin: true, user_role: :reporter, response_status: 2001841 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1842 visibility_level: :internal, builds_access_level: :enabled, public_builds: false, is_admin: true, user_role: :developer, response_status: 2001843 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1844 visibility_level: :internal, builds_access_level: :enabled, public_builds: false, is_admin: true, user_role: :maintainer, response_status: 2001845 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1846 visibility_level: :internal, builds_access_level: :enabled, public_builds: false, is_admin: false, user_role: nil, response_status: 4041847 is expected to match (a hash including "message")1848 visibility_level: :internal, builds_access_level: :enabled, public_builds: false, is_admin: false, user_role: :non_member, response_status: 4031849 is expected to match (a hash including "message")1850 visibility_level: :internal, builds_access_level: :enabled, public_builds: false, is_admin: false, user_role: :guest, response_status: 4031851 is expected to match (a hash including "message")1852 visibility_level: :internal, builds_access_level: :enabled, public_builds: false, is_admin: false, user_role: :reporter, response_status: 2001853 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1854 visibility_level: :internal, builds_access_level: :enabled, public_builds: false, is_admin: false, user_role: :developer, response_status: 2001855 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1856 visibility_level: :internal, builds_access_level: :enabled, public_builds: false, is_admin: false, user_role: :maintainer, response_status: 2001857 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1858 visibility_level: :internal, builds_access_level: :private, public_builds: true, is_admin: true, user_role: :non_member, response_status: 2001859 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1860 visibility_level: :internal, builds_access_level: :private, public_builds: true, is_admin: true, user_role: :guest, response_status: 2001861 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1862 visibility_level: :internal, builds_access_level: :private, public_builds: true, is_admin: true, user_role: :reporter, response_status: 2001863 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1864 visibility_level: :internal, builds_access_level: :private, public_builds: true, is_admin: true, user_role: :developer, response_status: 2001865 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1866 visibility_level: :internal, builds_access_level: :private, public_builds: true, is_admin: true, user_role: :maintainer, response_status: 2001867 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1868 visibility_level: :internal, builds_access_level: :private, public_builds: true, is_admin: false, user_role: nil, response_status: 4041869 is expected to match (a hash including "message")1870 visibility_level: :internal, builds_access_level: :private, public_builds: true, is_admin: false, user_role: :non_member, response_status: 4031871 is expected to match (a hash including "message")1872 visibility_level: :internal, builds_access_level: :private, public_builds: true, is_admin: false, user_role: :guest, response_status: 2001873 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1874 visibility_level: :internal, builds_access_level: :private, public_builds: true, is_admin: false, user_role: :reporter, response_status: 2001875 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1876 visibility_level: :internal, builds_access_level: :private, public_builds: true, is_admin: false, user_role: :developer, response_status: 2001877 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1878 visibility_level: :internal, builds_access_level: :private, public_builds: true, is_admin: false, user_role: :maintainer, response_status: 2001879 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1880 visibility_level: :internal, builds_access_level: :private, public_builds: false, is_admin: true, user_role: :non_member, response_status: 2001881 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1882 visibility_level: :internal, builds_access_level: :private, public_builds: false, is_admin: true, user_role: :guest, response_status: 2001883 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1884 visibility_level: :internal, builds_access_level: :private, public_builds: false, is_admin: true, user_role: :reporter, response_status: 2001885 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1886 visibility_level: :internal, builds_access_level: :private, public_builds: false, is_admin: true, user_role: :developer, response_status: 2001887 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1888 visibility_level: :internal, builds_access_level: :private, public_builds: false, is_admin: true, user_role: :maintainer, response_status: 2001889 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1890 visibility_level: :internal, builds_access_level: :private, public_builds: false, is_admin: false, user_role: nil, response_status: 4041891 is expected to match (a hash including "message")1892 visibility_level: :internal, builds_access_level: :private, public_builds: false, is_admin: false, user_role: :non_member, response_status: 4031893 is expected to match (a hash including "message")1894 visibility_level: :internal, builds_access_level: :private, public_builds: false, is_admin: false, user_role: :guest, response_status: 4031895 is expected to match (a hash including "message")1896 visibility_level: :internal, builds_access_level: :private, public_builds: false, is_admin: false, user_role: :reporter, response_status: 2001897 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1898 visibility_level: :internal, builds_access_level: :private, public_builds: false, is_admin: false, user_role: :developer, response_status: 2001899 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1900 visibility_level: :internal, builds_access_level: :private, public_builds: false, is_admin: false, user_role: :maintainer, response_status: 2001901 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1902 visibility_level: :public, builds_access_level: :enabled, public_builds: true, is_admin: true, user_role: :non_member, response_status: 2001903 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1904 visibility_level: :public, builds_access_level: :enabled, public_builds: true, is_admin: true, user_role: :guest, response_status: 2001905 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1906 visibility_level: :public, builds_access_level: :enabled, public_builds: true, is_admin: true, user_role: :reporter, response_status: 2001907 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1908 visibility_level: :public, builds_access_level: :enabled, public_builds: true, is_admin: true, user_role: :developer, response_status: 2001909 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1910 visibility_level: :public, builds_access_level: :enabled, public_builds: true, is_admin: true, user_role: :maintainer, response_status: 2001911 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1912 visibility_level: :public, builds_access_level: :enabled, public_builds: true, is_admin: false, user_role: nil, response_status: 2001913 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1914 visibility_level: :public, builds_access_level: :enabled, public_builds: true, is_admin: false, user_role: :non_member, response_status: 2001915 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1916 visibility_level: :public, builds_access_level: :enabled, public_builds: true, is_admin: false, user_role: :guest, response_status: 2001917 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1918 visibility_level: :public, builds_access_level: :enabled, public_builds: true, is_admin: false, user_role: :reporter, response_status: 2001919 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1920 visibility_level: :public, builds_access_level: :enabled, public_builds: true, is_admin: false, user_role: :developer, response_status: 2001921 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1922 visibility_level: :public, builds_access_level: :enabled, public_builds: true, is_admin: false, user_role: :maintainer, response_status: 2001923 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1924 visibility_level: :public, builds_access_level: :enabled, public_builds: false, is_admin: true, user_role: :non_member, response_status: 2001925 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1926 visibility_level: :public, builds_access_level: :enabled, public_builds: false, is_admin: true, user_role: :guest, response_status: 2001927 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1928 visibility_level: :public, builds_access_level: :enabled, public_builds: false, is_admin: true, user_role: :reporter, response_status: 2001929 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1930 visibility_level: :public, builds_access_level: :enabled, public_builds: false, is_admin: true, user_role: :developer, response_status: 2001931 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1932 visibility_level: :public, builds_access_level: :enabled, public_builds: false, is_admin: true, user_role: :maintainer, response_status: 2001933 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1934 visibility_level: :public, builds_access_level: :enabled, public_builds: false, is_admin: false, user_role: nil, response_status: 4031935 is expected to match (a hash including "message")1936 visibility_level: :public, builds_access_level: :enabled, public_builds: false, is_admin: false, user_role: :non_member, response_status: 4031937 is expected to match (a hash including "message")1938 visibility_level: :public, builds_access_level: :enabled, public_builds: false, is_admin: false, user_role: :guest, response_status: 4031939 is expected to match (a hash including "message")1940 visibility_level: :public, builds_access_level: :enabled, public_builds: false, is_admin: false, user_role: :reporter, response_status: 2001941 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1942 visibility_level: :public, builds_access_level: :enabled, public_builds: false, is_admin: false, user_role: :developer, response_status: 2001943 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1944 visibility_level: :public, builds_access_level: :enabled, public_builds: false, is_admin: false, user_role: :maintainer, response_status: 2001945 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1946 visibility_level: :public, builds_access_level: :private, public_builds: true, is_admin: true, user_role: :non_member, response_status: 2001947 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1948 visibility_level: :public, builds_access_level: :private, public_builds: true, is_admin: true, user_role: :guest, response_status: 2001949 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1950 visibility_level: :public, builds_access_level: :private, public_builds: true, is_admin: true, user_role: :reporter, response_status: 2001951 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1952 visibility_level: :public, builds_access_level: :private, public_builds: true, is_admin: true, user_role: :developer, response_status: 2001953 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1954 visibility_level: :public, builds_access_level: :private, public_builds: true, is_admin: true, user_role: :maintainer, response_status: 2001955 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1956 visibility_level: :public, builds_access_level: :private, public_builds: true, is_admin: false, user_role: nil, response_status: 4031957 is expected to match (a hash including "message")1958 visibility_level: :public, builds_access_level: :private, public_builds: true, is_admin: false, user_role: :non_member, response_status: 4031959 is expected to match (a hash including "message")1960 visibility_level: :public, builds_access_level: :private, public_builds: true, is_admin: false, user_role: :guest, response_status: 2001961 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1962 visibility_level: :public, builds_access_level: :private, public_builds: true, is_admin: false, user_role: :reporter, response_status: 2001963 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1964 visibility_level: :public, builds_access_level: :private, public_builds: true, is_admin: false, user_role: :developer, response_status: 2001965 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1966 visibility_level: :public, builds_access_level: :private, public_builds: true, is_admin: false, user_role: :maintainer, response_status: 2001967 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1968 visibility_level: :public, builds_access_level: :private, public_builds: false, is_admin: true, user_role: :non_member, response_status: 2001969 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1970 visibility_level: :public, builds_access_level: :private, public_builds: false, is_admin: true, user_role: :guest, response_status: 2001971 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1972 visibility_level: :public, builds_access_level: :private, public_builds: false, is_admin: true, user_role: :reporter, response_status: 2001973 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1974 visibility_level: :public, builds_access_level: :private, public_builds: false, is_admin: true, user_role: :developer, response_status: 2001975 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1976 visibility_level: :public, builds_access_level: :private, public_builds: false, is_admin: true, user_role: :maintainer, response_status: 2001977 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1978 visibility_level: :public, builds_access_level: :private, public_builds: false, is_admin: false, user_role: nil, response_status: 4031979 is expected to match (a hash including "message")1980 visibility_level: :public, builds_access_level: :private, public_builds: false, is_admin: false, user_role: :non_member, response_status: 4031981 is expected to match (a hash including "message")1982 visibility_level: :public, builds_access_level: :private, public_builds: false, is_admin: false, user_role: :guest, response_status: 4031983 is expected to match (a hash including "message")1984 visibility_level: :public, builds_access_level: :private, public_builds: false, is_admin: false, user_role: :reporter, response_status: 2001985 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1986 visibility_level: :public, builds_access_level: :private, public_builds: false, is_admin: false, user_role: :developer, response_status: 2001987 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1988 visibility_level: :public, builds_access_level: :private, public_builds: false, is_admin: false, user_role: :maintainer, response_status: 2001989 is expected to match (a collection containing exactly (a hash including "sha", "ref", "status", "web_url", and {"id" => 1}))1990 authorized user1991 returns project pipelines1992 avoids N+1 queries1993 keys in the response1994 includes pipeline source1995 when pipeline_name_in_api feature flag is off1996 does not include pipeline name in response and ignores name parameter1997 when parameter is passed1998 when scope is running1999 returns matched pipelines2000 when scope is pending2001 returns matched pipelines2002 when scope is finished2003 returns matched pipelines2004 when scope is branches or tags2005 when scope is branches2006 returns matched pipelines2007 when scope is tags2008 returns matched pipelines2009 when scope is invalid2010 returns bad_request2011 when status is created2012 returns matched pipelines2013 when status is waiting_for_resource2014 returns matched pipelines2015 when status is preparing2016 returns matched pipelines2017 when status is pending2018 returns matched pipelines2019 when status is running2020 returns matched pipelines2021 when status is success2022 returns matched pipelines2023 when status is failed2024 returns matched pipelines2025 when status is canceled2026 returns matched pipelines2027 when status is skipped2028 returns matched pipelines2029 when status is manual2030 returns matched pipelines2031 when status is scheduled2032 returns matched pipelines2033 when status is invalid2034 returns bad_request2035 when ref is specified2036 when ref exists2037 returns matched pipelines2038 when ref does not exist2039 returns empty2040 when username is specified2041 when username exists2042 returns matched pipelines2043 when username does not exist2044 returns empty2045 when yaml_errors is specified2046 when yaml_errors is true2047 returns matched pipelines2048 when yaml_errors is false2049 returns matched pipelines2050 when yaml_errors is invalid2051 returns bad_request2052 when updated_at filters are specified2053 returns pipelines with last update date in specified datetime range2054 when order_by and sort are specified2055 when order_by user_id2056 when sort parameter is valid2057 sorts as user_id: :desc2058 when sort parameter is invalid2059 returns bad_request2060 when order_by is invalid2061 returns bad_request2062 when a source is specified2063 returns matched pipelines2064 when source is invalid2065 returns bad_request2066 when name is provided2067 filters by name2068 unauthorized user2069 does not return project pipelines2070 GET /projects/:id/pipelines/:pipeline_id/jobs2071 authorized user2072 returns pipeline jobs2073 returns correct values2074 returns pipeline data2075 avoids N+1 queries2076 behaves like a job with artifacts and trace2077 with artifacts and trace2078 returns artifacts and trace data2079 filter jobs with one scope element2080 aggregate_failures2081 when filtering to only running jobs2082 aggregate_failures2083 filter jobs with hash2084 is expected to respond with numeric status code bad_request2085 filter jobs with array of scope elements2086 aggregate_failures2087 respond 400 when scope contains invalid state2088 is expected to respond with numeric status code bad_request2089 jobs in different pipelines2090 excludes jobs from other pipelines2091 pipeline has retried jobs2092 does not return retried jobs by default2093 when include_retried is false2094 does not return retried jobs2095 when include_retried is true2096 returns retried jobs2097 no pipeline is found2098 does not return jobs2099 unauthorized user2100 when user is not logged in2101 does not return jobs2102 when user is guest2103 does not return jobs2104 GET /projects/:id/pipelines/:pipeline_id/bridges2105 authorized user2106 returns pipeline bridges2107 returns correct values2108 returns pipeline data2109 returns downstream pipeline data2110 avoids N+1 queries2111 filter bridges2112 with one scope element2113 skip_before_request2114 with array of scope elements2115 skip_before_request2116 respond 400 when scope contains invalid state2117 in an array2118 is expected to respond with numeric status code bad_request2119 in a hash2120 is expected to respond with numeric status code bad_request2121 in a string2122 is expected to respond with numeric status code bad_request2123 bridges in different pipelines2124 excludes bridges from other pipelines2125 no pipeline is found2126 does not return bridges2127 unauthorized user2128 when user is not logged in2129 does not return bridges2130 when user is guest2131 does not return bridges2132 when user has no read_build access for project2133 does not return bridges2134 POST /projects/:id/pipeline2135 authorized user2136 with gitlab-ci.yml2137 creates and returns a new pipeline2138 fails when using an invalid ref2139 variables given2140 creates and returns a new pipeline using the given variables2141 using variables conditions2142 creates and returns a new pipeline using the given variables2143 condition unmatch2144 doesn't create a job2145 without gitlab-ci.yml2146 without auto devops enabled2147 fails to create pipeline2148 unauthorized user2149 does not create pipeline2150 GET /projects/:id/pipelines/:pipeline_id2151 behaves like pipelines visibility table2152 visibility_level: :private, builds_access_level: :enabled, public_builds: true, is_admin: true, user_role: :non_member, response_status: 2002153 is expected to match (match response schema "public_api/v4/pipeline/detail")2154 visibility_level: :private, builds_access_level: :enabled, public_builds: true, is_admin: true, user_role: :guest, response_status: 2002155 is expected to match (match response schema "public_api/v4/pipeline/detail")2156 visibility_level: :private, builds_access_level: :enabled, public_builds: true, is_admin: true, user_role: :reporter, response_status: 2002157 is expected to match (match response schema "public_api/v4/pipeline/detail")2158 visibility_level: :private, builds_access_level: :enabled, public_builds: true, is_admin: true, user_role: :developer, response_status: 2002159 is expected to match (match response schema "public_api/v4/pipeline/detail")2160 visibility_level: :private, builds_access_level: :enabled, public_builds: true, is_admin: true, user_role: :maintainer, response_status: 2002161 is expected to match (match response schema "public_api/v4/pipeline/detail")2162 visibility_level: :private, builds_access_level: :enabled, public_builds: true, is_admin: false, user_role: nil, response_status: 4042163 is expected to match (a hash including "message")2164 visibility_level: :private, builds_access_level: :enabled, public_builds: true, is_admin: false, user_role: :non_member, response_status: 4042165 is expected to match (a hash including "message")2166 visibility_level: :private, builds_access_level: :enabled, public_builds: true, is_admin: false, user_role: :guest, response_status: 2002167 is expected to match (match response schema "public_api/v4/pipeline/detail")2168 visibility_level: :private, builds_access_level: :enabled, public_builds: true, is_admin: false, user_role: :reporter, response_status: 2002169 is expected to match (match response schema "public_api/v4/pipeline/detail")2170 visibility_level: :private, builds_access_level: :enabled, public_builds: true, is_admin: false, user_role: :developer, response_status: 2002171 is expected to match (match response schema "public_api/v4/pipeline/detail")2172 visibility_level: :private, builds_access_level: :enabled, public_builds: true, is_admin: false, user_role: :maintainer, response_status: 2002173 is expected to match (match response schema "public_api/v4/pipeline/detail")2174 visibility_level: :private, builds_access_level: :enabled, public_builds: false, is_admin: true, user_role: :non_member, response_status: 2002175 is expected to match (match response schema "public_api/v4/pipeline/detail")2176 visibility_level: :private, builds_access_level: :enabled, public_builds: false, is_admin: true, user_role: :guest, response_status: 2002177 is expected to match (match response schema "public_api/v4/pipeline/detail")2178 visibility_level: :private, builds_access_level: :enabled, public_builds: false, is_admin: true, user_role: :reporter, response_status: 2002179 is expected to match (match response schema "public_api/v4/pipeline/detail")2180 visibility_level: :private, builds_access_level: :enabled, public_builds: false, is_admin: true, user_role: :developer, response_status: 2002181 is expected to match (match response schema "public_api/v4/pipeline/detail")2182 visibility_level: :private, builds_access_level: :enabled, public_builds: false, is_admin: true, user_role: :maintainer, response_status: 2002183 is expected to match (match response schema "public_api/v4/pipeline/detail")2184 visibility_level: :private, builds_access_level: :enabled, public_builds: false, is_admin: false, user_role: nil, response_status: 4042185 is expected to match (a hash including "message")2186 visibility_level: :private, builds_access_level: :enabled, public_builds: false, is_admin: false, user_role: :non_member, response_status: 4042187 is expected to match (a hash including "message")2188 visibility_level: :private, builds_access_level: :enabled, public_builds: false, is_admin: false, user_role: :guest, response_status: 4032189 is expected to match (a hash including "message")2190 visibility_level: :private, builds_access_level: :enabled, public_builds: false, is_admin: false, user_role: :reporter, response_status: 2002191 is expected to match (match response schema "public_api/v4/pipeline/detail")2192 visibility_level: :private, builds_access_level: :enabled, public_builds: false, is_admin: false, user_role: :developer, response_status: 2002193 is expected to match (match response schema "public_api/v4/pipeline/detail")2194 visibility_level: :private, builds_access_level: :enabled, public_builds: false, is_admin: false, user_role: :maintainer, response_status: 2002195 is expected to match (match response schema "public_api/v4/pipeline/detail")2196 visibility_level: :private, builds_access_level: :private, public_builds: true, is_admin: true, user_role: :non_member, response_status: 2002197 is expected to match (match response schema "public_api/v4/pipeline/detail")2198 visibility_level: :private, builds_access_level: :private, public_builds: true, is_admin: true, user_role: :guest, response_status: 2002199 is expected to match (match response schema "public_api/v4/pipeline/detail")2200 visibility_level: :private, builds_access_level: :private, public_builds: true, is_admin: true, user_role: :reporter, response_status: 2002201 is expected to match (match response schema "public_api/v4/pipeline/detail")2202 visibility_level: :private, builds_access_level: :private, public_builds: true, is_admin: true, user_role: :developer, response_status: 2002203 is expected to match (match response schema "public_api/v4/pipeline/detail")2204 visibility_level: :private, builds_access_level: :private, public_builds: true, is_admin: true, user_role: :maintainer, response_status: 2002205 is expected to match (match response schema "public_api/v4/pipeline/detail")2206 visibility_level: :private, builds_access_level: :private, public_builds: true, is_admin: false, user_role: nil, response_status: 4042207 is expected to match (a hash including "message")2208 visibility_level: :private, builds_access_level: :private, public_builds: true, is_admin: false, user_role: :non_member, response_status: 4042209 is expected to match (a hash including "message")2210 visibility_level: :private, builds_access_level: :private, public_builds: true, is_admin: false, user_role: :guest, response_status: 2002211 is expected to match (match response schema "public_api/v4/pipeline/detail")2212 visibility_level: :private, builds_access_level: :private, public_builds: true, is_admin: false, user_role: :reporter, response_status: 2002213 is expected to match (match response schema "public_api/v4/pipeline/detail")2214 visibility_level: :private, builds_access_level: :private, public_builds: true, is_admin: false, user_role: :developer, response_status: 2002215 is expected to match (match response schema "public_api/v4/pipeline/detail")2216 visibility_level: :private, builds_access_level: :private, public_builds: true, is_admin: false, user_role: :maintainer, response_status: 2002217 is expected to match (match response schema "public_api/v4/pipeline/detail")2218 visibility_level: :private, builds_access_level: :private, public_builds: false, is_admin: true, user_role: :non_member, response_status: 2002219 is expected to match (match response schema "public_api/v4/pipeline/detail")2220 visibility_level: :private, builds_access_level: :private, public_builds: false, is_admin: true, user_role: :guest, response_status: 2002221 is expected to match (match response schema "public_api/v4/pipeline/detail")2222 visibility_level: :private, builds_access_level: :private, public_builds: false, is_admin: true, user_role: :reporter, response_status: 2002223 is expected to match (match response schema "public_api/v4/pipeline/detail")2224 visibility_level: :private, builds_access_level: :private, public_builds: false, is_admin: true, user_role: :developer, response_status: 2002225 is expected to match (match response schema "public_api/v4/pipeline/detail")2226 visibility_level: :private, builds_access_level: :private, public_builds: false, is_admin: true, user_role: :maintainer, response_status: 2002227 is expected to match (match response schema "public_api/v4/pipeline/detail")2228 visibility_level: :private, builds_access_level: :private, public_builds: false, is_admin: false, user_role: nil, response_status: 4042229 is expected to match (a hash including "message")2230 visibility_level: :private, builds_access_level: :private, public_builds: false, is_admin: false, user_role: :non_member, response_status: 4042231 is expected to match (a hash including "message")2232 visibility_level: :private, builds_access_level: :private, public_builds: false, is_admin: false, user_role: :guest, response_status: 4032233 is expected to match (a hash including "message")2234 visibility_level: :private, builds_access_level: :private, public_builds: false, is_admin: false, user_role: :reporter, response_status: 2002235 is expected to match (match response schema "public_api/v4/pipeline/detail")2236 visibility_level: :private, builds_access_level: :private, public_builds: false, is_admin: false, user_role: :developer, response_status: 2002237 is expected to match (match response schema "public_api/v4/pipeline/detail")2238 visibility_level: :private, builds_access_level: :private, public_builds: false, is_admin: false, user_role: :maintainer, response_status: 2002239 is expected to match (match response schema "public_api/v4/pipeline/detail")2240 visibility_level: :internal, builds_access_level: :enabled, public_builds: true, is_admin: true, user_role: :non_member, response_status: 2002241 is expected to match (match response schema "public_api/v4/pipeline/detail")2242 visibility_level: :internal, builds_access_level: :enabled, public_builds: true, is_admin: true, user_role: :guest, response_status: 2002243 is expected to match (match response schema "public_api/v4/pipeline/detail")2244 visibility_level: :internal, builds_access_level: :enabled, public_builds: true, is_admin: true, user_role: :reporter, response_status: 2002245 is expected to match (match response schema "public_api/v4/pipeline/detail")2246 visibility_level: :internal, builds_access_level: :enabled, public_builds: true, is_admin: true, user_role: :developer, response_status: 2002247 is expected to match (match response schema "public_api/v4/pipeline/detail")2248 visibility_level: :internal, builds_access_level: :enabled, public_builds: true, is_admin: true, user_role: :maintainer, response_status: 2002249 is expected to match (match response schema "public_api/v4/pipeline/detail")2250 visibility_level: :internal, builds_access_level: :enabled, public_builds: true, is_admin: false, user_role: nil, response_status: 4042251 is expected to match (a hash including "message")2252 visibility_level: :internal, builds_access_level: :enabled, public_builds: true, is_admin: false, user_role: :non_member, response_status: 2002253 is expected to match (match response schema "public_api/v4/pipeline/detail")2254 visibility_level: :internal, builds_access_level: :enabled, public_builds: true, is_admin: false, user_role: :guest, response_status: 2002255 is expected to match (match response schema "public_api/v4/pipeline/detail")2256 visibility_level: :internal, builds_access_level: :enabled, public_builds: true, is_admin: false, user_role: :reporter, response_status: 2002257 is expected to match (match response schema "public_api/v4/pipeline/detail")2258 visibility_level: :internal, builds_access_level: :enabled, public_builds: true, is_admin: false, user_role: :developer, response_status: 2002259 is expected to match (match response schema "public_api/v4/pipeline/detail")2260 visibility_level: :internal, builds_access_level: :enabled, public_builds: true, is_admin: false, user_role: :maintainer, response_status: 2002261 is expected to match (match response schema "public_api/v4/pipeline/detail")2262 visibility_level: :internal, builds_access_level: :enabled, public_builds: false, is_admin: true, user_role: :non_member, response_status: 2002263 is expected to match (match response schema "public_api/v4/pipeline/detail")2264 visibility_level: :internal, builds_access_level: :enabled, public_builds: false, is_admin: true, user_role: :guest, response_status: 2002265 is expected to match (match response schema "public_api/v4/pipeline/detail")2266 visibility_level: :internal, builds_access_level: :enabled, public_builds: false, is_admin: true, user_role: :reporter, response_status: 2002267 is expected to match (match response schema "public_api/v4/pipeline/detail")2268 visibility_level: :internal, builds_access_level: :enabled, public_builds: false, is_admin: true, user_role: :developer, response_status: 2002269 is expected to match (match response schema "public_api/v4/pipeline/detail")2270 visibility_level: :internal, builds_access_level: :enabled, public_builds: false, is_admin: true, user_role: :maintainer, response_status: 2002271 is expected to match (match response schema "public_api/v4/pipeline/detail")2272 visibility_level: :internal, builds_access_level: :enabled, public_builds: false, is_admin: false, user_role: nil, response_status: 4042273 is expected to match (a hash including "message")2274 visibility_level: :internal, builds_access_level: :enabled, public_builds: false, is_admin: false, user_role: :non_member, response_status: 4032275 is expected to match (a hash including "message")2276 visibility_level: :internal, builds_access_level: :enabled, public_builds: false, is_admin: false, user_role: :guest, response_status: 4032277 is expected to match (a hash including "message")2278 visibility_level: :internal, builds_access_level: :enabled, public_builds: false, is_admin: false, user_role: :reporter, response_status: 2002279 is expected to match (match response schema "public_api/v4/pipeline/detail")2280 visibility_level: :internal, builds_access_level: :enabled, public_builds: false, is_admin: false, user_role: :developer, response_status: 2002281 is expected to match (match response schema "public_api/v4/pipeline/detail")2282 visibility_level: :internal, builds_access_level: :enabled, public_builds: false, is_admin: false, user_role: :maintainer, response_status: 2002283 is expected to match (match response schema "public_api/v4/pipeline/detail")2284 visibility_level: :internal, builds_access_level: :private, public_builds: true, is_admin: true, user_role: :non_member, response_status: 2002285 is expected to match (match response schema "public_api/v4/pipeline/detail")2286 visibility_level: :internal, builds_access_level: :private, public_builds: true, is_admin: true, user_role: :guest, response_status: 2002287 is expected to match (match response schema "public_api/v4/pipeline/detail")2288 visibility_level: :internal, builds_access_level: :private, public_builds: true, is_admin: true, user_role: :reporter, response_status: 2002289 is expected to match (match response schema "public_api/v4/pipeline/detail")2290 visibility_level: :internal, builds_access_level: :private, public_builds: true, is_admin: true, user_role: :developer, response_status: 2002291 is expected to match (match response schema "public_api/v4/pipeline/detail")2292 visibility_level: :internal, builds_access_level: :private, public_builds: true, is_admin: true, user_role: :maintainer, response_status: 2002293 is expected to match (match response schema "public_api/v4/pipeline/detail")2294 visibility_level: :internal, builds_access_level: :private, public_builds: true, is_admin: false, user_role: nil, response_status: 4042295 is expected to match (a hash including "message")2296 visibility_level: :internal, builds_access_level: :private, public_builds: true, is_admin: false, user_role: :non_member, response_status: 4032297 is expected to match (a hash including "message")2298 visibility_level: :internal, builds_access_level: :private, public_builds: true, is_admin: false, user_role: :guest, response_status: 2002299 is expected to match (match response schema "public_api/v4/pipeline/detail")2300 visibility_level: :internal, builds_access_level: :private, public_builds: true, is_admin: false, user_role: :reporter, response_status: 2002301 is expected to match (match response schema "public_api/v4/pipeline/detail")2302 visibility_level: :internal, builds_access_level: :private, public_builds: true, is_admin: false, user_role: :developer, response_status: 2002303 is expected to match (match response schema "public_api/v4/pipeline/detail")2304 visibility_level: :internal, builds_access_level: :private, public_builds: true, is_admin: false, user_role: :maintainer, response_status: 2002305 is expected to match (match response schema "public_api/v4/pipeline/detail")2306 visibility_level: :internal, builds_access_level: :private, public_builds: false, is_admin: true, user_role: :non_member, response_status: 2002307 is expected to match (match response schema "public_api/v4/pipeline/detail")2308 visibility_level: :internal, builds_access_level: :private, public_builds: false, is_admin: true, user_role: :guest, response_status: 2002309 is expected to match (match response schema "public_api/v4/pipeline/detail")2310 visibility_level: :internal, builds_access_level: :private, public_builds: false, is_admin: true, user_role: :reporter, response_status: 2002311 is expected to match (match response schema "public_api/v4/pipeline/detail")2312 visibility_level: :internal, builds_access_level: :private, public_builds: false, is_admin: true, user_role: :developer, response_status: 2002313 is expected to match (match response schema "public_api/v4/pipeline/detail")2314 visibility_level: :internal, builds_access_level: :private, public_builds: false, is_admin: true, user_role: :maintainer, response_status: 2002315 is expected to match (match response schema "public_api/v4/pipeline/detail")2316 visibility_level: :internal, builds_access_level: :private, public_builds: false, is_admin: false, user_role: nil, response_status: 4042317 is expected to match (a hash including "message")2318 visibility_level: :internal, builds_access_level: :private, public_builds: false, is_admin: false, user_role: :non_member, response_status: 4032319 is expected to match (a hash including "message")2320 visibility_level: :internal, builds_access_level: :private, public_builds: false, is_admin: false, user_role: :guest, response_status: 4032321 is expected to match (a hash including "message")2322 visibility_level: :internal, builds_access_level: :private, public_builds: false, is_admin: false, user_role: :reporter, response_status: 2002323 is expected to match (match response schema "public_api/v4/pipeline/detail")2324 visibility_level: :internal, builds_access_level: :private, public_builds: false, is_admin: false, user_role: :developer, response_status: 2002325 is expected to match (match response schema "public_api/v4/pipeline/detail")2326 visibility_level: :internal, builds_access_level: :private, public_builds: false, is_admin: false, user_role: :maintainer, response_status: 2002327 is expected to match (match response schema "public_api/v4/pipeline/detail")2328 visibility_level: :public, builds_access_level: :enabled, public_builds: true, is_admin: true, user_role: :non_member, response_status: 2002329 is expected to match (match response schema "public_api/v4/pipeline/detail")2330 visibility_level: :public, builds_access_level: :enabled, public_builds: true, is_admin: true, user_role: :guest, response_status: 2002331 is expected to match (match response schema "public_api/v4/pipeline/detail")2332 visibility_level: :public, builds_access_level: :enabled, public_builds: true, is_admin: true, user_role: :reporter, response_status: 2002333 is expected to match (match response schema "public_api/v4/pipeline/detail")2334 visibility_level: :public, builds_access_level: :enabled, public_builds: true, is_admin: true, user_role: :developer, response_status: 2002335 is expected to match (match response schema "public_api/v4/pipeline/detail")2336 visibility_level: :public, builds_access_level: :enabled, public_builds: true, is_admin: true, user_role: :maintainer, response_status: 2002337 is expected to match (match response schema "public_api/v4/pipeline/detail")2338 visibility_level: :public, builds_access_level: :enabled, public_builds: true, is_admin: false, user_role: nil, response_status: 2002339 is expected to match (match response schema "public_api/v4/pipeline/detail")2340 visibility_level: :public, builds_access_level: :enabled, public_builds: true, is_admin: false, user_role: :non_member, response_status: 2002341 is expected to match (match response schema "public_api/v4/pipeline/detail")2342 visibility_level: :public, builds_access_level: :enabled, public_builds: true, is_admin: false, user_role: :guest, response_status: 2002343 is expected to match (match response schema "public_api/v4/pipeline/detail")2344 visibility_level: :public, builds_access_level: :enabled, public_builds: true, is_admin: false, user_role: :reporter, response_status: 2002345 is expected to match (match response schema "public_api/v4/pipeline/detail")2346 visibility_level: :public, builds_access_level: :enabled, public_builds: true, is_admin: false, user_role: :developer, response_status: 2002347 is expected to match (match response schema "public_api/v4/pipeline/detail")2348 visibility_level: :public, builds_access_level: :enabled, public_builds: true, is_admin: false, user_role: :maintainer, response_status: 2002349 is expected to match (match response schema "public_api/v4/pipeline/detail")2350 visibility_level: :public, builds_access_level: :enabled, public_builds: false, is_admin: true, user_role: :non_member, response_status: 2002351 is expected to match (match response schema "public_api/v4/pipeline/detail")2352 visibility_level: :public, builds_access_level: :enabled, public_builds: false, is_admin: true, user_role: :guest, response_status: 2002353 is expected to match (match response schema "public_api/v4/pipeline/detail")2354 visibility_level: :public, builds_access_level: :enabled, public_builds: false, is_admin: true, user_role: :reporter, response_status: 2002355 is expected to match (match response schema "public_api/v4/pipeline/detail")2356 visibility_level: :public, builds_access_level: :enabled, public_builds: false, is_admin: true, user_role: :developer, response_status: 2002357 is expected to match (match response schema "public_api/v4/pipeline/detail")2358 visibility_level: :public, builds_access_level: :enabled, public_builds: false, is_admin: true, user_role: :maintainer, response_status: 2002359 is expected to match (match response schema "public_api/v4/pipeline/detail")2360 visibility_level: :public, builds_access_level: :enabled, public_builds: false, is_admin: false, user_role: nil, response_status: 4032361 is expected to match (a hash including "message")2362 visibility_level: :public, builds_access_level: :enabled, public_builds: false, is_admin: false, user_role: :non_member, response_status: 4032363 is expected to match (a hash including "message")2364 visibility_level: :public, builds_access_level: :enabled, public_builds: false, is_admin: false, user_role: :guest, response_status: 4032365 is expected to match (a hash including "message")2366 visibility_level: :public, builds_access_level: :enabled, public_builds: false, is_admin: false, user_role: :reporter, response_status: 2002367 is expected to match (match response schema "public_api/v4/pipeline/detail")2368 visibility_level: :public, builds_access_level: :enabled, public_builds: false, is_admin: false, user_role: :developer, response_status: 2002369 is expected to match (match response schema "public_api/v4/pipeline/detail")2370 visibility_level: :public, builds_access_level: :enabled, public_builds: false, is_admin: false, user_role: :maintainer, response_status: 2002371 is expected to match (match response schema "public_api/v4/pipeline/detail")2372 visibility_level: :public, builds_access_level: :private, public_builds: true, is_admin: true, user_role: :non_member, response_status: 2002373 is expected to match (match response schema "public_api/v4/pipeline/detail")2374 visibility_level: :public, builds_access_level: :private, public_builds: true, is_admin: true, user_role: :guest, response_status: 2002375 is expected to match (match response schema "public_api/v4/pipeline/detail")2376 visibility_level: :public, builds_access_level: :private, public_builds: true, is_admin: true, user_role: :reporter, response_status: 2002377 is expected to match (match response schema "public_api/v4/pipeline/detail")2378 visibility_level: :public, builds_access_level: :private, public_builds: true, is_admin: true, user_role: :developer, response_status: 2002379 is expected to match (match response schema "public_api/v4/pipeline/detail")2380 visibility_level: :public, builds_access_level: :private, public_builds: true, is_admin: true, user_role: :maintainer, response_status: 2002381 is expected to match (match response schema "public_api/v4/pipeline/detail")2382 visibility_level: :public, builds_access_level: :private, public_builds: true, is_admin: false, user_role: nil, response_status: 4032383 is expected to match (a hash including "message")2384 visibility_level: :public, builds_access_level: :private, public_builds: true, is_admin: false, user_role: :non_member, response_status: 4032385 is expected to match (a hash including "message")2386 visibility_level: :public, builds_access_level: :private, public_builds: true, is_admin: false, user_role: :guest, response_status: 2002387 is expected to match (match response schema "public_api/v4/pipeline/detail")2388 visibility_level: :public, builds_access_level: :private, public_builds: true, is_admin: false, user_role: :reporter, response_status: 2002389 is expected to match (match response schema "public_api/v4/pipeline/detail")2390 visibility_level: :public, builds_access_level: :private, public_builds: true, is_admin: false, user_role: :developer, response_status: 2002391 is expected to match (match response schema "public_api/v4/pipeline/detail")2392 visibility_level: :public, builds_access_level: :private, public_builds: true, is_admin: false, user_role: :maintainer, response_status: 2002393 is expected to match (match response schema "public_api/v4/pipeline/detail")2394 visibility_level: :public, builds_access_level: :private, public_builds: false, is_admin: true, user_role: :non_member, response_status: 2002395 is expected to match (match response schema "public_api/v4/pipeline/detail")2396 visibility_level: :public, builds_access_level: :private, public_builds: false, is_admin: true, user_role: :guest, response_status: 2002397 is expected to match (match response schema "public_api/v4/pipeline/detail")2398 visibility_level: :public, builds_access_level: :private, public_builds: false, is_admin: true, user_role: :reporter, response_status: 2002399 is expected to match (match response schema "public_api/v4/pipeline/detail")2400 visibility_level: :public, builds_access_level: :private, public_builds: false, is_admin: true, user_role: :developer, response_status: 2002401 is expected to match (match response schema "public_api/v4/pipeline/detail")2402 visibility_level: :public, builds_access_level: :private, public_builds: false, is_admin: true, user_role: :maintainer, response_status: 2002403 is expected to match (match response schema "public_api/v4/pipeline/detail")2404 visibility_level: :public, builds_access_level: :private, public_builds: false, is_admin: false, user_role: nil, response_status: 4032405 is expected to match (a hash including "message")2406 visibility_level: :public, builds_access_level: :private, public_builds: false, is_admin: false, user_role: :non_member, response_status: 4032407 is expected to match (a hash including "message")2408 visibility_level: :public, builds_access_level: :private, public_builds: false, is_admin: false, user_role: :guest, response_status: 4032409 is expected to match (a hash including "message")2410 visibility_level: :public, builds_access_level: :private, public_builds: false, is_admin: false, user_role: :reporter, response_status: 2002411 is expected to match (match response schema "public_api/v4/pipeline/detail")2412 visibility_level: :public, builds_access_level: :private, public_builds: false, is_admin: false, user_role: :developer, response_status: 2002413 is expected to match (match response schema "public_api/v4/pipeline/detail")2414 visibility_level: :public, builds_access_level: :private, public_builds: false, is_admin: false, user_role: :maintainer, response_status: 2002415 is expected to match (match response schema "public_api/v4/pipeline/detail")2416 authorized user2417 exposes known attributes2418 returns project pipeline2419 returns 404 when it does not exist2420 with coverage2421 exposes the coverage2422 with pipeline_name_in_api disabled2423 does not return name2424 unauthorized user2425 does not return a project pipeline2426 when pipeline is a dangling pipeline2427 returns the specified pipeline2428 GET /projects/:id/pipelines/latest2429 authorized user2430 default repository branch2431 gets the latest pipleine2432 ref parameter2433 gets the latest pipleine2434 with pipeline_name_in_api disabled2435 does not return name2436 unauthorized user2437 does not return a project pipeline2438 GET /projects/:id/pipelines/:pipeline_id/variables2439 user is a mantainer2440 returns pipeline variables empty2441 with variables2442 returns pipeline variables2443 user is a developer2444 pipeline created by the developer user2445 returns pipeline variables2446 pipeline created is not created by the developer user2447 does not return pipeline variables2448 user is not a project member2449 does not return pipeline variables2450 DELETE /projects/:id/pipelines/:pipeline_id2451 authorized user2452 destroys the pipeline2453 returns 404 when it does not exist2454 does not log an audit event2455 when the pipeline has jobs2456 destroys associated jobs2457 when project is undergoing stats refresh2458 behaves like preventing request because of ongoing project stats refresh2459 logs about the rejected request2460 returns 409 error2461 does not delete the pipeline2462 unauthorized user2463 when user is not member2464 returns a 4042465 when user is developer2466 returns a 4032467 POST /projects/:id/pipelines/:pipeline_id/retry2468 authorized user2469 retries failed builds2470 unauthorized user2471 does not return a project pipeline2472 handles errors2473 returns error2474 POST /projects/:id/pipelines/:pipeline_id/cancel2475 authorized user2476 retries failed builds2477 user without proper access rights2478 rejects the action2479 GET /projects/:id/pipelines/:pipeline_id/test_report2480 authorized user2481 when pipeline does not have a test report2482 returns an empty test report2483 when pipeline has a test report2484 returns the test report2485 when pipeline has corrupt test reports2486 returns a suite_error2487 unauthorized user2488 does not return project pipelines2489 GET /projects/:id/pipelines/:pipeline_id/test_report_summary2490 authorized user2491 when pipeline does not have a test report summary2492 returns an empty test report summary2493 when pipeline has a test report summary2494 returns the test report summary2495 unauthorized user2496 does not return project pipelines2497Projects::NotesController2498 GET index2499 is expected to have request urgency :medium2500 passes last_fetched_at from headers to NotesFinder and MergeIntoNotesService2501 when user notes_filter is present2502 filters system notes by comments2503 returns all notes2504 does not merge label event notes2505 for a discussion note2506 responds with the expected attributes2507 for a diff discussion note2508 responds with the expected attributes2509 for a commit note2510 when displayed on a merge request2511 responds with the expected attributes2512 when displayed on the commit2513 responds with the expected attributes2514 when user cannot read commit2515 renders 4042516 for a regular note2517 responds with the expected attributes2518 with cross-reference system note2519 filters notes that the user should not see2520 does not result in N+1 queries2521 POST create2522 is expected to have request urgency :low2523 making the creation request2524 the project is publically available2525 for HTML2526 returns status 3022527 for JSON2528 returns status 200 for json2529 the note does not have commands_only errors2530 for empty note2531 returns status 422 for json2532 the project is a private project2533 format is2534 returns status 4042535 format is json2536 returns status 4042537 the user is a developer on a private project2538 HTML requests2539 returns status 302 (redirect)2540 JSON requests2541 returns status 2002542 the return_discussion param is set2543 returns discussion JSON when the return_discussion param is set2544 when creating a confidential note2545 when parameter is not provided2546 sets `confidential` and `internal` to `false` in JSON response2547 when is not a confidential note2548 when using the `internal` parameter2549 sets `confidential` and `internal` to `false` in JSON response2550 when using deprecated `confidential` parameter2551 sets `confidential` and `internal` to `false` in JSON response2552 when is a confidential note2553 when using the `internal` parameter2554 sets `confidential` and `internal` to `true` in JSON response2555 when using deprecated `confidential` parameter2556 sets `confidential` and `internal` to `true` in JSON response2557 when `internal` parameter is `true` and `confidential` parameter is `false`2558 uses the `internal` param as source of truth2559 when creating a note with quick actions2560 with commands that return changes2561 includes changes in commands_changes2562 includes command_names2563 with commands that do not return changes2564 does not include changes in commands_changes2565 includes command_names2566 with commands that return an error2567 returns status 422 with error message2568 when the internal project prohibits non-members from accessing merge requests2569 prevents a non-member user from creating a note on one of the project's merge requests2570 when the user is a team member2571 can add comments2572 when the request includes a :in_reply_to_discussion_id designed to fool us2573 prevents the request from adding notes to the spoofed discussion2574 returns an error to the user2575 when the public project prohibits non-members from accessing merge requests2576 prevents a non-member user from creating a note on one of the project's merge requests2577 when the user is a team member2578 can add comments2579 when merge_request_diff_head_sha present2580 returns status 302 for html2581 when creating a comment on a commit with SHA1 starting with a large number2582 creates a note successfully2583 when creating a commit comment from an MR fork2584 when the note_project_id is not correct2585 returns a 4042586 when the user has no access to the fork2587 returns a 4042588 when the user has access to the fork2589 is successful2590 creates the note2591 when target_id and noteable_id do not match2592 uses target_id and ignores noteable_id2593 when the merge request discussion is locked2594 when a noteable is not found2595 returns 404 status2596 when a user is a team member2597 returns 302 status for html2598 returns 200 status for json2599 creates a new note2600 when a user is not a team member2601 returns 404 status2602 does not create a new note2603 behaves like create notes request exceeding rate limit2604 allows user in allow-list to create notes, even if the case is different2605 when rate limiter enabled2606 logs request and declines it when endpoint called more than the threshold2607 when rate limiter is disabled2608 does not log request and does not block the request2609 PUT update2610 is expected to have request urgency :low2611 should update the note with a valid issue2612 updates the note2613 doesnt update the note2614 disallows edits when the issue is confidential and the user has guest permissions2615 DELETE destroy2616 is expected to have request urgency :low2617 user is the author of a note2618 returns status 200 for html2619 deletes the note2620 user is not the author of a note2621 returns status 4042622 POST toggle_award_emoji2623 is expected to have request urgency :low2624 toggles the award emoji2625 removes the already awarded emoji2626 marks Todos on the Noteable as done2627 resolving and unresolving2628 POST resolve2629 is expected to have request urgency :low2630 when the user is not authorized to resolve the note2631 returns status 4042632 when the user is authorized to resolve the note2633 when the note is not resolvable2634 returns status 4042635 when the note is resolvable2636 resolves the note2637 sends notifications if all discussions are resolved2638 returns the name of the resolving user2639 returns status 2002640 DELETE unresolve2641 is expected to have request urgency :low2642 when the user is not authorized to resolve the note2643 returns status 4042644 when the user is authorized to resolve the note2645 when the note is not resolvable2646 returns status 4042647 when the note is resolvable2648 unresolves the note2649 returns status 2002650 GET outdated_line_change2651 successfully renders expected JSON response2652 is expected to have request urgency :low2653Projects::PipelinesController2654 GET index.json2655 does not include coverage data for the pipelines2656 paginates the result2657 when using persisted stages2658 returns serialized pipelines2659 when performing gitaly calls2660 limits the Gitaly requests2661 when the project is private2662 returns `not_found` when the user does not have access2663 returns the pipelines when the user has access2664 when user tries to access legacy scope via URL2665 redirects to all pipelines with that status instead2666 filter by scope2667 scope is branches or tags2668 when scope is branches2669 returns matched pipelines2670 when scope is tags2671 returns matched pipelines2672 filter by username2673 when username exists2674 returns matched pipelines2675 when username does not exist2676 returns empty2677 filter by ref2678 when pipelines with the ref exists2679 returns matched pipelines2680 when no pipeline with the ref exists2681 returns empty list2682 filter by status2683 when pipelines with the status exists2684 returns matched pipelines2685 when no pipeline with the status exists2686 returns empty list2687 when invalid status2688 returns all list2689 GET #show2690 when the project is public2691 avoids N+1 database queries2692 when the project is private2693 returns `not_found` when the user does not have access2694 GET show.json2695 returns the pipeline2696 when the pipeline has multiple stages and groups2697 does not perform N + 1 queries2698 when builds are disabled2699 users can not see internal pipelines2700 when pipeline is external2701 users can see the external pipeline2702 with triggered pipelines2703 when it does have permission to read other projects2704 when not-expanding any pipelines2705 behaves like not expanded2706 does return base details2707 does not expand triggered_by pipeline2708 does not expand triggered pipelines2709 when expanding non-existing pipeline2710 behaves like not expanded2711 does return base details2712 does not expand triggered_by pipeline2713 does not expand triggered pipelines2714 when expanding pipeline that is not directly expandable2715 behaves like not expanded2716 does return base details2717 does not expand triggered_by pipeline2718 does not expand triggered pipelines2719 when expanding self2720 it does not recursively expand pipelines2721 behaves like not expanded2722 does return base details2723 does not expand triggered_by pipeline2724 does not expand triggered pipelines2725 when expanding source and target pipeline2726 behaves like expanded2727 does return base details2728 does expand triggered_by pipeline2729 does not recursively expand triggered_by2730 does expand triggered pipelines2731 does not recursively expand triggered2732 when expand depth is limited to 12733 behaves like not expanded2734 does return base details2735 does not expand triggered_by pipeline2736 does not expand triggered pipelines2737 when expanding all2738 behaves like expanded2739 does return base details2740 does expand triggered_by pipeline2741 does not recursively expand triggered_by2742 does expand triggered pipelines2743 does not recursively expand triggered2744 when does not have permission to read other projects2745 behaves like not expanded2746 does return base details2747 does not expand triggered_by pipeline2748 does not expand triggered pipelines2749 GET dag2750 behaves like the show page2751 renders the show template2752 GET dag.json2753 returns the pipeline with DAG serialization2754 GET builds2755 behaves like the show page2756 renders the show template2757 GET failures2758 with failed jobs2759 shows the page2760 without failed jobs2761 redirects to the main pipeline page2762 GET stages.json2763 when accessing existing stage2764 without retried2765 returns pipeline jobs without the retried builds2766 with retried2767 returns pipelines jobs with the retried builds2768 when accessing unknown stage2769 responds with not found2770 GET status.json2771 return a detailed pipeline status in json2772 GET #charts2773 behaves like tracking unique visits2774 tracks unique visit if the format is HTML2775 tracks unique visit if DNT is not enabled2776 does not track unique visit if DNT is enabled2777 does not track unique visit if the format is JSON2778 behaves like Snowplow event tracking with RedisHLL context2779 behaves like Snowplow event tracking2780 is emitted2781 behaves like tracking unique visits2782 tracks unique visit if the format is HTML2783 tracks unique visit if DNT is not enabled2784 does not track unique visit if DNT is enabled2785 does not track unique visit if the format is JSON2786 behaves like Snowplow event tracking with RedisHLL context2787 behaves like Snowplow event tracking2788 is emitted2789 behaves like tracking unique visits2790 tracks unique visit if the format is HTML2791 tracks unique visit if DNT is not enabled2792 does not track unique visit if DNT is enabled2793 does not track unique visit if the format is JSON2794 behaves like Snowplow event tracking with RedisHLL context2795 behaves like Snowplow event tracking2796 is emitted2797 behaves like tracking unique visits2798 tracks unique visit if the format is HTML2799 tracks unique visit if DNT is not enabled2800 does not track unique visit if DNT is enabled2801 does not track unique visit if the format is JSON2802 behaves like Snowplow event tracking with RedisHLL context2803 behaves like Snowplow event tracking2804 is emitted2805 behaves like tracking unique visits2806 tracks unique visit if the format is HTML2807 tracks unique visit if DNT is not enabled2808 does not track unique visit if DNT is enabled2809 does not track unique visit if the format is JSON2810 behaves like Snowplow event tracking with RedisHLL context2811 behaves like Snowplow event tracking2812 is emitted2813 behaves like tracking unique visits2814 tracks unique visit if the format is HTML2815 tracks unique visit if DNT is not enabled2816 does not track unique visit if DNT is enabled2817 does not track unique visit if the format is JSON2818 behaves like Snowplow event tracking with RedisHLL context2819 behaves like Snowplow event tracking2820 is emitted2821 POST create2822 with a valid .gitlab-ci.yml file2823 behaves like creates a pipeline2824 is expected to redirect to "/namespace197/project-342/-/pipelines/252"2825 when latest commit contains [ci skip]2826 behaves like creates a pipeline2827 is expected to redirect to "/namespace198/project-343/-/pipelines/253"2828 with an invalid .gitlab-ci.yml file2829 does not persist a pipeline2830 POST create.json2831 with a valid .gitlab-ci.yml file2832 creates a pipeline2833 with an invalid .gitlab-ci.yml file2834 does not create a pipeline2835 POST retry.json2836 retries a pipeline in the background without returning any content2837 when builds are disabled2838 fails to retry pipeline2839 when access denied2840 returns an error2841 when service returns an error2842 does not retry2843 POST cancel.json2844 cancels a pipeline without returning any content2845 when builds are disabled2846 fails to retry pipeline2847 GET test_report2848 behaves like the show page2849 renders the show template2850 GET test_report.json2851 with attachments2852 does not have N+1 problem with attachments2853 when pipeline does not have a test report2854 renders an empty test report2855 when pipeline has a test report2856 renders the test report2857 when pipeline has a corrupt test report artifact2858 renders the test reports2859 returns a suite_error on the suite with corrupted XML2860 when test_report contains attachment and scope is with_attachment as a URL param2861 returns a test reports with attachment2862 when test_report does not contain attachment and scope is with_attachment as a URL param2863 returns a test reports with empty values2864 GET latest2865 renders a 404 if no pipeline is found for the ref2866 no ref provided2867 shows latest pipeline for the default project branch2868 ref provided2869 shows a 404 if no pipeline exists2870 shows the latest pipeline for the provided ref2871 newer pipeline exists for older sha2872 shows the provided ref with the last sha/pipeline combo2873 DELETE #destroy2874 when user has ability to delete pipeline2875 deletes pipeline and redirects2876 and builds are disabled2877 fails to delete pipeline2878 and project is undergoing stats refresh2879 behaves like preventing request because of ongoing project stats refresh2880 logs about the rejected request2881 returns 409 error2882 does not delete the pipeline2883 when user has no privileges2884 fails to delete pipeline2885 GET downloadable_artifacts.json2886 when pipeline is empty2887 returns status not_found2888 when pipeline exists2889 when pipeline does not have any downloadable artifacts2890 returns an empty array2891 when pipeline has downloadable artifacts2892 returns an array of artifacts2893Projects::ClustersController2894 GET index2895 functionality2896 when project has one or more clusters2897 lists available clusters and renders html2898 lists available clusters with json serializer2899 sets the polling interval header for json requests2900 feature flag is disabled2901 does not list any clusters2902 when page is specified2903 redirects to the page2904 displays cluster list for associated page2905 when project does not have a cluster2906 returns an empty state page2907 security2908 is allowed for admin when admin mode enabled2909 is disabled for admin when admin mode disabled2910 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 2002911 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 2002912 is expected to be allowed for developer. Expected: 200,201,204,302 Got: 2002913 is expected to be denied for reporter. Expected: 401,404 Got: 4042914 is expected to be denied for guest. Expected: 401,404 Got: 4042915 is expected to be denied for user. Expected: 401,404 Got: 4042916 is expected to be denied for external. Expected: 401,404 Got: 4042917 behaves like GET #metrics_dashboard for dashboard2918 returns correct dashboard2919 behaves like GET #metrics_dashboard correctly formatted response2920 returns a json object with the correct keys2921 when metrics dashboard feature is unavailable2922 returns 404 not found2923 POST create for existing cluster2924 feature flag is disabled2925 responds with :not_found2926 functionality2927 when creates a cluster2928 creates a new cluster2929 when creates a RBAC-enabled cluster2930 creates a new cluster2931 when creates a user-managed cluster2932 creates a new user-managed cluster2933 security2934 is allowed for admin when admin mode enabled2935 is disabled for admin when admin mode disabled2936 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 3022937 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 3022938 is expected to be denied for developer. Expected: 401,404 Got: 4042939 is expected to be denied for reporter. Expected: 401,404 Got: 4042940 is expected to be denied for guest. Expected: 401,404 Got: 4042941 is expected to be denied for user. Expected: 401,404 Got: 4042942 is expected to be denied for external. Expected: 401,404 Got: 4042943 DELETE clear cluster cache2944 deletes the namespaces associated with the cluster2945 feature flag is disabled2946 responds with :not_found2947 security2948 is allowed for admin when admin mode enabled2949 is disabled for admin when admin mode disabled2950 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 3022951 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 3022952 is expected to be denied for developer. Expected: 401,404 Got: 4042953 is expected to be denied for reporter. Expected: 401,404 Got: 4042954 is expected to be denied for guest. Expected: 401,404 Got: 4042955 is expected to be denied for user. Expected: 401,404 Got: 4042956 is expected to be denied for external. Expected: 401,404 Got: 4042957 GET cluster_status2958 feature flag is disabled2959 responds with :not_found2960 functionality2961 responds with matching schema2962 security2963 is allowed for admin when admin mode enabled2964 is disabled for admin when admin mode disabled2965 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 2002966 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 2002967 is expected to be denied for developer. Expected: 401,404 Got: 4042968 is expected to be denied for reporter. Expected: 401,404 Got: 4042969 is expected to be denied for guest. Expected: 401,404 Got: 4042970 is expected to be denied for user. Expected: 401,404 Got: 4042971 is expected to be denied for external. Expected: 401,404 Got: 4042972 GET show2973 feature flag is disabled2974 responds with :not_found2975 security2976 is allowed for admin when admin mode enabled2977 is disabled for admin when admin mode disabled2978 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 2002979 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 2002980 is expected to be allowed for developer. Expected: 200,201,204,302 Got: 2002981 is expected to be denied for reporter. Expected: 401,404 Got: 4042982 is expected to be denied for guest. Expected: 401,404 Got: 4042983 is expected to be denied for user. Expected: 401,404 Got: 4042984 is expected to be denied for external. Expected: 401,404 Got: 4042985 PUT update2986 updates and redirects back to show page2987 feature flag is disabled2988 responds with :not_found2989 when format is json2990 when changing parameters2991 when valid parameters are used2992 updates and redirects back to show page2993 when invalid parameters are used2994 rejects changes2995 security2996 is allowed for admin when admin mode enabled2997 is disabled for admin when admin mode disabled2998 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 3022999 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 3023000 is expected to be denied for developer. Expected: 401,404 Got: 4043001 is expected to be denied for reporter. Expected: 401,404 Got: 4043002 is expected to be denied for guest. Expected: 401,404 Got: 4043003 is expected to be denied for user. Expected: 401,404 Got: 4043004 is expected to be denied for external. Expected: 401,404 Got: 4043005 DELETE destroy3006 feature flag is disabled3007 responds with :not_found3008 functionality3009 when cluster is provided by GCP3010 when cluster is created3011 destroys and redirects back to clusters list3012 when cluster is being created3013 destroys and redirects back to clusters list3014 when cluster is provided by user3015 destroys and redirects back to clusters list3016 security3017 is allowed for admin when admin mode enabled3018 is disabled for admin when admin mode disabled3019 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 3023020 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 3023021 is expected to be denied for developer. Expected: 401,404 Got: 4043022 is expected to be denied for reporter. Expected: 401,404 Got: 4043023 is expected to be denied for guest. Expected: 401,404 Got: 4043024 is expected to be denied for user. Expected: 401,404 Got: 4043025 is expected to be denied for external. Expected: 401,404 Got: 4043026 no project_id param3027 does not respond to any action without project_id param3028GroupsController3029 GET #show3030 when the group is not importing3031 is expected to render template groups/show3032 tracks page views3033 behaves like details view as atom3034 is expected to render template groups/show3035 assigns events for all the projects in the group3036 when the group is importing3037 redirects to the import status page3038 does not track page views3039 GET #details3040 is expected to redirect to "/group82"3041 behaves like details view as atom3042 is expected to render template groups/show3043 assigns events for all the projects in the group3044 GET edit3045 sets the badge API endpoint3046 GET #new3047 when creating subgroups3048 and can_create_group is true3049 and logged in as Admin_with_admin_mode3050 behaves like member with ability to create subgroups3051 renders the new page3052 and logged in as Owner3053 behaves like member with ability to create subgroups3054 renders the new page3055 and logged in as Maintainer3056 behaves like member with ability to create subgroups3057 renders the new page3058 and logged in as Guest3059 behaves like member without ability to create subgroups3060 renders the 404 page3061 and logged in as Developer3062 behaves like member without ability to create subgroups3063 renders the 404 page3064 and logged in as Admin_without_admin_mode3065 behaves like member without ability to create subgroups3066 renders the 404 page3067 and can_create_group is false3068 and logged in as Admin_with_admin_mode3069 behaves like member with ability to create subgroups3070 renders the new page3071 and logged in as Owner3072 behaves like member with ability to create subgroups3073 renders the new page3074 and logged in as Maintainer3075 behaves like member with ability to create subgroups3076 renders the new page3077 and logged in as Guest3078 behaves like member without ability to create subgroups3079 renders the 404 page3080 and logged in as Developer3081 behaves like member without ability to create subgroups3082 renders the 404 page3083 and logged in as Admin_without_admin_mode3084 behaves like member without ability to create subgroups3085 renders the 404 page3086 GET #activity3087 as json3088 includes events from all projects in group and subgroups3089 when user has no permission to see the event3090 filters out invisible event3091 POST #create3092 allows creating a group3093 authorization3094 allows an admin to create a group3095 when creating chat team3096 triggers Mattermost::CreateTeamService3097 when creating subgroups3098 and can_create_group is true3099 and logged in as Owner3100 creates the subgroup3101 and logged in as Developer3102 renders the new template3103 and can_create_group is false3104 and logged in as Owner3105 creates the subgroup3106 and logged in as Developer3107 renders the new template3108 when creating a top level group3109 and can_create_group is enabled3110 creates the Group3111 and can_create_group is disabled3112 does not create the Group3113 malicious group name3114 is expected not to change `Group.count`3115 is expected to render template new3116 when creating a group with `default_branch_protection` attribute3117 for users who have the ability to create a group with `default_branch_protection`3118 creates group with the specified branch protection level3119 for users who do not have the ability to create a group with `default_branch_protection`3120 does not create the group with the specified branch protection level3121 when creating a group with captcha protection3122 allows creating a group when the reCAPTCHA is solved3123 allows creating a sub-group without checking the captcha3124 when the reCAPTCHA is not solved3125 displays an error3126 sets gon variables3127 with feature flag switched off3128 allows creating a group without the reCAPTCHA3129 when creating a group with the `role` attribute present3130 changes the users role3131 when creating a group with the `setup_for_company` attribute present3132 sets the groups `setup_for_company` value3133 when the user already has a value for `setup_for_company`3134 does not change the users `setup_for_company` value3135 when the user has no value for `setup_for_company`3136 changes the users `setup_for_company` value3137 when creating a group with the `jobs_to_be_done` attribute present3138 sets the groups `jobs_to_be_done` value3139 GET #index3140 as a user3141 redirects to Groups Dashboard3142 as a guest3143 redirects to Explore Groups3144 GET #issues3145 saves the sort order to user preferences3146 GET #merge_requests3147 sorting by votes3148 sorts most popular merge requests3149 sorts least popular merge requests3150 rendering views3151 displays MR counts in nav3152 when MergeRequestsFinder raises an exception3153 does not display MR counts in nav3154 when an ActiveRecord::QueryCanceled is raised3155 sets :search_timeout_occurred3156 logs the exception3157 rendering views3158 shows error message3159 does not display MR counts in nav3160 DELETE #destroy3161 as another user3162 returns 4043163 as the group owner3164 schedules a group destroy3165 redirects to the root path3166 PUT update3167 updates the path successfully3168 does not update the path on error3169 updates the project_creation_level successfully3170 updating default_branch_protection3171 for users who have the ability to update default_branch_protection3172 updates the attribute3173 for users who do not have the ability to update default_branch_protection3174 does not update the attribute3175 updating default_branch_name3176 updates the attribute3177 to empty string3178 does not update the attribute3179 when there is a conflicting group path3180 does not render references to the conflicting group3181 when a project inside the group has container repositories3182 does allow the group to be renamed3183 does not allow to path of the group to be changed3184 updating :resource_access_token_creation_allowed3185 when user is a group owner3186 updates the attribute3187 when not a group owner3188 does not update the attribute3189 updating :prevent_sharing_groups_outside_hierarchy3190 when user is a group owner3191 updates the attribute3192 when not a group owner3193 does not update the attribute3194 #ensure_canonical_path3195 for a GET request3196 when requesting groups at the root path3197 when requesting the canonical path with different casing3198 redirects to the correct casing3199 when requesting a redirected path3200 redirects to the canonical path3201 when the old group path is a substring of the scheme or host3202 does not modify the requested host3203 when the old group path is substring of groups3204 does not modify the /groups part of the path3205 when requesting groups under the /groups path3206 when requesting the canonical path3207 non-show path3208 with exactly matching casing3209 does not redirect3210 with different casing3211 redirects to the correct casing3212 show path3213 with exactly matching casing3214 does not redirect3215 with different casing3216 redirects to the correct casing at the root path3217 when requesting a redirected path3218 redirects to the canonical path3219 when the old group path is a substring of the scheme or host3220 does not modify the requested host3221 when the old group path is substring of groups3222 does not modify the /groups part of the path3223 when the old group path is substring of groups plus the new path3224 does not modify the /groups part of the path3225 for a POST request3226 when requesting the canonical path with different casing3227 does not 4043228 does not redirect to the correct casing3229 when requesting a redirected path3230 returns not found3231 for a DELETE request3232 when requesting the canonical path with different casing3233 does not 4043234 does not redirect to the correct casing3235 when requesting a redirected path3236 returns not found3237 PUT transfer3238 when transferring to a subgroup goes right3239 returns a notice and redirects to the new path3240 when converting to a root group goes right3241 returns a notice and redirects to the new path3242 When the transfer goes wrong3243 returns an alert and redirects to the current path3244 when the user is not allowed to transfer the group3245 is denied3246 transferring when a project has container images3247 does not allow the group to be transferred3248 POST #export3249 when the user does not have permission to export the group3250 returns an error3251 when supplied valid params3252 triggers the export job3253 redirects to the edit page3254 when the endpoint receives requests above the rate limit3255 throttles the endpoint3256 GET #download_export3257 when there is a file available to download3258 sends the file3259 when the file is no longer present on disk3260 returns not found3261 when there is no file available to download3262 returns not found3263 when the user does not have the required permissions3264 returns not_found3265 when the endpoint receives requests above the rate limit3266 throttles the endpoint3267 external authorization3268 with external authorization service enabled3269 GET #show3270 is successful3271 does not allow other formats3272 GET #edit3273 is successful3274 GET #new3275 is successful3276 GET #index3277 is successful3278 POST #create3279 creates a group3280 PUT #update3281 updates a group3282 malicious group name3283 is expected to render template edit3284 does not update name3285 DELETE #destroy3286 deletes the group3287 GET #activity3288 behaves like disabled when using an external authorization service3289 works when the feature is not enabled3290 renders a 404 with a message when the feature is enabled3291 GET #activity as JSON3292 returns count3293 GET #issues3294 behaves like disabled when using an external authorization service3295 works when the feature is not enabled3296 renders a 404 with a message when the feature is enabled3297 GET #merge_requests3298 behaves like disabled when using an external authorization service3299 works when the feature is not enabled3300 renders a 404 with a message when the feature is enabled3301 GET #unfoldered_environment_names3302 shows the environment names of a public project to an anonymous user3303 does not show environment names of private projects to anonymous users3304 shows environment names of a private project to a group member3305 does not show environment names of private projects to a logged-in non-member3306API::Terraform::State3307 GET /projects/:id/terraform/state/:name3308 behaves like endpoint with unique user tracking3309 without authentication3310 does not track unique hll event3311 does not track Snowplow event3312 with maintainer permissions3313 behaves like tracking unique hll events3314 tracks unique event3315 behaves like Snowplow event tracking with RedisHLL context3316 behaves like Snowplow event tracking3317 is emitted3318 behaves like it depends on value of the `terraform_state.enabled` config3319 when terraform_state.enabled=false3320 returns `forbidden` response3321 when terraform_state.enabled=true3322 returns a successful response3323 without authentication3324 returns 401 if user is not authenticated3325 personal access token authentication3326 with maintainer permissions3327 given_state_name: "test-state"3328 behaves like can access terraform state3329 returns terraform state of a project of given state name3330 given_state_name: "test.state"3331 behaves like can access terraform state3332 returns terraform state of a project of given state name3333 given_state_name: "test%2Ffoo"3334 behaves like can access terraform state3335 returns terraform state of a project of given state name3336 for a project that does not exist3337 returns not found3338 with invalid state name3339 returns a 404 error3340 behaves like cannot access a state that is scheduled for deletion3341 returns unprocessable entity3342 with developer permissions3343 behaves like can access terraform state3344 returns terraform state of a project of given state name3345 job token authentication3346 with maintainer permissions3347 returns unauthorized if the the job is not running3348 behaves like can access terraform state3349 returns terraform state of a project of given state name3350 for a project that does not exist3351 returns not found3352 with developer permissions3353 behaves like can access terraform state3354 returns terraform state of a project of given state name3355 POST /projects/:id/terraform/state/:name3356 behaves like endpoint with unique user tracking3357 without authentication3358 does not track unique hll event3359 does not track Snowplow event3360 with maintainer permissions3361 behaves like tracking unique hll events3362 tracks unique event3363 behaves like Snowplow event tracking with RedisHLL context3364 behaves like Snowplow event tracking3365 is emitted3366 behaves like it depends on value of the `terraform_state.enabled` config3367 when terraform_state.enabled=false3368 returns `forbidden` response3369 when terraform_state.enabled=true3370 returns a successful response3371 when terraform state with a given name is already present3372 with maintainer permissions3373 given_state_name: "test-state"3374 updates the state3375 given_state_name: "test.state"3376 updates the state3377 given_state_name: "test%2Ffoo"3378 updates the state3379 with invalid state name3380 returns a 404 error3381 when serial already exists3382 returns unprocessable entity3383 behaves like cannot access a state that is scheduled for deletion3384 returns unprocessable entity3385 without body3386 returns no content if no body is provided3387 with developer permissions3388 returns forbidden3389 when there is no terraform state of a given name3390 with maintainer permissions3391 given_state_name: "test-state"3392 creates a new state3393 given_state_name: "test.state"3394 creates a new state3395 given_state_name: "test%2Ffoo"3396 creates a new state3397 without body3398 returns no content if no body is provided3399 with developer permissions3400 returns forbidden3401 when using job token authentication3402 associates the job with the newly created state version3403 response depending on the max allowed state size3404 when the max allowed state size is unlimited (set as 0)3405 returns a success response3406 when the max allowed state size is greater than the request state size3407 returns a success response3408 when the max allowed state size is equal to the request state size3409 returns a success response3410 when the max allowed state size is less than the request state size3411 returns a 'payload too large' response3412 DELETE /projects/:id/terraform/state/:name3413 behaves like endpoint with unique user tracking3414 without authentication3415 does not track unique hll event3416 does not track Snowplow event3417 with maintainer permissions3418 behaves like tracking unique hll events3419 tracks unique event3420 behaves like Snowplow event tracking with RedisHLL context3421 behaves like Snowplow event tracking3422 is emitted3423 behaves like it depends on value of the `terraform_state.enabled` config3424 when terraform_state.enabled=false3425 returns `forbidden` response3426 when terraform_state.enabled=true3427 returns a successful response3428 with maintainer permissions3429 given_state_name: "test-state"3430 behaves like schedules the state for deletion3431 returns empty body3432 given_state_name: "test.state"3433 behaves like schedules the state for deletion3434 returns empty body3435 given_state_name: "test%2Ffoo"3436 behaves like schedules the state for deletion3437 returns empty body3438 with invalid state name3439 returns a 404 error3440 behaves like cannot access a state that is scheduled for deletion3441 returns unprocessable entity3442 with developer permissions3443 returns forbidden3444 POST /projects/:id/terraform/state/:name/lock3445 behaves like endpoint with unique user tracking3446 without authentication3447 does not track unique hll event3448 does not track Snowplow event3449 with maintainer permissions3450 behaves like tracking unique hll events3451 tracks unique event3452 behaves like Snowplow event tracking with RedisHLL context3453 behaves like Snowplow event tracking3454 is emitted3455 behaves like cannot access a state that is scheduled for deletion3456 returns unprocessable entity3457 with invalid state name3458 returns a 404 error3459 state is already locked3460 returns an error3461 user does not have permission to lock the state3462 returns an error3463 given_state_name: "test-state"3464 locks the terraform state3465 given_state_name: "test%2Ffoo"3466 locks the terraform state3467 with a dot in the state name3468 locks the terraform state3469 DELETE /projects/:id/terraform/state/:name/lock3470 behaves like endpoint with unique user tracking3471 without authentication3472 does not track unique hll event3473 does not track Snowplow event3474 with maintainer permissions3475 behaves like tracking unique hll events3476 tracks unique event3477 behaves like Snowplow event tracking with RedisHLL context3478 behaves like Snowplow event tracking3479 is emitted3480 behaves like cannot access a state that is scheduled for deletion3481 returns unprocessable entity3482 behaves like it depends on value of the `terraform_state.enabled` config3483 when terraform_state.enabled=false3484 returns `forbidden` response3485 when terraform_state.enabled=true3486 returns a successful response3487 given_state_name: "test-state"3488 with the correct lock id3489 removes the terraform state lock3490 with no lock id (force-unlock)3491 removes the terraform state lock3492 given_state_name: "test.state"3493 with the correct lock id3494 removes the terraform state lock3495 with no lock id (force-unlock)3496 removes the terraform state lock3497 given_state_name: "test%2Ffoo"3498 with the correct lock id3499 removes the terraform state lock3500 with no lock id (force-unlock)3501 removes the terraform state lock3502 with invalid state name3503 returns a 404 error3504 with an incorrect lock id3505 returns an error3506 with a longer than 255 character lock id3507 returns an error3508 user does not have permission to unlock the state3509 returns an error3510API::Issues3511 POST /projects/:id/issues3512 creates a new project issue3513 creates a new project issue with labels param as array3514 creates a new confidential project issue3515 creates a new confidential project issue with a different param3516 creates a public issue when confidential param is false3517 creates a public issue when confidential param is invalid3518 returns a 400 bad request if title not given3519 allows special label names3520 allows special label names with labels param as array3521 returns 400 if title is too long3522 support for deprecated assignee_id3523 creates a new project issue3524 creates a new project issue when assignee_id is empty3525 single assignee restrictions3526 creates a new project issue with no more than one assignee3527 user does not have permissions to create issue3528 renders 4033529 an internal ID is provided3530 by an admin3531 sets the internal ID on the new issue3532 by an owner3533 sets the internal ID on the new issue3534 by a group owner3535 sets the internal ID on the new issue3536 by another user3537 ignores the given internal ID3538 when an issue with the same IID exists on database3539 returns 4093540 resolving discussions3541 resolving all discussions in a merge request3542 behaves like creating an issue resolving discussions through the API3543 creates a new project issue3544 resolves the discussions in a merge request3545 assigns a description to the issue mentioning the merge request3546 resolving a single discussion3547 behaves like creating an issue resolving discussions through the API3548 creates a new project issue3549 resolves the discussions in a merge request3550 assigns a description to the issue mentioning the merge request3551 with due date3552 creates a new project issue3553 setting created_at3554 by an admin3555 sets the creation time on the new issue3556 by a project owner3557 sets the creation time on the new issue3558 by a group owner3559 sets the creation time on the new issue3560 by another user3561 ignores the given creation time3562 the user can only read the issue3563 cannot create new labels3564 cannot create new labels with labels param as array3565 when request exceeds the rate limit3566 prevents users from creating more issues3567 POST /projects/:id/issues with spam filtering3568 when allow_possible_spam application setting is false3569 does not create a new project issue3570 returns correct status and message3571 creates a new spam log entry3572 when allow_possible_spam application setting is true3573 does creates a new project issue3574 returns correct status3575 creates a new spam log entry3576 /projects/:id/issues/:issue_iid/move3577 moves an issue3578 moves the issue to another namespace if I am admin3579 behaves like POST request permissions for admin mode3580 behaves like when admin3581 behaves like makes request3582 returns3583 behaves like makes request3584 returns3585 behaves like when user3586 returns3587 behaves like makes request3588 returns3589 when source and target projects are the same3590 returns 400 when trying to move an issue3591 when the user does not have the permission to move issues3592 returns 400 when trying to move an issue3593 when issue does not exist3594 returns 404 when trying to move an issue3595 when source project does not exist3596 returns 404 when trying to move an issue3597 when target project does not exist3598 returns 404 when trying to move an issue3599 /projects/:id/issues/:issue_iid/clone3600 clones the issue with notes when with_notes is true3601 when user can admin the issue3602 when the user can admin the target project3603 clones the issue3604 when target project is the same source project3605 clones the issue3606 when the user does not have the permission to clone issues3607 returns 4003608 when issue does not exist3609 returns 4043610 when source project does not exist3611 returns 4043612 when target project does not exist3613 returns 4043614 POST :id/issues/:issue_iid/subscribe3615 subscribes to an issue3616 returns 304 if already subscribed3617 returns 404 if the issue is not found3618 returns 404 if the issue is confidential3619 POST :id/issues/:issue_id/unsubscribe3620 unsubscribes from an issue3621 returns 304 if not subscribed3622 returns 404 if the issue is not found3623 returns 404 if the issue is confidential3624API::Snippets3625 GET /snippets/3626 returns snippets available for user3627 hides private snippets from regular user3628 returns 401 for non-authenticated3629 does not return snippets related to a project with disable feature visibility3630 filtering snippets by created_after/created_before3631 returns snippets available for user in given time range3632 GET /snippets/public3633 returns only public snippets from all users when authenticated3634 requires authentication3635 filtering public snippets by created_after/created_before3636 returns public snippets available to user in given time range3637 GET /snippets/:id/raw3638 returns raw text3639 returns 404 for invalid snippet id3640 behaves like snippet access with different users3641 requester: :admin, visibility: :public, status: :ok3642 returns the correct response3643 requester: :admin, visibility: :private, status: :ok3644 returns the correct response3645 requester: :admin, visibility: :internal, status: :ok3646 returns the correct response3647 requester: :author, visibility: :public, status: :ok3648 returns the correct response3649 requester: :author, visibility: :private, status: :ok3650 returns the correct response3651 requester: :author, visibility: :internal, status: :ok3652 returns the correct response3653 requester: :other, visibility: :public, status: :ok3654 returns the correct response3655 requester: :other, visibility: :private, status: :not_found3656 returns the correct response3657 requester: :other, visibility: :internal, status: :ok3658 returns the correct response3659 requester: nil, visibility: :public, status: :ok3660 returns the correct response3661 requester: nil, visibility: :private, status: :not_found3662 returns the correct response3663 requester: nil, visibility: :internal, status: :not_found3664 returns the correct response3665 behaves like snippet blob content3666 returns content from repository3667 when snippet repository is empty3668 returns content from database3669 GET /snippets/:id/files/:ref/:file_path/raw3670 behaves like raw snippet files3671 with an invalid snippet ID3672 returns 4043673 with valid params3674 returns the raw file info3675 with unauthorized user3676 returns 4043677 with invalid params3678 file_path: "%2Egitattributes", ref: "invalid-ref", status: :not_found, key: "message", message: "404 Reference Not Found"3679 returns the proper response code and message3680 file_path: "%2Egitattributes", ref: nil, status: :not_found, key: "error", message: "404 Not Found"3681 returns the proper response code and message3682 file_path: "%2Egitattributes", ref: "", status: :not_found, key: "error", message: "404 Not Found"3683 returns the proper response code and message3684 file_path: "doesnotexist.rb", ref: "master", status: :not_found, key: "message", message: "404 File Not Found"3685 returns the proper response code and message3686 file_path: "/does/not/exist.rb", ref: "master", status: :not_found, key: "error", message: "404 Not Found"3687 returns the proper response code and message3688 file_path: "%2E%2E%2Fetc%2Fpasswd", ref: "master", status: :bad_request, key: "error", message: "file_path should be a valid file path"3689 returns the proper response code and message3690 file_path: "%2Fetc%2Fpasswd", ref: "master", status: :bad_request, key: "error", message: "file_path should be a valid file path"3691 returns the proper response code and message3692 file_path: "../../etc/passwd", ref: "master", status: :not_found, key: "error", message: "404 Not Found"3693 returns the proper response code and message3694 behaves like snippet access with different users3695 requester: :admin, visibility: :public, status: :ok3696 returns the correct response3697 requester: :admin, visibility: :private, status: :ok3698 returns the correct response3699 requester: :admin, visibility: :internal, status: :ok3700 returns the correct response3701 requester: :author, visibility: :public, status: :ok3702 returns the correct response3703 requester: :author, visibility: :private, status: :ok3704 returns the correct response3705 requester: :author, visibility: :internal, status: :ok3706 returns the correct response3707 requester: :other, visibility: :public, status: :ok3708 returns the correct response3709 requester: :other, visibility: :private, status: :not_found3710 returns the correct response3711 requester: :other, visibility: :internal, status: :ok3712 returns the correct response3713 requester: nil, visibility: :public, status: :ok3714 returns the correct response3715 requester: nil, visibility: :private, status: :not_found3716 returns the correct response3717 requester: nil, visibility: :internal, status: :not_found3718 returns the correct response3719 GET /snippets/:id3720 with the author3721 returns snippet json3722 with a non-existent snippet ID3723 returns 4043724 behaves like snippet access with different users3725 requester: :admin, visibility: :public, status: :ok3726 returns the correct response3727 requester: :admin, visibility: :private, status: :ok3728 returns the correct response3729 requester: :admin, visibility: :internal, status: :ok3730 returns the correct response3731 requester: :author, visibility: :public, status: :ok3732 returns the correct response3733 requester: :author, visibility: :private, status: :ok3734 returns the correct response3735 requester: :author, visibility: :internal, status: :ok3736 returns the correct response3737 requester: :other, visibility: :public, status: :ok3738 returns the correct response3739 requester: :other, visibility: :private, status: :not_found3740 returns the correct response3741 requester: :other, visibility: :internal, status: :ok3742 returns the correct response3743 requester: nil, visibility: :public, status: :ok3744 returns the correct response3745 requester: nil, visibility: :private, status: :not_found3746 returns the correct response3747 requester: nil, visibility: :internal, status: :not_found3748 returns the correct response3749 POST /snippets/3750 returns 400 for missing parameters3751 returns 400 if title is blank3752 with files parameter3753 behaves like snippet creation with files parameter3754 returns 400 if both files and content are provided3755 returns 400 when neither files or content are provided3756 path: ".gitattributes", content: "file content", status: :created, error: nil3757 responds correctly3758 path: "valid/path/file.rb", content: "file content", status: :created, error: nil3759 responds correctly3760 path: ".gitattributes", content: nil, status: :bad_request, error: "files[0][content] is empty"3761 responds correctly3762 path: ".gitattributes", content: "", status: :bad_request, error: "files[0][content] is empty"3763 responds correctly3764 path: "", content: "file content", status: :bad_request, error: "files[0][file_path] is empty"3765 responds correctly3766 path: nil, content: "file content", status: :bad_request, error: "files[0][file_path] should be a valid file path, files[0][file_path] is empty"3767 responds correctly3768 path: "../../etc/passwd", content: "file content", status: :bad_request, error: "files[0][file_path] should be a valid file path"3769 responds correctly3770 with multiple files3771 behaves like snippet creation3772 creates a new snippet3773 creates repository3774 commit the files to the repository3775 behaves like snippet creation without files parameter3776 allows file_name and content parameters3777 returns 400 if file_name and content are not both provided3778 returns 400 if content is blank3779 with restricted visibility settings3780 behaves like snippet creation3781 creates a new snippet3782 creates repository3783 commit the files to the repository3784 behaves like snippet creation3785 creates a new snippet3786 creates repository3787 commit the files to the repository3788 with an external user3789 does not create a new snippet3790 when save fails because the repository could not be created3791 returns 4003792 when the snippet is spam3793 when the snippet is private3794 creates the snippet3795 when the snippet is public3796 rejects the snippet3797 creates a spam log3798 PUT /snippets/:id3799 returns 404 for another user's snippet3800 behaves like snippet file updates3801 with various snippet file changes3802 is_multi_file: true, file_name: nil, content: nil, files: [{:action=>"create", :file_path=>"foo.txt", :content=>"bar"}], status: :success3803 has the correct response3804 is_multi_file: true, file_name: nil, content: nil, files: [{:action=>"update", :file_path=>"CHANGELOG", :content=>"bar"}], status: :success3805 has the correct response3806 is_multi_file: true, file_name: nil, content: nil, files: [{:action=>"move", :file_path=>".old-gitattributes", :previous_path=>".gitattributes"}], status: :success3807 has the correct response3808 is_multi_file: true, file_name: nil, content: nil, files: [{:action=>"delete", :file_path=>"CONTRIBUTING.md"}], status: :success3809 has the correct response3810 is_multi_file: true, file_name: nil, content: nil, files: [{:action=>"create", :file_path=>"foo.txt", :content=>"bar"}, {:action=>"update", :file_path=>"CHANGELOG", :content=>"bar"}], status: :success3811 has the correct response3812 is_multi_file: true, file_name: "foo.txt", content: "bar", files: [{:action=>"create", :file_path=>"foo.txt", :content=>"bar"}], status: :bad_request3813 has the correct response3814 is_multi_file: true, file_name: "foo.txt", content: "bar", files: nil, status: :bad_request3815 has the correct response3816 is_multi_file: true, file_name: nil, content: nil, files: nil, status: :bad_request3817 has the correct response3818 is_multi_file: true, file_name: "foo.txt", content: nil, files: [{:action=>"create", :file_path=>"foo.txt", :content=>"bar"}], status: :bad_request3819 has the correct response3820 is_multi_file: true, file_name: nil, content: "bar", files: [{:action=>"create", :file_path=>"foo.txt", :content=>"bar"}], status: :bad_request3821 has the correct response3822 is_multi_file: true, file_name: "", content: nil, files: [{:action=>"create", :file_path=>"foo.txt", :content=>"bar"}], status: :bad_request3823 has the correct response3824 is_multi_file: true, file_name: nil, content: "", files: [{:action=>"create", :file_path=>"foo.txt", :content=>"bar"}], status: :bad_request3825 has the correct response3826 is_multi_file: true, file_name: nil, content: nil, files: [{:action=>"create", :file_path=>"../../etc/passwd", :content=>"bar"}], status: :bad_request3827 has the correct response3828 is_multi_file: true, file_name: nil, content: nil, files: [{:action=>"create", :previous_path=>"../../etc/passwd", :file_path=>"CHANGELOG", :content=>"bar"}], status: :bad_request3829 has the correct response3830 is_multi_file: true, file_name: nil, content: nil, files: [{:action=>"move", :file_path=>"missing_previous_path.txt"}], status: :unprocessable_entity3831 has the correct response3832 is_multi_file: false, file_name: "foo.txt", content: "bar", files: nil, status: :success3833 has the correct response3834 is_multi_file: false, file_name: "foo.txt", content: nil, files: nil, status: :success3835 has the correct response3836 is_multi_file: false, file_name: nil, content: "bar", files: nil, status: :success3837 has the correct response3838 is_multi_file: false, file_name: "foo.txt", content: "bar", files: [{:action=>"create", :file_path=>"foo.txt", :content=>"bar"}], status: :bad_request3839 has the correct response3840 is_multi_file: false, file_name: nil, content: nil, files: nil, status: :bad_request3841 has the correct response3842 is_multi_file: false, file_name: nil, content: "", files: nil, status: :bad_request3843 has the correct response3844 is_multi_file: false, file_name: nil, content: nil, files: [{:action=>"create", :file_path=>"../../etc/passwd", :content=>"bar"}], status: :bad_request3845 has the correct response3846 is_multi_file: false, file_name: nil, content: nil, files: [{:action=>"create", :previous_path=>"../../etc/passwd", :file_path=>"CHANGELOG", :content=>"bar"}], status: :bad_request3847 has the correct response3848 when save fails due to a repository commit error3849 returns a bad request response3850 behaves like snippet non-file updates3851 updates a snippet non-file attributes3852 behaves like snippet individual non-file updates3853 attribute: :description, updated_value: "new description"3854 updates the attribute3855 attribute: :title, updated_value: "new title"3856 updates the attribute3857 attribute: :visibility, updated_value: "private"3858 updates the attribute3859 behaves like invalid snippet updates3860 returns 404 for invalid snippet id3861 returns 400 for missing parameters3862 returns 400 if content is blank3863 returns 400 if title is blank3864 with restricted visibility settings3865 behaves like snippet non-file updates3866 updates a snippet non-file attributes3867 behaves like update with repository actions3868 when the repository exists3869 commits the changes to the repository3870 when the repository does not exist3871 when update attributes does not include file_name or content3872 does not create the repository3873 when update attributes include file_name or content3874 creates the repository3875 commits the file to the repository3876 when save fails due to a repository creation error3877 returns 4003878 does not save the changes to the snippet object3879 when the snippet is spam3880 when the snippet is private3881 updates the snippet3882 when the snippet is public3883 rejects the snippet3884 creates a spam log3885 when a private snippet is made public3886 rejects the snippet3887 creates a spam log3888 when admin3889 when sudo is defined3890 returns 200 and updates snippet visibility3891 does not commit data3892 DELETE /snippets/:id3893 deletes snippet3894 returns 404 for invalid snippet id3895 behaves like 412 response3896 for a modified resource3897 returns 412 with a JSON error3898 for an unmodified resource3899 returns 204 with an empty body3900 GET /snippets/:id/user_agent_detail3901 exposes known attributes3902 behaves like GET request permissions for admin mode3903 behaves like when admin3904 behaves like makes request3905 returns3906 behaves like makes request3907 returns3908 behaves like when user3909 returns3910 behaves like makes request3911 returns3912Projects::PipelineSchedulesController3913 GET #index3914 renders the index view3915 avoids N + 1 queries3916 when the scope is set to active3917 only shows active pipeline schedules3918 GET #new3919 initializes a pipeline schedule model3920 POST #create3921 functionality3922 when variables_attributes has one variable3923 creates a new schedule3924 when variables_attributes has two variables and duplicated3925 returns an error that the keys of variable are duplicated3926 security3927 is allowed for admin when admin mode enabled3928 is denied for admin when admin mode disabled3929 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 3023930 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 3023931 is expected to be allowed for developer. Expected: 200,201,204,302 Got: 3023932 is expected to be denied for reporter. Expected: 401,404 Got: 4043933 is expected to be denied for guest. Expected: 401,404 Got: 4043934 is expected to be denied for user. Expected: 401,404 Got: 4043935 is expected to be denied for external. Expected: 401,404 Got: 4043936 is expected to be denied for visitor. Expected: 401,404 Got: 4043937 PUT #update3938 functionality3939 when a pipeline schedule has no variables3940 when params include one variable3941 inserts new variable to the pipeline schedule3942 when params include two duplicated variables3943 returns an error that variables are duplciated3944 when a pipeline schedule has one variable3945 when adds a new variable3946 adds the new variable3947 when adds a new duplicated variable3948 returns an error3949 when updates a variable3950 updates the variable3951 when deletes a variable3952 delete the existsed variable3953 when deletes and creates a same key simultaneously3954 updates the variable3955 security3956 behaves like access update schedule3957 security3958 is allowed for admin when admin mode enabled3959 is denied for admin when admin mode disabled3960 is expected to be denied for owner. Expected: 401,404 Got: 4043961 is expected to be denied for maintainer. Expected: 401,404 Got: 4043962 is expected to be denied for developer. Expected: 401,404 Got: 4043963 is expected to be denied for reporter. Expected: 401,404 Got: 4043964 is expected to be denied for guest. Expected: 401,404 Got: 4043965 is expected to be denied for user. Expected: 401,404 Got: 4043966 is expected to be denied for external. Expected: 401,404 Got: 4043967 is expected to be denied for visitor. Expected: 401,404 Got: 4043968 when user is schedule owner3969 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 3023970 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 3023971 is expected to be allowed for developer. Expected: 200,201,204,302 Got: 3023972 is expected to be denied for reporter. Expected: 401,404 Got: 4043973 is expected to be denied for guest. Expected: 401,404 Got: 4043974 is expected to be denied for user. Expected: 401,404 Got: 4043975 is expected to be denied for external. Expected: 401,404 Got: 4043976 is expected to be denied for visitor. Expected: 401,404 Got: 4043977 when a developer created a pipeline schedule3978 is expected to be allowed for #<User:0x00007f37ad8e7628>. Expected: 200,201,204,302 Got: 3023979 is expected to be denied for owner. Expected: 401,404 Got: 4043980 is expected to be denied for maintainer. Expected: 401,404 Got: 4043981 is expected to be denied for developer. Expected: 401,404 Got: 4043982 when a maintainer created a pipeline schedule3983 is expected to be allowed for #<User:0x00007f377f4433c0>. Expected: 200,201,204,302 Got: 3023984 is expected to be denied for owner. Expected: 401,404 Got: 4043985 is expected to be denied for maintainer. Expected: 401,404 Got: 4043986 is expected to be denied for developer. Expected: 401,404 Got: 4043987 GET #edit3988 functionality3989 loads the pipeline schedule3990 behaves like access update schedule3991 security3992 is allowed for admin when admin mode enabled3993 is denied for admin when admin mode disabled3994 is expected to be denied for owner. Expected: 401,404 Got: 4043995 is expected to be denied for maintainer. Expected: 401,404 Got: 4043996 is expected to be denied for developer. Expected: 401,404 Got: 4043997 is expected to be denied for reporter. Expected: 401,404 Got: 4043998 is expected to be denied for guest. Expected: 401,404 Got: 4043999 is expected to be denied for user. Expected: 401,404 Got: 4044000 is expected to be denied for external. Expected: 401,404 Got: 4044001 is expected to be denied for visitor. Expected: 401,404 Got: 4044002 when user is schedule owner4003 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 2004004 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 2004005 is expected to be allowed for developer. Expected: 200,201,204,302 Got: 2004006 is expected to be denied for reporter. Expected: 401,404 Got: 4044007 is expected to be denied for guest. Expected: 401,404 Got: 4044008 is expected to be denied for user. Expected: 401,404 Got: 4044009 is expected to be denied for external. Expected: 401,404 Got: 4044010 is expected to be denied for visitor. Expected: 401,404 Got: 4044011 GET #take_ownership4012 security4013 is allowed for admin when admin mode enabled4014 is denied for admin when admin mode disabled4015 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 3024016 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 3024017 is expected to be denied for developer. Expected: 401,404 Got: 4044018 is expected to be denied for reporter. Expected: 401,404 Got: 4044019 is expected to be denied for guest. Expected: 401,404 Got: 4044020 is expected to be denied for user. Expected: 401,404 Got: 4044021 is expected to be denied for external. Expected: 401,404 Got: 4044022 is expected to be denied for visitor. Expected: 401,404 Got: 4044023 when user is schedule owner4024 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 3024025 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 3024026 is expected to be allowed for developer. Expected: 200,201,204,302 Got: 3024027 is expected to be denied for reporter. Expected: 401,404 Got: 4044028 is expected to be denied for guest. Expected: 401,404 Got: 4044029 is expected to be denied for user. Expected: 401,404 Got: 4044030 is expected to be denied for external. Expected: 401,404 Got: 4044031 is expected to be denied for visitor. Expected: 401,404 Got: 4044032 POST #play4033 when an anonymous user makes the request4034 does not allow pipeline to be executed4035 when a developer makes the request4036 executes a new pipeline4037 prevents users from scheduling the same pipeline repeatedly4038 when a developer attempts to schedule a protected ref4039 does not allow pipeline to be executed4040 DELETE #destroy4041 when a developer makes the request4042 does not delete the pipeline schedule4043 when a maintainer makes the request4044 destroys the pipeline schedule4045AutocompleteController4046 GET users4047 project members4048 GET #users with project ID4049 returns the project members4050 GET #users with unknown project4051 is expected to respond with numeric status code not_found4052 group members4053 GET #users with group ID4054 returns the group members4055 GET #users with unknown group ID4056 is expected to respond with numeric status code not_found4057 non-member login for public project4058 GET #users with project ID4059 returns the project members and non-members4060 all users4061 is expected to be a kind of Array4062 is expected to eq 34063 limited users per page4064 is expected to be a kind of Array4065 is expected to eq 204066 unauthenticated user4067 GET #users with public project4068 is expected to be a kind of Array4069 is expected to eq 24070 GET #users with project4071 is expected to respond with numeric status code not_found4072 GET #users with unknown project4073 is expected to respond with numeric status code not_found4074 GET #users with inaccessible group4075 is expected to respond with numeric status code not_found4076 GET #users with no project4077 is expected to be a kind of Array4078 is expected to be empty4079 GET #users with todo filter4080 gives an array of users4081 author of issuable included4082 authenticated4083 includes the author4084 rejects non existent user ids4085 without authenticating4086 returns empty result4087 skip_users parameter included4088 skips the user IDs passed4089 merge_request_iid parameter included4090 includes can_merge option to users4091 behaves like rate limited endpoint4092 when rate limiter enabled4093 logs request and declines it when endpoint called more than the threshold4094 when rate limiter is disabled4095 does not log request and does not block the request4096 GET projects4097 authorized projects4098 GET #projects with project ID4099 returns projects4100 authorized projects and search4101 GET #projects with project ID and search4102 returns projects4103 authorized projects apply limit4104 GET #projects with project ID4105 returns projects4106 authorized projects without admin_issue ability4107 GET #projects with project ID4108 returns no projects4109 GET award_emojis4110 unauthorized user4111 returns empty json4112 sign in as user without award emoji4113 returns empty json4114 sign in as user with award emoji4115 returns json sorted by name count4116 GET deploy_keys_with_owners4117 unauthorized user4118 returns a not found response4119 when the user is logged in4120 with a non-existing project4121 returns a not found response4122 with an existing project4123 when user cannot admin project4124 returns a forbidden response4125 when user can admin project4126 and user can read owner of key4127 renders the deploy keys in a json payload, with owner4128 and user cannot read owner of key4129 returns a payload without owner4130 Get merge_request_target_branches4131 anonymous user4132 returns empty json4133 user without any accessible merge requests4134 returns empty json4135 user with an accessible merge request but no scope4136 params: {}4137 returns an error4138 params: {:group_id=>" "}4139 returns an error4140 params: {:project_id=>" "}4141 returns an error4142 params: {:group_id=>" ", :project_id=>" "}4143 returns an error4144 user with an accessible merge request by project4145 returns json4146 user with an accessible merge request by group4147 returns json4148Projects::MergeRequests::CreationsController4149 GET new4150 merge request that removes a submodule4151 renders new merge request widget template4152 merge request with some commits4153 shows total commits4154 with artificial limits4155 limits total commits4156 GET diffs4157 when merge request cannot be created4158 does not assign diffs var4159 GET pipelines4160 renders JSON including serialized pipelines4161 GET diff_for_path4162 when both branches are in the same project4163 disables diff notes4164 only renders the diffs for the path given4165 when the source branch is in a different project to the target4166 when the path exists in the diff4167 disables diff notes4168 only renders the diffs for the path given4169 when the path does not exist in the diff4170 returns a 4044171 GET #branch_to4172 fetches the commit if a user has access4173 does not load the commit when the user cannot create_merge_request_in4174 does not load the commit when the user cannot read the project4175 no target_project_id provided4176 selects itself as a target project4177 project is a fork4178 calls to project defaults to selects a correct target project4179 POST create4180 creates merge request4181 when the merge request is not created from the web ide4182 counter is not increased4183 when the merge request is created from the web ide4184 counter is increased4185 GET target_projects4186 returns target projects JSON4187API::GroupLabels4188 GET :id/labels4189 get current group labels4190 behaves like fetches labels4191 returns correct labels4192 when search param is provided4193 behaves like fetches labels4194 returns correct labels4195 and is subscribed4196 returns true4197 and is unsubscribed4198 returns false4199 when the with_counts parameter is set4200 includes counts in the response4201 when include_descendant_groups param is provided4202 behaves like fetches labels4203 returns correct labels4204 when search param is provided4205 behaves like fetches labels4206 returns correct labels4207 when only_group_labels param is false4208 behaves like fetches labels4209 returns correct labels4210 when search param is provided4211 behaves like fetches labels4212 returns correct labels4213 with subgroup labels4214 when the include_ancestor_groups parameter is not set4215 behaves like fetches labels4216 returns correct labels4217 when search param is provided4218 behaves like fetches labels4219 returns correct labels4220 when the include_ancestor_groups parameter is set to false4221 behaves like fetches labels4222 returns correct labels4223 when search param is provided4224 behaves like fetches labels4225 returns correct labels4226 GET :id/labels/:label_id4227 returns a single label for the group4228 POST /groups/:id/labels4229 returns created label when all params are given4230 returns created label when only required params are given4231 returns a 400 bad request if name not given4232 returns a 400 bad request if color is not given4233 returns 409 if label already exists4234 DELETE /groups/:id/labels (deprecated)4235 returns 204 for existing label4236 returns 404 for non existing label4237 returns 400 for wrong parameters4238 does not delete parent's group labels4239 behaves like 412 response4240 for a modified resource4241 returns 412 with a JSON error4242 for an unmodified resource4243 returns 204 with an empty body4244 DELETE /groups/:id/labels/:label_id4245 returns 204 for existing label4246 returns 404 for non existing label4247 does not delete parent's group labels4248 behaves like 412 response4249 for a modified resource4250 returns 412 with a JSON error4251 for an unmodified resource4252 returns 204 with an empty body4253 PUT /groups/:id/labels (deprecated)4254 returns 200 if name and colors and description are changed4255 does not update parent's group label4256 returns 404 if label does not exist4257 returns 400 if no label name given4258 returns 400 if no new parameters given4259 PUT /groups/:id/labels/:label_id4260 returns 200 if name and colors and description are changed4261 does not update parent's group label4262 returns 404 if label does not exist4263 returns 400 if no new parameters given4264 POST /groups/:id/labels/:label_id/subscribe4265 when label_id is a label title4266 subscribes to the label4267 when label_id is a label ID4268 subscribes to the label4269 when user is already subscribed to label4270 returns 3044271 when label ID is not found4272 returns 404 error4273 POST /groups/:id/labels/:label_id/unsubscribe4274 when label_id is a label title4275 unsubscribes from the label4276 when label_id is a label ID4277 unsubscribes from the label4278 when user is already unsubscribed from label4279 returns 3044280 when label ID is not found4281 returns 404 error4282API::Terraform::StateVersion4283 GET /projects/:id/terraform/state/:name/versions/:serial4284 behaves like it depends on value of the `terraform_state.enabled` config4285 when terraform_state.enabled=false4286 returns `forbidden` response4287 when terraform_state.enabled=true4288 returns a successful response4289 with invalid authentication4290 returns unauthorized status4291 with no authentication4292 returns unauthorized status4293 personal acceess token authentication4294 with maintainer permissions4295 returns the state contents at the given version4296 for a project that does not exist4297 returns not found status4298 with developer permissions4299 returns the state contents at the given version4300 with no permissions4301 returns not found status4302 job token authentication4303 with maintainer permissions4304 returns the state contents at the given version4305 returns unauthorized status if the the job is not running4306 for a project that does not exist4307 returns not found status4308 with developer permissions4309 returns the state contents at the given version4310 with no permissions4311 returns not found status4312 DELETE /projects/:id/terraform/state/:name/versions/:serial4313 behaves like it depends on value of the `terraform_state.enabled` config4314 when terraform_state.enabled=false4315 returns `forbidden` response4316 when terraform_state.enabled=true4317 returns a successful response4318 with invalid authentication4319 returns unauthorized status4320 with no authentication4321 returns unauthorized status4322 with maintainer permissions4323 deletes the version4324 version does not exist4325 does not delete a version4326 with developer permissions4327 returns forbidden status4328 with no permissions4329 returns not found status4330API::PersonalAccessTokens4331 GET /personal_access_tokens4332 logged in as an Administrator4333 returns all PATs by default4334 filtered with user_id parameter4335 returns only PATs belonging to that user4336 filter with revoked parameter4337 revoked: true, status: :ok, result_count: 1, result: lazy { [revoked_token.id] }4338 behaves like response as expected4339 status, count and result as expected4340 revoked: false, status: :ok, result_count: 3, result: lazy { [not_revoked_token1.id, not_revoked_token2.id, current_users_token.id] }4341 behaves like response as expected4342 status, count and result as expected4343 revoked: "asdf", status: :bad_request, result_count: 1, result: {"error"=>"revoked is invalid"}4344 behaves like response as expected4345 status, count and result as expected4346 filter with active parameter4347 state: "inactive", status: :ok, result_count: 2, result: lazy { [inactive_token1.id, inactive_token2.id] }4348 behaves like response as expected4349 status, count and result as expected4350 state: "active", status: :ok, result_count: 2, result: lazy { [active_token.id, current_users_token.id] }4351 behaves like response as expected4352 status, count and result as expected4353 state: "asdf", status: :bad_request, result_count: 1, result: {"error"=>"state does not have a valid value"}4354 behaves like response as expected4355 status, count and result as expected4356 filter with created parameter4357 test created_before4358 created_at: "2022-01-02", status: :ok, result_count: 1, result: lazy { [token1.id] }4359 behaves like response as expected4360 status, count and result as expected4361 created_at: "2022-01-01", status: :ok, result_count: 0, result: lazy { [] }4362 behaves like response as expected4363 status, count and result as expected4364 created_at: "2022-01-01T12:30:24", status: :ok, result_count: 0, result: lazy { [] }4365 behaves like response as expected4366 status, count and result as expected4367 created_at: "2022-01-01T12:30:25", status: :ok, result_count: 1, result: lazy { [token1.id] }4368 behaves like response as expected4369 status, count and result as expected4370 created_at: "2022-01-01T:12:30:26", status: :ok, result_count: 1, result: lazy { [token1.id] }4371 behaves like response as expected4372 status, count and result as expected4373 created_at: "asdf", status: :bad_request, result_count: 1, result: {"error"=>"created_before is invalid"}4374 behaves like response as expected4375 status, count and result as expected4376 test created_after4377 created_at: "2022-01-03", status: :ok, result_count: 1, result: lazy { [current_users_token.id] }4378 behaves like response as expected4379 status, count and result as expected4380 created_at: "2022-01-01", status: :ok, result_count: 2, result: lazy { [token1.id, current_users_token.id] }4381 behaves like response as expected4382 status, count and result as expected4383 created_at: "2022-01-01T12:30:25", status: :ok, result_count: 2, result: lazy { [token1.id, current_users_token.id] }4384 behaves like response as expected4385 status, count and result as expected4386 created_at: "2022-01-01T12:30:26", status: :ok, result_count: 1, result: lazy { [current_users_token.id] }4387 behaves like response as expected4388 status, count and result as expected4389 created_at: "2023-06-09T19:41:18+00:00", status: :ok, result_count: 0, result: lazy { [] }4390 behaves like response as expected4391 status, count and result as expected4392 created_at: "asdf", status: :bad_request, result_count: 1, result: {"error"=>"created_after is invalid"}4393 behaves like response as expected4394 status, count and result as expected4395 filter with last_used parameter4396 test last_used_before4397 last_used_at: "2022-01-02", status: :ok, result_count: 1, result: lazy { [token1.id] }4398 behaves like response as expected4399 status, count and result as expected4400 last_used_at: "2022-01-01", status: :ok, result_count: 0, result: lazy { [] }4401 behaves like response as expected4402 status, count and result as expected4403 last_used_at: "2022-01-01T12:30:24", status: :ok, result_count: 0, result: lazy { [] }4404 behaves like response as expected4405 status, count and result as expected4406 last_used_at: "2022-01-01T12:30:25", status: :ok, result_count: 1, result: lazy { [token1.id] }4407 behaves like response as expected4408 status, count and result as expected4409 last_used_at: "2022-01-01T12:30:26", status: :ok, result_count: 1, result: lazy { [token1.id] }4410 behaves like response as expected4411 status, count and result as expected4412 last_used_at: "asdf", status: :bad_request, result_count: 1, result: {"error"=>"last_used_before is invalid"}4413 behaves like response as expected4414 status, count and result as expected4415 test last_used_after4416 last_used_at: "2022-01-03", status: :ok, result_count: 1, result: lazy { [current_users_token.id] }4417 behaves like response as expected4418 status, count and result as expected4419 last_used_at: "2022-01-01", status: :ok, result_count: 2, result: lazy { [token1.id, current_users_token.id] }4420 behaves like response as expected4421 status, count and result as expected4422 last_used_at: "2022-01-01T12:30:26", status: :ok, result_count: 1, result: lazy { [current_users_token.id] }4423 behaves like response as expected4424 status, count and result as expected4425 last_used_at: "2022-01-01T12:30:25", status: :ok, result_count: 2, result: lazy { [token1.id, current_users_token.id] }4426 behaves like response as expected4427 status, count and result as expected4428 last_used_at: "2023-06-09T19:41:18+00:00", status: :ok, result_count: 0, result: lazy { [] }4429 behaves like response as expected4430 status, count and result as expected4431 last_used_at: "asdf", status: :bad_request, result_count: 1, result: {"error"=>"last_used_after is invalid"}4432 behaves like response as expected4433 status, count and result as expected4434 filter with search parameter4435 pattern: "test", status: :ok, result_count: 2, result: lazy { [token1.id, token2.id] }4436 behaves like response as expected4437 status, count and result as expected4438 pattern: "", status: :ok, result_count: 4, result: lazy { [token1.id, token2.id, token3.id, current_users_token.id] }4439 behaves like response as expected4440 status, count and result as expected4441 pattern: "test_1", status: :ok, result_count: 1, result: lazy { [token1.id] }4442 behaves like response as expected4443 status, count and result as expected4444 pattern: "asdf", status: :ok, result_count: 0, result: lazy { [] }4445 behaves like response as expected4446 status, count and result as expected4447 filter created_before/created_after combined with last_used_before/last_used_after4448 date_before: "2022-01-03", date_after: "2022-01-01", status: :ok, result_count: 1, result: lazy { [token1.id] }4449 behaves like response as expected4450 status, count and result as expected4451 behaves like response as expected4452 status, count and result as expected4453 date_before: "2022-01-01", date_after: "2022-01-03", status: :ok, result_count: 0, result: lazy { [] }4454 behaves like response as expected4455 status, count and result as expected4456 behaves like response as expected4457 status, count and result as expected4458 date_before: "2022-01-03", date_after: nil, status: :ok, result_count: 1, result: lazy { [token1.id] }4459 behaves like response as expected4460 status, count and result as expected4461 behaves like response as expected4462 status, count and result as expected4463 date_before: nil, date_after: "2022-01-01", status: :ok, result_count: 2, result: lazy { [token1.id, current_users_token.id] }4464 behaves like response as expected4465 status, count and result as expected4466 behaves like response as expected4467 status, count and result as expected4468 filter created_before and created_after combined is valid4469 created_before: "2022-01-02", created_after: "2022-01-02", status: :ok, result: lazy { [token1.id] }4470 returns all valid tokens4471 created_before: "2022-01-03", created_after: "2022-01-01", status: :ok, result: lazy { [token1.id] }4472 returns all valid tokens4473 created_before: "2022-01-01", created_after: "2022-01-03", status: :ok, result: lazy { [] }4474 returns all valid tokens4475 created_before: "2022-01-03", created_after: nil, status: :ok, result: lazy { [token1.id] }4476 returns all valid tokens4477 created_before: nil, created_after: "2022-01-01", status: :ok, result: lazy { [token1.id] }4478 returns all valid tokens4479 filter last_used_before and last_used_after combined is valid4480 last_used_before: "2022-01-02", last_used_after: "2022-01-02", status: :ok, result: lazy { [token1.id] }4481 returns all valid tokens4482 last_used_before: "2022-01-03", last_used_after: "2022-01-01", status: :ok, result: lazy { [token1.id] }4483 returns all valid tokens4484 last_used_before: "2022-01-01", last_used_after: "2022-01-03", status: :ok, result: lazy { [] }4485 returns all valid tokens4486 last_used_before: "2022-01-03", last_used_after: nil, status: :ok, result: lazy { [token1.id] }4487 returns all valid tokens4488 last_used_before: nil, last_used_after: "2022-01-01", status: :ok, result: lazy { [token1.id] }4489 returns all valid tokens4490 logged in as a non-Administrator4491 returns all PATs belonging to the signed-in user4492 filtered with user_id parameter4493 returns PATs belonging to the specific user4494 is unauthorized if filtered by a user other than current_user4495 filter with revoked parameter4496 revoked: true, status: :ok, result_count: 1, result: lazy { [users_revoked_token.id] }4497 behaves like response as expected4498 status, count and result as expected4499 revoked: false, status: :ok, result_count: 1, result: lazy { [current_users_token.id] }4500 behaves like response as expected4501 status, count and result as expected4502 filter with active parameter4503 state: "inactive", status: :ok, result_count: 1, result: lazy { [users_inactive_token.id] }4504 behaves like response as expected4505 status, count and result as expected4506 state: "active", status: :ok, result_count: 1, result: lazy { [current_users_token.id] }4507 behaves like response as expected4508 status, count and result as expected4509 filter with created parameter4510 created_before4511 behaves like response as expected4512 status, count and result as expected4513 created_after4514 behaves like response as expected4515 status, count and result as expected4516 filter with last_used4517 last_used_before4518 behaves like response as expected4519 status, count and result as expected4520 last_used_after4521 behaves like response as expected4522 status, count and result as expected4523 filter with search parameter4524 pattern: "test", status: :ok, result_count: 1, result: lazy { [token1.id] }4525 behaves like response as expected4526 status, count and result as expected4527 pattern: "", status: :ok, result_count: 2, result: lazy { [token1.id, current_users_token.id] }4528 behaves like response as expected4529 status, count and result as expected4530 pattern: "test_1", status: :ok, result_count: 1, result: lazy { [token1.id] }4531 behaves like response as expected4532 status, count and result as expected4533 not authenticated4534 is forbidden4535 GET /personal_access_tokens/:id4536 when current_user is an administrator4537 returns admins own PAT by id4538 returns a different users PAT by id4539 fails to return PAT because no PAT exists with this id4540 when current_user is not an administrator4541 returns users own PAT by id4542 fails to return other users PAT by id4543 fails to return PAT because no PAT exists with this id4544 fails to return own PAT by id with read_repository token4545 POST /personal_access_tokens/:id/rotate4546 rotates user's own token4547 without permission4548 returns an error message4549 when service raises an error4550 returns the same error message4551 when token does not exist4552 for non-admin user4553 returns unauthorized4554 for admin user4555 returns not found4556 DELETE /personal_access_tokens/:id4557 when current_user is an administrator4558 revokes a different users token4559 revokes their own token4560 fails to revoke a different user token using a readonly scope4561 when current_user is not an administrator4562 fails revokes a different users token4563 revokes their own token4564 cannot revoke impersonation token4565Projects::MergeRequestsController4566 GET #show4567 when logged in4568 behaves like observability csp policy4569 when there is no CSP config4570 does not add any csp header4571 when observability is disabled4572 does not add observability urls to the csp header4573 when frame-src exists in the CSP config4574 appends the proper url to frame-src CSP directives4575 when signin is already present in the policy4576 does not append signin again4577 when oauth is already present in the policy4578 does not append oauth again4579 when default-src exists in the CSP config4580 does not change default-src4581 appends the proper url to frame-src CSP directives4582 when frame-src and default-src exist in the CSP config4583 appends to frame-src CSP directives4584 when the author of the merge request is banned4585 is expected to respond with numeric status code not_found4586 GET #index4587 behaves like rate limited endpoint4588 when rate limiter enabled4589 logs request and declines it when endpoint called more than the threshold4590 when rate limiter is disabled4591 does not log request and does not block the request4592 behaves like rate limited endpoint4593 when rate limiter enabled4594 logs request and declines it when endpoint called more than the threshold4595 when rate limiter is disabled4596 does not log request and does not block the request4597 GET #discussions4598 pagination4599 returns paginated notes and cursor based on per_page param4600 token authentication4601 when public project4602 behaves like authenticates sessionless user for the request spec4603 index atom4604 when the 'private_token' param is populated with the personal access token4605 when valid token4606 when resource is public4607 authenticates user and returns response with ok status4608 when user with expired password4609 does not authenticate user and returns response with ok status4610 when the personal access token has no api scope4611 when resource is public4612 does not authenticate user and returns response with ok status4613 when invalid token4614 when resource is public4615 does not authenticate user and returns response with ok status4616 when the 'PRIVATE-TOKEN' header is populated with the personal access token4617 when valid token4618 when resource is public4619 authenticates user and returns response with ok status4620 when user with expired password4621 does not authenticate user and returns response with ok status4622 when the personal access token has no api scope4623 when resource is public4624 does not authenticate user and returns response with ok status4625 when invalid token4626 when resource is public4627 does not authenticate user and returns response with ok status4628 when the 'feed_token' param is populated with the feed token4629 when valid token4630 when resource is public4631 authenticates user and returns response with ok status4632 when user with expired password4633 does not authenticate user and returns response with ok status4634 when invalid token4635 when resource is public4636 does not authenticate user and returns response with ok status4637 when private project4638 behaves like authenticates sessionless user for the request spec4639 index atom4640 when the 'private_token' param is populated with the personal access token4641 when valid token4642 when resource is private4643 authenticates user and returns response with ok status4644 when user with expired password4645 does not return response with ok status4646 when password expiration is not applicable4647 when ldap user4648 authenticates user and returns response with ok status4649 when the personal access token has no api scope4650 when resource is private4651 does not return response with ok status4652 when invalid token4653 when resource is private4654 does not return response with ok status4655 when the 'PRIVATE-TOKEN' header is populated with the personal access token4656 when valid token4657 when resource is private4658 authenticates user and returns response with ok status4659 when user with expired password4660 does not return response with ok status4661 when password expiration is not applicable4662 when ldap user4663 authenticates user and returns response with ok status4664 when the personal access token has no api scope4665 when resource is private4666 does not return response with ok status4667 when invalid token4668 when resource is private4669 does not return response with ok status4670 when the 'feed_token' param is populated with the feed token4671 when valid token4672 when resource is private4673 authenticates user and returns response with ok status4674 when user with expired password4675 does not return response with ok status4676 when password expiration is not applicable4677 when ldap user4678 authenticates user and returns response with ok status4679 when invalid token4680 when resource is private4681 does not return response with ok status4682Projects::MergeRequests::ConflictsController4683 GET show4684 when the request is html4685 does tracks the resolve call4686 when the conflicts cannot be resolved in the UI4687 returns a 200 status code4688 returns JSON with a message4689 does not track the resolve call4690 with valid conflicts4691 matches the schema4692 includes meta info about the MR4693 includes each file that has conflicts4694 splits files into sections with lines4695 has unique section IDs across files4696 GET conflict_for_path4697 when the conflicts cannot be resolved in the UI4698 returns a 404 status code4699 when the file does not exist cannot be resolved in the UI4700 returns a 404 status code4701 with an existing file4702 returns a 200 and the file in JSON format4703 POST resolve_conflicts4704 with valid params4705 handles the success case4706 when sections are missing4707 handles the error case4708 when files are missing4709 handles the error case4710 when a file has identical content to the conflict4711 handles the error case4712Query.project(fullPath).releases()4713 ensures that the correct data is returned based on the project's visibility and the user's access level4714 when the project is private4715 when the user is not logged in4716 behaves like no access to any release data4717 returns nil4718 when the user has Guest permissions4719 behaves like no access to any repository-related fields4720 repository-related fields4721 does not return data for fields that expose repository information4722 behaves like correct total count4723 returns the total count4724 when the user has Reporter permissions4725 behaves like full access to all repository-related fields4726 repository-related fields4727 returns data for fields that are protected in private projects4728 behaves like correct total count4729 returns the total count4730 behaves like when there are no releases4731 returns an empty array4732 behaves like no access to editUrl4733 does not return editUrl4734 when the user has Developer permissions4735 behaves like full access to all repository-related fields4736 repository-related fields4737 returns data for fields that are protected in private projects4738 behaves like correct total count4739 returns the total count4740 behaves like when there are no releases4741 returns an empty array4742 behaves like access to editUrl4743 returns editUrl4744 when the project is public4745 when the user is not logged in4746 behaves like full access to all repository-related fields4747 repository-related fields4748 returns data for fields that are protected in private projects4749 behaves like correct total count4750 returns the total count4751 behaves like when there are no releases4752 returns an empty array4753 behaves like no access to editUrl4754 does not return editUrl4755 when the user has Guest permissions4756 behaves like full access to all repository-related fields4757 repository-related fields4758 returns data for fields that are protected in private projects4759 behaves like correct total count4760 returns the total count4761 behaves like when there are no releases4762 returns an empty array4763 behaves like no access to editUrl4764 does not return editUrl4765 when the user has Reporter permissions4766 behaves like full access to all repository-related fields4767 repository-related fields4768 returns data for fields that are protected in private projects4769 behaves like correct total count4770 returns the total count4771 behaves like when there are no releases4772 returns an empty array4773 behaves like no access to editUrl4774 does not return editUrl4775 when the user has Developer permissions4776 behaves like full access to all repository-related fields4777 repository-related fields4778 returns data for fields that are protected in private projects4779 behaves like correct total count4780 returns the total count4781 behaves like when there are no releases4782 returns an empty array4783 behaves like access to editUrl4784 returns editUrl4785 sorting and pagination4786 when sorting by released_at4787 when ascending4788 behaves like sorted paginated query4789 behaves like requires variables4790 shared example requires variables to be set4792 when sorting4793 sorts correctly4794 when paginating4795 paginates correctly4796 when descending4797 behaves like sorted paginated query4798 behaves like requires variables4799 shared example requires variables to be set4801 when sorting4802 sorts correctly4803 when paginating4804 paginates correctly4805 when sorting by created_at4806 when ascending4807 behaves like sorted paginated query4808 behaves like requires variables4809 shared example requires variables to be set4811 when sorting4812 sorts correctly4813 when paginating4814 paginates correctly4815 when descending4816 behaves like sorted paginated query4817 behaves like requires variables4818 shared example requires variables to be set4820 when sorting4821 sorts correctly4822 when paginating4823 paginates correctly4824Projects::ArtifactsController4825 GET index4826 renders the page with data for the artifacts app4827 DELETE destroy4828 deletes the artifact4829 redirects to artifacts index page4830 sets the notice4831 when artifact deletion fails4832 redirects to artifacts index page4833 sets the notice4834 when user is not authorized4835 does not delete the artifact4836 GET download4837 when no file type is supplied4838 sends the artifacts file4839 when artifact is set as private4840 and user is not authoirized4841 returns forbidden4842 and user has access to project4843 downloads4844 when a file type is supplied4845 when an invalid file type is supplied4846 returns 4044847 when codequality file type is supplied4848 when file is stored locally4849 sends the codequality report4850 when file is stored remotely4851 sends the codequality report4852 when proxied4853 sends the codequality report4854 when Google CDN is configured4855 redirects to a Google CDN request4856 when downloading a debug trace4857 when the user does not have update_build permissions4858 denies the user access4859 when the user has update_build permissions4860 sends the trace4861 GET browse4862 when the directory exists4863 renders the browse view4864 when the directory does not exist4865 responds Not Found4866 GET external_file4867 when the file exists4868 renders the file view4869 when the file does not exist4870 responds Not Found4871 GET file4872 when the file is served by GitLab Pages4873 when the file exists4874 renders the file view4875 when the file is served through Rails4876 when the file exists4877 renders the file view4878 when the file does not exist4879 responds Not Found4880 when the project is private4881 does not redirect the request4882 when the project is private and pages access control is enabled4883 renders the file view4884 GET raw4885 when the file exists4886 when using local file storage4887 behaves like a valid file4888 serves the file using workhorse4889 when using remote file storage4890 behaves like a valid file4891 serves the file using workhorse4892 when artifacts archive is missing4893 returns 4044894 fetching an artifact of different type4895 when the artifact is zip4896 behaves like a valid file4897 serves the file using workhorse4898 when the artifact is not zip4899 responds with not found4900 GET latest_succeeded4901 cannot find the job4902 has no such ref4903 behaves like not found4904 is expected to respond with numeric status code not_found4905 has no such job4906 behaves like not found4907 is expected to respond with numeric status code not_found4908 has no path4909 behaves like not found4910 is expected to respond with numeric status code not_found4911 found the job and redirect4912 with regular branch4913 behaves like redirect to the job4914 redirects4915 with branch name containing slash4916 behaves like redirect to the job4917 redirects4918 with branch name and path containing slashes4919 redirects4920 with a failed pipeline on an updated master4921 behaves like redirect to the job4922 redirects4923API::FreezePeriods4924 GET /projects/:id/freeze_periods4925 behaves like GET request permissions for admin mode4926 behaves like when admin4927 behaves like makes request4928 returns4929 behaves like makes request4930 returns4931 behaves like when user4932 returns4933 behaves like makes request4934 returns4935 when the user is the admin4936 returns 200 HTTP status4937 when the user is the maintainer4938 when there are two freeze_periods4939 returns 200 HTTP status4940 returns freeze_periods ordered by created_at ascending4941 matches response schema4942 when there are no freeze_periods4943 returns 200 HTTP status4944 returns an empty response4945 when user is a guest4946 responds 403 Forbidden4947 when user is not a project member4948 responds 404 Not Found4949 when project is public4950 responds 403 Forbidden4951 GET /projects/:id/freeze_periods/:freeze_period_id4952 behaves like GET request permissions for admin mode4953 behaves like when admin4954 behaves like makes request4955 returns4956 behaves like makes request4957 returns4958 behaves like when user4959 returns4960 behaves like makes request4961 returns4962 when there is a freeze period4963 when the user is the admin4964 responds 200 OK4965 when the user is the maintainer4966 responds 200 OK4967 returns a freeze period4968 matches response schema4969 when user is a guest4970 responds 403 Forbidden4971 when project is public4972 when freeze_period exists4973 responds 403 Forbidden4974 when freeze_period does not exist4975 responds 403 Forbidden4976 POST /projects/:id/freeze_periods4977 behaves like POST request permissions for admin mode4978 behaves like when admin4979 behaves like makes request4980 returns4981 behaves like makes request4982 returns4983 behaves like when user4984 returns4985 behaves like makes request4986 returns4987 when the user is the admin4988 accepts the request4989 when user is the maintainer4990 with valid params4991 accepts the request4992 creates a new freeze period4993 matches response schema4994 with incomplete params4995 responds 400 Bad Request4996 with invalid params4997 responds 400 Bad Request4998 when user is a developer4999 responds 403 Forbidden5000 when user is a reporter5001 responds 403 Forbidden5002 when user is not a project member5003 responds 403 Forbidden5004 when project is public5005 responds 403 Forbidden5006 PUT /projects/:id/freeze_periods/:freeze_period_id5007 when user is the admin5008 accepts the request5009 when user is the maintainer5010 with valid params5011 accepts the request5012 performs the update5013 matches response schema5014 with invalid params5015 responds 400 Bad Request5016 when user is a reporter5017 responds 403 Forbidden5018 when user is not a project member5019 responds 404 Not Found5020 when project is public5021 responds 403 Forbidden5022 DELETE /projects/:id/freeze_periods/:freeze_period_id5023 when user is the admin5024 accepts the request5025 when user is the maintainer5026 accepts the request5027 destroys the freeze period5028 when it is a non-existing freeze period id5029 4045030 when user is a reporter5031 responds 403 Forbidden5032 when user is not a project member5033 responds 404 Not Found5034 when project is public5035 responds 403 Forbidden5036API::Events5037 GET /events5038 when unauthenticated5039 returns authentication error5040 when authenticated5041 returns users events5042 when scope is passed5043 returns all events across projects5044 when the requesting token has "read_user" scope5045 returns users events5046 returns "200" response on head request5047 when the requesting token does not have "read_user" or "api" scope5048 returns a "403" response5049 GET /users/:id/events5050 returns a 404 error if not found5051 as a user that cannot see another user5052 returns a "404" response5053 as a user token that cannot see another user5054 returns a "404" response5055 as a user that can see the event's project5056 accepts a username5057 returns the events5058 when the list of events includes wiki page events5059 returns information about the wiki event5060 when the list of events includes push events5061 responds with HTTP 200 OK5062 includes the push payload as a Hash5063 includes the push payload details5064 when there are multiple events from different projects5065 returns events in the correct order (from newest to oldest)5066 accepts filter parameters5067 when target users profile is private5068 returns no events5069 when scope is passed5070 when unauthenticated5071 returns no user events5072Projects::TagsController5073 GET index5074 returns the tags for the page5075 returns releases matching those tags5076 default sort for tags5077 sorts tags by recently updated5078 when Gitaly is unavailable5079 format: :html5080 returns 503 status code5081 format: :atom5082 returns 503 status code5083 @tag_pipeline_status5084 when no pipelines exist5085 is empty5086 when multiple tags exist5087 all relevant commit statuses are received5088 when a tag has multiple pipelines5089 chooses the latest to determine status5090 GET show5091 valid tag5092 is expected to respond with 2005093 invalid tag5094 is expected to respond with 4045095 POST #create5096 creates tag5097 when release description is set5098 creates tag and release5099 passes the last pipeline for evidence creation5100 DELETE #destroy5101 deletes tag and redirects to tags path5102API::Unleash5103 GET /feature_flags/unleash/:project_id/client/features5104 is expected to have request urgency :medium5105 GET /feature_flags/unleash/:project_id/features5106 behaves like authenticated request5107 when using instance id5108 responds with OK5109 when repository is disabled5110 responds with forbidden5111 when repository is private5112 responds with OK5113 when using header5114 responds with OK5115 when using bogus instance id5116 responds with unauthorized5117 when using not existing project5118 responds with unauthorized5119 when a client fetches feature flags several times5120 serializes feature flags for the first time and read cached data from the second time5121 increments the cache key when feature flags are modified5122 with version 2 feature flags5123 does not return a flag without any strategies5124 returns a flag with a default strategy5125 returns a flag with a userWithId strategy5126 returns a flag with multiple strategies5127 returns only flags matching the environment scope5128 returns only strategies matching the environment scope5129 returns only flags for the given project5130 returns all strategies with a matching scope5131 returns a strategy with more than one matching scope5132 returns a disabled flag with a matching scope5133 returns a userWithId strategy for a gitlabUserList strategy5134 GET /feature_flags/unleash/:project_id/client/features5135 behaves like authenticated request5136 when using instance id5137 responds with OK5138 when repository is disabled5139 responds with forbidden5140 when repository is private5141 responds with OK5142 when using header5143 responds with OK5144 when using bogus instance id5145 responds with unauthorized5146 when using not existing project5147 responds with unauthorized5148 when a client fetches feature flags several times5149 serializes feature flags for the first time and read cached data from the second time5150 increments the cache key when feature flags are modified5151 with version 2 feature flags5152 does not return a flag without any strategies5153 returns a flag with a default strategy5154 returns a flag with a userWithId strategy5155 returns a flag with multiple strategies5156 returns only flags matching the environment scope5157 returns only strategies matching the environment scope5158 returns only flags for the given project5159 returns all strategies with a matching scope5160 returns a strategy with more than one matching scope5161 returns a disabled flag with a matching scope5162 returns a userWithId strategy for a gitlabUserList strategy5163 POST /feature_flags/unleash/:project_id/client/register5164 behaves like authenticated request5165 when using instance id5166 responds with OK5167 when repository is disabled5168 responds with forbidden5169 when repository is private5170 responds with OK5171 when using header5172 responds with OK5173 when using bogus instance id5174 responds with unauthorized5175 when using not existing project5176 responds with unauthorized5177 POST /feature_flags/unleash/:project_id/client/metrics5178 behaves like authenticated request5179 when using instance id5180 responds with OK5181 when repository is disabled5182 responds with forbidden5183 when repository is private5184 responds with OK5185 when using header5186 responds with OK5187 when using bogus instance id5188 responds with unauthorized5189 when using not existing project5190 responds with unauthorized5191Dashboard::ProjectsController5192 #index5193 user logged in5194 orders the projects by name by default5195 assigns the correct all_user_projects5196 assigns the correct all_starred_projects5197 external authorization5198 works when the external authorization service is enabled5199 project sorting5200 behaves like set sort order from user preference5201 #set_sort_order_from_user_preference5202 when database is in read-only mode5203 does not update user preference5204 when database is not in read-only mode5205 updates user preference5206 with search and sort parameters5207 behaves like search and sort parameters5208 returns a single project with no ambiguous column errors5209 behaves like search and sort parameters5210 returns a single project with no ambiguous column errors5211 behaves like search and sort parameters5212 returns a single project with no ambiguous column errors5213 behaves like search and sort parameters5214 returns a single project with no ambiguous column errors5215 behaves like search and sort parameters5216 returns a single project with no ambiguous column errors5217 with archived project5218 does not display archived project5219 excludes archived project from all_user_projects5220 excludes archived project from all_starred_projects5221 with deleted project5222 does not display deleted project5223 json requests5224 GET /projects.json5225 is expected to respond with 2005226 GET /starred.json5227 returns success5228 does not include projects aimed for deletion5229 pagination5230 paginates the records5231 atom requests5232 #index5233 project pagination5234 does not paginate projects, even if normally restricted by pagination5235 rendering5236 renders all kinds of event without error5237 with deleted project5238 does not display deleted project5239Projects::CommitsController5240 token authentication5241 when public project5242 behaves like authenticates sessionless user for the request spec5243 show atom5244 when the 'private_token' param is populated with the personal access token5245 when valid token5246 when resource is public5247 authenticates user and returns response with ok status5248 when user with expired password5249 does not authenticate user and returns response with ok status5250 when the personal access token has no api scope5251 when resource is public5252 does not authenticate user and returns response with ok status5253 when invalid token5254 when resource is public5255 does not authenticate user and returns response with ok status5256 when the 'PRIVATE-TOKEN' header is populated with the personal access token5257 when valid token5258 when resource is public5259 authenticates user and returns response with ok status5260 when user with expired password5261 does not authenticate user and returns response with ok status5262 when the personal access token has no api scope5263 when resource is public5264 does not authenticate user and returns response with ok status5265 when invalid token5266 when resource is public5267 does not authenticate user and returns response with ok status5268 when the 'feed_token' param is populated with the feed token5269 when valid token5270 when resource is public5271 authenticates user and returns response with ok status5272 when user with expired password5273 does not authenticate user and returns response with ok status5274 when invalid token5275 when resource is public5276 does not authenticate user and returns response with ok status5277 when private project5278 behaves like authenticates sessionless user for the request spec5279 show atom5280 when the 'private_token' param is populated with the personal access token5281 when valid token5282 when resource is private5283 authenticates user and returns response with ok status5284 when user with expired password5285 does not return response with ok status5286 when password expiration is not applicable5287 when ldap user5288 authenticates user and returns response with ok status5289 when the personal access token has no api scope5290 when resource is private5291 does not return response with ok status5292 when invalid token5293 when resource is private5294 does not return response with ok status5295 when the 'PRIVATE-TOKEN' header is populated with the personal access token5296 when valid token5297 when resource is private5298 authenticates user and returns response with ok status5299 when user with expired password5300 does not return response with ok status5301 when password expiration is not applicable5302 when ldap user5303 authenticates user and returns response with ok status5304 when the personal access token has no api scope5305 when resource is private5306 does not return response with ok status5307 when invalid token5308 when resource is private5309 does not return response with ok status5310 when the 'feed_token' param is populated with the feed token5311 when valid token5312 when resource is private5313 authenticates user and returns response with ok status5314 when user with expired password5315 does not return response with ok status5316 when password expiration is not applicable5317 when ldap user5318 authenticates user and returns response with ok status5319 when invalid token5320 when resource is private5321 does not return response with ok status5322Toggling an AwardEmoji5323 when the user has permission5324 when the given awardable is not an Awardable5325 behaves like a mutation that does not create or destroy an AwardEmoji5326 is expected not to change `AwardEmoji.count`5327 behaves like a mutation that returns top-level errors5328 is expected to include /was provided invalid value for awardableId/5329 when the given awardable is an Awardable but still cannot be awarded an emoji5330 behaves like a mutation that does not create or destroy an AwardEmoji5331 is expected not to change `AwardEmoji.count`5332 behaves like a mutation that returns top-level errors5333 is expected to contain exactly "You cannot award emoji to this resource."5334 when the given awardable is an Awardable5335 when no emoji has been awarded by the current_user yet5336 creates an emoji5337 returns the emoji5338 returns toggledOn as true5339 marking Todos as done5340 type: :issue, expectation: true5341 is expected to eq true5342 type: :merge_request, expectation: true5343 is expected to eq true5344 type: :project_snippet, expectation: false5345 is expected to eq false5346 for notes5347 regular Notes5348 marks the Todo as done5349 PersonalSnippet Notes5350 does not mark the Todo as done5351 when there were active record validation errors5352 returns an empty awardEmoji5353 behaves like a mutation that does not create or destroy an AwardEmoji5354 is expected not to change `AwardEmoji.count`5355 behaves like a mutation that returns errors in the response5356 is expected to contain exactly "Error 1" and "Error 2"5357 when an emoji has been awarded by the current_user5358 removes the emoji5359 returns no errors5360 returns an empty awardEmoji5361 returns toggledOn as false5362 when the user does not have permission5363 behaves like a mutation that does not create or destroy an AwardEmoji5364 is expected not to change `AwardEmoji.count`5365 behaves like a mutation that returns a top-level access error5366 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"5367API::FeatureFlagsUserLists5368 GET /projects/:id/feature_flags_user_lists5369 forbids the request for a reporter5370 returns forbidden if the feature is unavailable5371 returns all the user lists5372 returns all the data for a user list5373 paginates user lists5374 returns the user lists for only the specified project5375 returns an empty list5376 when filtering5377 returns lists matching the search term5378 returns lists matching multiple search terms5379 returns all lists with no query5380 GET /projects/:id/feature_flags_user_lists/:iid5381 forbids the request for a reporter5382 returns forbidden if the feature is unavailable5383 returns the user list5384 returns the correct user list identified by the iid5385 scopes the iid search to the project5386 returns not found when the list does not exist5387 POST /projects/:id/feature_flags_user_lists5388 forbids the request for a reporter5389 returns forbidden if the feature is unavailable5390 creates the flag5391 requires name5392 requires user_xids5393 returns an error when name is already taken5394 does not create a flag for a project of which the developer is not a member5395 PUT /projects/:id/feature_flags_user_lists/:iid5396 forbids the request for a reporter5397 returns forbidden if the feature is unavailable5398 updates the list5399 preserves attributes not listed in the request5400 returns an error when the update is invalid5401 returns not found when the list does not exist5402 DELETE /projects/:id/feature_flags_user_lists/:iid5403 forbids the request for a reporter5404 returns forbidden if the feature is unavailable5405 returns not found when the list does not exist5406 deletes the list5407 does not delete the list if it is associated with a strategy5408API::Admin::Ci::Variables5409 GET /admin/ci/variables5410 returns instance-level variables for admins5411 does not return instance-level variables for unauthorized users5412 behaves like GET request permissions for admin mode5413 behaves like when admin5414 behaves like makes request5415 returns5416 behaves like makes request5417 returns5418 behaves like when user5419 returns5420 behaves like makes request5421 returns5422 GET /admin/ci/variables/:key5423 returns instance-level variable details for admins5424 responds with 404 Not Found if requesting non-existing variable5425 does not return instance-level variable details for unauthorized users5426 behaves like GET request permissions for admin mode5427 behaves like when admin5428 behaves like makes request5429 returns5430 behaves like makes request5431 returns5432 behaves like when user5433 returns5434 behaves like makes request5435 returns5436 POST /admin/ci/variables5437 behaves like POST request permissions for admin mode5438 behaves like when admin5439 behaves like makes request5440 returns5441 behaves like makes request5442 returns5443 behaves like when user5444 returns5445 behaves like makes request5446 returns5447 authorized user with proper permissions5448 creates variable for admins5449 masks the new value when logging5450 creates variable with optional attributes5451 does not allow to duplicate variable key5452 does not allow values above 10,000 characters5453 unauthorized user5454 does not create variable5455 PUT /admin/ci/variables/:key5456 behaves like PUT request permissions for admin mode5457 behaves like when admin5458 behaves like makes request5459 returns5460 behaves like makes request5461 returns5462 behaves like when user5463 returns5464 behaves like makes request5465 returns5466 authorized user with proper permissions5467 updates variable data5468 masks the new value when logging5469 responds with 404 Not Found if requesting non-existing variable5470 unauthorized user5471 does not update variable5472 DELETE /admin/ci/variables/:key5473 behaves like DELETE request permissions for admin mode5474 behaves like when admin5475 behaves like makes request5476 returns5477 behaves like makes request5478 returns5479 behaves like when user5480 returns5481 behaves like makes request5482 returns5483 authorized user with proper permissions5484 deletes variable5485 responds with 404 Not Found if requesting non-existing variable5486 unauthorized user5487 does not delete variable5488getting project information5489 when the user has full access to the project5490 includes the project5491 when the user has access to the project5492 includes the project5493 includes inherited members in project_members5494 behaves like a working graphql query5495 returns a successful response5496 when there are pipelines present5497 is included in the pipelines connection5498 topics5499 includes empty topics array if no topics set5500 includes topics array5501 is_catalog_resource5502 when the project is not a catalog resource5503 is false5504 when the project is a catalog resource5505 is true5506 for N+1 queries with isCatalogResource5507 avoids N+1 database queries (PENDING: See: https://gitlab.com/gitlab-org/gitlab/-/issues/403634)5508 when the user has reporter access to the project5509 allows fetching project statistics5510 when the user has guest access5511 when the project has public pipelines5512 shows all jobs5513 when the user does not have access to the project5514 returns an empty field5515 behaves like a working graphql query5516 returns a successful response5517 with timelog categories5518 when user is guest and the project is public5519 includes empty timelog categories array5520 when user has reporter role5521 returns the timelog category with all its fields5522 when timelog_categories flag is disabled5523 returns no timelog categories5524 for N+1 queries5525 avoids N+1 database queries (PENDING: See: https://gitlab.com/gitlab-org/gitlab/-/issues/369396)5526Projects::IssueLinksController5527 GET /*namespace_id/:project_id/issues/:issue_id/links5528 returns JSON response5529 when linked issue is a task5530 returns a work item path for the linked task using the iid in the path5531 POST /*namespace_id/:project_id/issues/:issue_id/links5532 with success5533 returns success JSON5534 with failure5535 when unauthorized5536 returns 4035537 when failing service result5538 returns failure JSON5539 DELETE /*namespace_id/:project_id/issues/:issue_id/link/:id5540 when unauthorized5541 when no authorization on current project5542 returns 4035543 when no authorization on the related issue project5544 returns 4045545 when authorized5546 returns success JSON5547 when non of issues of the link is not the issue requested in the path5548 returns 4045549 does not delete the link5550API::Ci::Runner5551 /api/v4/jobs5552 PUT /api/v4/jobs/:id5553 updates runner info5554 behaves like API::CI::Runner application context metadata5555 contains correct context metadata5556 behaves like runner migrations backoff5557 when executing locking database migrations5558 returns 429 error5559 with runner_migrations_backoff disabled5560 does not return 4295561 when status is given5562 marks job as succeeded5563 marks job as failed5564 when runner sends an unrecognized field in a payload5565 ignores unrecognized fields5566 when an exit_code is provided5567 when the exit_codes are acceptable5568 accepts an exit code5569 when the exit_codes are not defined5570 ignore the exit code5571 when failure_reason is script_failure5572 is expected to be script failure5573 when failure_reason is runner_system_failure5574 is expected to be runner system failure5575 when failure_reason is unrecognized value5576 is expected to be unknown failure5577 when failure_reason is job_execution_timeout5578 is expected to be job execution timeout5579 when failure_reason is unmet_prerequisites5580 is expected to be unmet prerequisites5581 when unmigrated live trace chunks exist5582 when accepting trace feature is enabled5583 when checksum is present5584 when live trace chunk is still live5585 responds with 2025586 when runner retries request after receiving 2025587 responds with 202 and then with 2005588 when live trace chunk has been migrated5589 responds with 2005590 when checksum is not present5591 responds with 2005592 when job has been erased5593 responds with forbidden5594 when job has already been finished5595 does not update job status5596 when job does not exist anymore5597 returns 403 Forbidden5598getting dependency proxy blobs in a group5599 returns the total count of blobs5600 returns the total size5601 returns the total size in bytes5602 behaves like a working graphql query5603 returns a successful response5604 with different permissions5605 group_visibility: :private, role: :maintainer, access_granted: true5606 return the proper response5607 group_visibility: :private, role: :developer, access_granted: true5608 return the proper response5609 group_visibility: :private, role: :reporter, access_granted: true5610 return the proper response5611 group_visibility: :private, role: :guest, access_granted: true5612 return the proper response5613 group_visibility: :private, role: :anonymous, access_granted: false5614 return the proper response5615 group_visibility: :public, role: :maintainer, access_granted: true5616 return the proper response5617 group_visibility: :public, role: :developer, access_granted: true5618 return the proper response5619 group_visibility: :public, role: :reporter, access_granted: true5620 return the proper response5621 group_visibility: :public, role: :guest, access_granted: true5622 return the proper response5623 group_visibility: :public, role: :anonymous, access_granted: false5624 return the proper response5625 limiting the number of blobs5626 only returns N blobs5627getting notes for a merge request5628 behaves like exposing regular notes on a noteable in GraphQL5629 for regular notes5630 includes the note5631 avoids N+1 queries5632 behaves like a working graphql query5633 returns a successful response5634 for discussions5635 includes all discussion notes5636 behaves like a working graphql query5637 returns a successful response5638 diff notes on a merge request5639 includes the note5640 behaves like a working graphql query5641 returns a successful response5642 the position of the diffnote5643 includes a correct position5644 with a note on an image5645 includes a correct position5646Projects::AvatarsController5647 GET #show5648 when repository has no avatar5649 shows 4045650 when repository has an avatar5651 when the avatar is stored in the repository5652 sends the avatar5653 sets appropriate caching headers5654 behaves like project cache control headers5655 when project is public5656 returns cache_control public header to true5657 when project is private5658 returns cache_control public header to true5659 when project is internal5660 returns cache_control public header to true5661 when the avatar is stored in lfs5662 behaves like a controller that can serve LFS files5663 when lfs is enabled5664 when the project is linked to the LfsObject5665 serves the file5666 and lfs uses object storage5667 responds with redirect to file5668 sets content disposition5669 when project is not linked to the LfsObject5670 does not serve the file5671 when the project is part of a fork network5672 when the project is the root of the fork network5673 behaves like a controller that correctly serves lfs files within a fork network5674 is expected not to eq #<Project id:837 namespace594/project-769>>5675 does not serve the file if no members are linked to the LfsObject5676 serves the file when the fork network root is linked to the LfsObject5677 serves the file when the fork network member is linked to the LfsObject5678 when the project is a downstream member of the fork network5679 behaves like a controller that correctly serves lfs files within a fork network5680 is expected not to eq #<Project id:842 namespace599/project-774>>5681 does not serve the file if no members are linked to the LfsObject5682 serves the file when the fork network root is linked to the LfsObject5683 serves the file when the fork network member is linked to the LfsObject5684 when lfs is not enabled5685 delivers ASCII file5686 behaves like project cache control headers5687 when project is public5688 returns cache_control public header to true5689 when project is private5690 returns cache_control public header to true5691 when project is internal5692 returns cache_control public header to true5693 DELETE #destroy5694 removes avatar from DB by calling destroy5695Users5696 .users5697 with no arguments5698 behaves like a working users query5699 includes a list of users5700 behaves like a working graphql query5701 returns a successful response5702 with a list of usernames5703 behaves like a working users query5704 includes a list of users5705 behaves like a working graphql query5706 returns a successful response5707 with a list of IDs5708 behaves like a working users query5709 includes a list of users5710 behaves like a working graphql query5711 returns a successful response5712 when usernames and ids parameter are used5713 displays an error5714 when admins is true5715 current user is not an admin5716 includes all users5717 behaves like a working users query5718 includes a list of users5719 behaves like a working graphql query5720 returns a successful response5721 when current user is an admin5722 includes only admins5723 behaves like a working users query5724 includes a list of users5725 behaves like a working graphql query5726 returns a successful response5727 sorting and pagination5728 when sorting by created_at5729 when ascending5730 behaves like sorted paginated query5731 behaves like requires variables5732 shared example requires variables to be set5734 when sorting5735 sorts correctly5736 when paginating5737 paginates correctly5738 when descending5739 behaves like sorted paginated query5740 behaves like requires variables5741 shared example requires variables to be set5743 when sorting5744 sorts correctly5745 when paginating5746 paginates correctly5747API::SnippetRepositoryStorageMoves5748 behaves like repository_storage_moves API5749 GET /snippets/:id/repository_storage_moves5750 behaves like get container repository storage move list5751 returns container repository storage moves5752 avoids N+1 queries5753 returns the most recently created first5754 permissions5755 is expected to be allowed for :admin5756 is expected to be denied for :user5757 non-existent container5758 returns not found5759 GET /snippets/:id/repository_storage_moves/:repository_storage_move_id5760 behaves like get single container repository storage move5761 returns a container repository storage move5762 non-existent container repository storage move5763 returns not found5764 permissions5765 is expected to be allowed for :admin5766 is expected to be denied for :user5767 non-existent container5768 returns not found5769 GET /snippet_repository_storage_moves5770 behaves like get container repository storage move list5771 returns container repository storage moves5772 avoids N+1 queries5773 returns the most recently created first5774 permissions5775 is expected to be allowed for :admin5776 is expected to be denied for :user5777 GET /snippet_repository_storage_moves/:repository_storage_move_id5778 behaves like get single container repository storage move5779 returns a container repository storage move5780 non-existent container repository storage move5781 returns not found5782 permissions5783 is expected to be allowed for :admin5784 is expected to be denied for :user5785 POST /snippets/:id/repository_storage_moves5786 schedules a container repository storage move5787 permissions5788 is expected to be allowed for :admin5789 is expected to be denied for :user5790 destination_storage_name is missing5791 schedules a container repository storage move5792 when container does not exist5793 returns not found5794 POST /snippet_repository_storage_moves5795 schedules the worker5796 source_storage_name is invalid5797 gives an error5798 destination_storage_name is missing5799 schedules the worker5800 destination_storage_name is invalid5801 gives an error5802 normal user5803 is expected to be denied for :user5804Create a timelog5805 when issuable is an Issue5806 behaves like issuable supports timelog creation mutation5807 when the user is anonymous5808 behaves like a mutation that returns a top-level access error5809 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"5810 when the user is a guest member of the namespace5811 behaves like a mutation that returns a top-level access error5812 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"5813 when user has permissions to create a timelog5814 with valid data5815 creates the timelog5816 with invalid time_spent5817 returns an error5818 when issuable is a MergeRequest5819 behaves like issuable supports timelog creation mutation5820 when the user is anonymous5821 behaves like a mutation that returns a top-level access error5822 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"5823 when the user is a guest member of the namespace5824 behaves like a mutation that returns a top-level access error5825 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"5826 when user has permissions to create a timelog5827 with valid data5828 creates the timelog5829 with invalid time_spent5830 returns an error5831 when issuable is a WorkItem5832 behaves like issuable supports timelog creation mutation5833 when the user is anonymous5834 behaves like a mutation that returns a top-level access error5835 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"5836 when the user is a guest member of the namespace5837 behaves like a mutation that returns a top-level access error5838 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"5839 when user has permissions to create a timelog5840 with valid data5841 creates the timelog5842 with invalid time_spent5843 returns an error5844 when issuable is an Incident5845 behaves like issuable supports timelog creation mutation5846 when the user is anonymous5847 behaves like a mutation that returns a top-level access error5848 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"5849 when the user is a guest member of the namespace5850 behaves like a mutation that returns a top-level access error5851 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"5852 when user has permissions to create a timelog5853 with valid data5854 creates the timelog5855 with invalid time_spent5856 returns an error5857Admin::Ci::VariablesController5858 GET #show5859 when signed in as admin5860 renders the variables as json5861 has only one variable5862 when signed in as regular user5863 returns 4045864 PATCH #update5865 when signed in as admin5866 with invalid new variable parameters5867 does not update the existing variable5868 does not create the new variable5869 returns a bad request response5870 with duplicate new variable parameters5871 does not update the existing variable5872 does not create the new variable5873 returns a bad request response5874 with valid new variable parameters5875 updates the existing variable5876 creates the new variable5877 returns a successful response5878 has all variables in response5879 with a deleted variable5880 destroys the variable5881 returns a successful response5882 has all variables in response5883 with missing variable5884 returns not found response5885 for variables of type file5886 creates new variable of type file5887 when signed in as regular user5888 returns 4045889Setting Draft status of a merge request5890 returns an error if the user is not allowed to update the merge request5891 marks the merge request as Draft5892 does not do anything if the merge request was already marked `Draft`5893 when passing Draft false as input5894 does not do anything if the merge reqeust was not marked draft5895 unmarks the merge request as `Draft`5896Groups::Crm::ContactsController5897 GET #index5898 behaves like ok response with index template if authorized5899 private group5900 with authorized user5901 when crm_enabled is true5902 behaves like ok response with index template5903 renders the index template5904 when crm_enabled is false5905 behaves like response with 404 status5906 returns 4045907 when subgroup5908 behaves like response with 404 status5909 returns 4045910 with unauthorized user5911 behaves like response with 404 status5912 returns 4045913 with anonymous user5914 blah5915 public group5916 with anonymous user5917 behaves like response with 404 status5918 returns 4045919 GET #new5920 behaves like ok response with index template if authorized5921 private group5922 with authorized user5923 when crm_enabled is true5924 behaves like ok response with index template5925 renders the index template5926 when crm_enabled is false5927 behaves like response with 404 status5928 returns 4045929 when subgroup5930 behaves like response with 404 status5931 returns 4045932 with unauthorized user5933 behaves like response with 404 status5934 returns 4045935 with anonymous user5936 blah5937 public group5938 with anonymous user5939 behaves like response with 404 status5940 returns 4045941 GET #edit5942 behaves like ok response with index template if authorized5943 private group5944 with authorized user5945 when crm_enabled is true5946 behaves like ok response with index template5947 renders the index template5948 when crm_enabled is false5949 behaves like response with 404 status5950 returns 4045951 when subgroup5952 behaves like response with 404 status5953 returns 4045954 with unauthorized user5955 behaves like response with 404 status5956 returns 4045957 with anonymous user5958 blah5959 public group5960 with anonymous user5961 behaves like response with 404 status5962 returns 4045963package details5964 has the correct metadata5965 does not have files5966 behaves like a package detail5967 behaves like a working graphql query5968 returns a successful response5969 behaves like matching the package details schema5970 matches the JSON schema5971 with pipelines5972 behaves like a working graphql query5973 returns a successful response5974 behaves like matching the package details schema5975 matches the JSON schema5976Projects::Harbor::RepositoriesController5977 behaves like a harbor repositories controller5978 GET #index.html5979 with harbor registry feature flag enabled5980 behaves like responds with 200 status with html5981 renders the index template5982 with harbor registry feature flag disabled5983 behaves like responds with 404 status5984 returns 4045985 with anonymous user5986 behaves like responds with 302 status5987 returns 3025988 with unauthorized user5989 behaves like responds with 404 status5990 returns 4045991 GET #index.json5992 with harbor registry feature flag enabled5993 behaves like responds with 200 status with json5994 renders the index template5995 with harbor registry feature flag disabled5996 behaves like responds with 404 status5997 returns 4045998 with valid params5999 with valid page params6000 behaves like responds with 200 status with json6001 renders the index template6002 with valid limit params6003 behaves like responds with 200 status with json6004 renders the index template6005 with invalid params6006 with invalid page params6007 behaves like responds with 422 status with json6008 returns 4226009 with invalid limit params6010 behaves like responds with 422 status with json6011 returns 4226012API::Admin::PlanLimits PlanLimits6013 GET /application/plan_limits6014 behaves like GET request permissions for admin mode6015 behaves like when admin6016 behaves like makes request6017 returns6018 behaves like makes request6019 returns6020 behaves like when user6021 returns6022 behaves like makes request6023 returns6024 as an admin user6025 no params6026 returns plan limits6027 correct plan name in params6028 returns plan limits6029 invalid plan name in params6030 returns validation error6031 PUT /application/plan_limits6032 behaves like PUT request permissions for admin mode6033 behaves like when admin6034 behaves like makes request6035 returns6036 behaves like makes request6037 returns6038 behaves like when user6039 returns6040 behaves like makes request6041 returns6042 as an admin user6043 correct params6044 updates multiple plan limits6045 updates single plan limits6046 empty params6047 fails to update plan limits6048 params with wrong type6049 fails to update plan limits6050 missing plan_name in params6051 fails to update plan limits6052 additional undeclared params6053 updates only declared plan limits6054Mutations::Boards::Lists::Destroy6055 behaves like board lists destroy request6056 when the user does not have permission6057 does not destroy the list6058 returns an error6059 when the user has permission6060 when given id is not for a list6061 returns an error6062 when list does not exist6063 returns a top level error6064 when everything is ok6065 destroys the list6066 returns an empty list6067 when the list is not destroyable6068 behaves like does not destroy the list and returns an error6069 does not destroy the list6070 returns an error and not nil list6071Subscriptions::Notes::Created6072 # order random6073 when resource events are triggering note subscription6074 when user is unauthorized6075 does not receive discussion data6076 when user is authorized6077 receives created synthetic note as a discussion6078 when several label events are created6079 receives created synthetic note as a discussion6080 when user is authorized6081 receives created note6082 when a new note is created as a reply6083 receives created note6084 when note is confidential6085 and user has permission to read confidential notes6086 receives created note6087 and replying6088 receives created note6089 and user does not have permission to read confidential notes6090 does not receive note data6091 when user is unauthorized6092 does not receive any data6093Create an issue6094 the user is not allowed to create an issue6095 behaves like a mutation that returns a top-level access error6096 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"6097 when user has permissions to create an issue6098 creates the issue6099 behaves like has spam protection6100 #check_spam_action_response!6101 when the object is spam (DISALLOW)6102 and no CAPTCHA is available6103 behaves like disallow response6104 informs the client that the request was denied as spam6105 and a CAPTCHA is required6106 behaves like disallow response6107 informs the client that the request was denied as spam6108 when the object is not spam (CONDITIONAL ALLOW)6109 and no CAPTCHA is required6110 does not return a top-level error6111 and a CAPTCHA is required6112 informs the client that the request may be retried after solving the CAPTCHA6113 when creating an issue of type TASK6114 creates an issue with TASK type6115 when position params are provided6116 sets the correct position6117Query.ciConfig6118 returns the correct structure6119 behaves like a working graphql query6120 returns a successful response6121 when the config file includes other files6122 returns the correct structure with included files6123 behaves like a working graphql query6124 returns a successful response6125 when the config file has multiple includes6126 returns correct includes6127 behaves like a working graphql query6128 returns a successful response6129Groups::Harbor::ArtifactsController6130 behaves like a harbor artifacts controller6131 GET #index.json6132 with harbor registry feature flag enabled6133 behaves like responds with 200 status with json6134 renders the index template6135 with harbor registry feature flag disabled6136 behaves like responds with 404 status6137 returns 4046138 with anonymous user6139 behaves like responds with 404 status6140 returns 4046141 with unauthorized user6142 behaves like responds with 404 status6143 returns 4046144 with valid params6145 with valid repository6146 behaves like responds with 200 status with json6147 renders the index template6148 with valid page6149 behaves like responds with 200 status with json6150 renders the index template6151 with valid limit6152 behaves like responds with 200 status with json6153 renders the index template6154 with invalid params6155 with invalid page6156 behaves like responds with 422 status with json6157 returns 4226158 with invalid limit6159 behaves like responds with 422 status with json6160 returns 4226161Setting Due Date of an issue6162 returns an error if the user is not allowed to update the issue6163 when due date value is a valid date6164 updates the issue due date6165 when due date value is null6166 updates the issue to remove the due date6167 when due date argument is not given6168 returns an error6169 when the due date value is not a valid time6170 returns a coercion error6171getting notes for an issue6172 behaves like exposing regular notes on a noteable in GraphQL6173 for regular notes6174 includes the note6175 avoids N+1 queries6176 behaves like a working graphql query6177 returns a successful response6178 for discussions6179 includes all discussion notes6180 behaves like a working graphql query6181 returns a successful response6182getting Alert Management Alert Assignees6183 returns the correct assignees6184 applies appropriate filters for non-visible users6185 performance6186 can limit results6187 can include all results6188 avoids N+1 queries6189Admin::GroupsController6190 DELETE #destroy6191 schedules a group destroy6192 redirects to the admin group path6193 POST #create6194 creates group6195 creates namespace_settings for group6196 creates admin_note for group6197 delegates to Groups::CreateService service instance6198 PUT #update6199 with runner registration disabled6200 updates the setting successfully6201 does not change the registration token6202 with runner registration enabled6203 updates the setting successfully6204 changes the registration token6205Groups::ImportsController6206 GET #show6207 when the user has permission to view the group6208 when the import is in progress6209 renders the show template6210 sets the flash notice6211 when the import has failed6212 redirects to the new group path6213 sets a flash error6214 when the import has finished6215 redirects to the group page6216 when there is no import state6217 redirects to the group page6218 when the user does not have permission to view the group6219 returns a 4046220Getting designs related to an issue6221 is not too deep for anonymous users6222 behaves like a working graphql query6223 returns a successful response6224 behaves like a noteable graphql type we can query6225 .discussions6226 can fetch discussions6227 can fetch discussion noteable6228 .notes6229 can fetch notes6230Merge Requests Context Commit Diffs6231 GET diffs_batch6232 without caching6233 behaves like serializes diffs with expected arguments6234 serializes paginated merge request diff collection6235 with caching6236 when the request has not been cached6237 behaves like serializes diffs with expected arguments6238 serializes paginated merge request diff collection6239 when the request has already been cached6240 does not serialize diffs6241 with the different user6242 behaves like serializes diffs with expected arguments6243 serializes paginated merge request diff collection6244Users::TermsController6245 GET #index6246 when a user is signed in6247 redirects when no terms exist6248 when terms exist6249 shows terms when they exist6250 shows a message when the user already accepted the terms6251 when a user is not signed in6252 when terms exist6253 returns success response6254 when no terms exist6255 redirects6256 POST #accept6257 when a user is signed in6258 saves that the user accepted the terms6259 redirects to a path when specified6260 redirects to the referer when no redirect specified6261 redirecting to another domain6262 is prevented when passing a redirect param6263 is prevented when redirecting to the referer6264 when a user is not signed in6265 redirects to login page6266 POST #decline6267 when a user is signed in6268 stores that the user declined the terms6269 signs out the user6270 when a user is not signed in6271 redirects to login page6272API::ImportGithub6273 POST /import/github6274 rejects requests when Github Importer is disabled6275 returns 201 response when the project is imported successfully6276 returns 201 response when the project is imported successfully from GHE6277 returns 422 response when user can not create projects in the chosen namespace6278 when target_namespace is blank6279 returns 400 response6280 when unauthenticated user6281 returns 403 response6282 POST /import/github/cancel6283 when project import was canceled6284 returns success6285 when project import was not canceled6286 returns error6287 when unauthenticated user6288 returns 403 response6289 POST /import/github/gists6290 when gists import was started6291 returns 2026292 when gists import is in progress6293 returns 422 error6294 when unauthenticated user6295 returns 403 error6296 when rate limit reached6297 returns 429 error6298MetricsController6299 #index6300 accessed from whitelisted ip6301 behaves like providing metrics6302 returns prometheus metrics6303 prometheus metrics are disabled6304 returns proper response6305 accessed from ip in whitelisted range6306 behaves like providing metrics6307 returns prometheus metrics6308 prometheus metrics are disabled6309 returns proper response6310 accessed from not whitelisted ip6311 returns the expected error response6312 #system6313 accessed from whitelisted ip6314 behaves like providing system stats6315 renders system stats JSON6316 accessed from ip in whitelisted range6317 behaves like providing system stats6318 renders system stats JSON6319 accessed from not whitelisted ip6320 returns the expected error response6321getting branch protection for a branch rule6322 # order random6323 when the user does not have read_protected_branch abilities6324 is expected not to be present6325 behaves like a working graphql query6326 returns a successful response6327 when the user does have read_protected_branch abilities6328 includes allow_force_push6329 behaves like a working graphql query6330 returns a successful response6331Query.project.mergeRequests.pipelines6332 .count6333 produces correct results6334 is scalable6335 .nodes6336 produces correct results6337 is scalable6338 requests merge_request_diffs at most once6339EnforcesAdminAuthentication6340 application setting :admin_mode is enabled6341 authenticate_admin!6342 as an admin6343 renders redirect for re-authentication and does not set admin mode6344 when admin mode is active6345 renders ok6346 as a user6347 renders a 4046348 does not set admin mode6349 application setting :admin_mode is disabled6350 authenticate_admin!6351 as an admin6352 allows direct access to page6353 does not set admin mode6354 as a user6355 renders a 4046356 does not set admin mode6357Groups::AchievementsController6358 # order random6359 GET #index6360 behaves like ok response with index template if authorized6361 with a private group6362 with authorized user6363 behaves like ok response with index template6364 renders the index template6365 when achievements ff is disabled6366 behaves like response with 404 status6367 returns 4046368 with unauthorized user6369 behaves like response with 404 status6370 returns 4046371 with anonymous user6372 redirects to sign_in page6373 with a public group6374 with anonymous user6375 behaves like ok response with index template6376 renders the index template6377Groups::DependencyProxyAuthController6378 GET #authenticate6379 without JWT6380 returns unauthorized with oauth realm6381 with valid JWT6382 user6383 is expected to respond with numeric status code success6384 deploy token6385 is expected to respond with numeric status code success6386 with invalid JWT6387 bad user6388 is expected to respond with numeric status code unauthorized6389 token with no user id6390 is expected to respond with numeric status code unauthorized6391 expired token6392 is expected to respond with numeric status code unauthorized6393 expired deploy token6394 is expected to respond with numeric status code unauthorized6395 revoked deploy token6396 is expected to respond with numeric status code unauthorized6397getting a list of work item types for a project6398 when user has access to the project6399 returns all default work item types6400 behaves like a working graphql query6401 returns a successful response6402 when user doesn't have access to the project6403 does not return the project6404Import::ManifestController6405 POST upload6406 with a valid manifest6407 saves the manifest and redirects to the status page6408 with an invalid manifest6409 displays an error6410 when the user cannot import projects in the group6411 displays an error6412 GET status6413 when the data is stored via Gitlab::ManifestImport::Metadata6414 returns variables for json request6415 when the data is stored in the user session6416 returns variables for json request6417Timeline Events6418 # order random6419 POST /preview_markdown6420 when authorized6421 renders JSON in a correct format6422 when not authorized6423 returns 3026424Explore::GroupsController6425 behaves like explore groups6426 renders group trees6427 includes public projects6428 restricted visibility level is public6429 redirects to login page6430 gitlab.com6431 behaves like explore groups6432 renders group trees6433 includes public projects6434 restricted visibility level is public6435 redirects to login page6436Mutations::Achievements::Delete6437 # order random6438 when the user does not have permission6439 does not revoke any achievements6440 behaves like a mutation that returns a top-level access error6441 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"6442 when the user has permission6443 deletes the achievement6444 when the params are invalid6445 returns the validation error6446 when the achievement_id is invalid6447 returns the validation error6448 when the feature flag is disabled6449 returns the relevant error6450Projects::Settings::PackagesAndRegistriesController6451 GET #cleanup_tags6452 when user is unauthorized6453 shows 4046454 when user is authorized6455 renders content6456 when registry is disabled6457 shows 4046458 when container registry is disabled on project6459 shows 4046460SpammableActions::AkismetMarkAsSpamAction6461 #mark_as_spam6462 when user is admin6463 when service returns truthy6464 redirects with notice6465 when service returns falsey6466 redirects with notice6467 when user is not admin6468 calls #access_denied!6469 #spammable6470 raises when unimplemented6471 #spammable_path6472 raises when unimplemented6473Admin::JobsController6474 GET #index6475 with an authenticated admin user6476 paginates builds without a total count6477 without admin access6478 returns `not_found`6479Creating a new Prometheus Integration6480 creates a new integration6481 without required argument project_path6482 behaves like an invalid argument to the mutation6483 behaves like a mutation that returns top-level errors6484 is expected to contain exactly (include "invalid value for projectPath")6485 without required argument active6486 behaves like an invalid argument to the mutation6487 behaves like a mutation that returns top-level errors6488 is expected to contain exactly (include "invalid value for active")6489 without required argument api_url6490 behaves like an invalid argument to the mutation6491 behaves like a mutation that returns top-level errors6492 is expected to contain exactly (include "invalid value for apiUrl")6493JobPlay6494 # order random6495 plays a job6496 returns an error if the user is not allowed to play the job6497 when given variables6498 provides those variables to the job6499Admin::GitalyServersController6500 #index6501 shows the gitaly servers page6502Projects::Integrations::ShimosController6503 GET #show6504 when Shimo integration is inactive6505 returns 404 status6506 when Shimo integration is active6507 renders the "show" template6508API::Ci::Runner6509 POST /runners/reset_authentication_token6510 behaves like runner migrations backoff6511 when executing locking database migrations6512 returns 429 error6513 with runner_migrations_backoff disabled6514 does not return 4296515 current token provided6516 resets authentication token when token doesn't have an expiration6517 resets authentication token when token is not expired6518 does not reset authentication token when token is expired6519 wrong current token provided6520 does not reset authentication token6521Groups::AvatarsController6522 removes avatar from DB calling destroy6523 works when external authorization service is enabled6524Admin::ApplicationsController6525 sets `@created` instance variable to `true`6526 GET #show6527 renders template6528ConfigureSecretDetection6529 when authorized6530 creates a branch with secret detection configured6531Group callouts6532 POST /-/users/group_callouts6533 with valid feature name and group6534 when callout entry does not exist6535 creates a callout entry with dismissed state6536 returns success6537 when callout entry already exists6538 returns success6539 with invalid feature name6540 returns bad request6541JiraConnect::BranchesController6542 #new6543 when logged in6544 assigns the suggested branch name6545 ignores missing summary6546 does not set a branch name if key is not passed6547 when not logged in6548 redirects to the login page6549Loading a user avatar6550 when logged in6551 only performs three SQL queries6552 when logged out6553 only performs two SQL queries6554Projects::Packages::PackagesController6555 GET #index6556 behaves like returning response status6557 returns ok6558 GET #show6559 behaves like returning response status6560 returns ok6561JiraConnect::OauthCallbacksController6562 GET /-/jira_connect/oauth_callbacks6563 when logged in6564 renders a page prompting the user to close the window6565User spoofs their IP6566 raises a 400 error6567Knapsack report was generated. Preview:6568{6569 "spec/requests/api/projects_spec.rb": 276.54003831499904,6570 "spec/requests/api/ci/pipelines_spec.rb": 171.94087404099992,6571 "spec/controllers/projects/notes_controller_spec.rb": 105.84248923700034,6572 "spec/controllers/projects/pipelines_controller_spec.rb": 129.64833865000037,6573 "spec/controllers/projects/clusters_controller_spec.rb": 88.68654277499991,6574 "spec/controllers/groups_controller_spec.rb": 55.39923011099927,6575 "spec/requests/api/terraform/state_spec.rb": 57.096108386000196,6576 "spec/requests/api/issues/post_projects_issues_spec.rb": 40.18336656200154,6577 "spec/requests/api/snippets_spec.rb": 51.45842107899989,6578 "spec/controllers/projects/pipeline_schedules_controller_spec.rb": 38.00647714000115,6579 "spec/controllers/autocomplete_controller_spec.rb": 44.73945080500016,6580 "spec/controllers/projects/merge_requests/creations_controller_spec.rb": 39.45861643799981,6581 "spec/requests/api/group_labels_spec.rb": 41.734842840000056,6582 "spec/requests/api/terraform/state_version_spec.rb": 39.75335342500148,6583 "spec/requests/api/personal_access_tokens_spec.rb": 13.920147539998652,6584 "spec/requests/projects/merge_requests_controller_spec.rb": 20.525820691000263,6585 "spec/controllers/projects/merge_requests/conflicts_controller_spec.rb": 23.268635106000147,6586 "spec/requests/api/graphql/project/releases_spec.rb": 17.131103977999373,6587 "spec/controllers/projects/artifacts_controller_spec.rb": 14.604555445999722,6588 "spec/requests/api/freeze_periods_spec.rb": 16.23933547699926,6589 "spec/requests/api/events_spec.rb": 17.08064597199882,6590 "spec/controllers/projects/tags_controller_spec.rb": 17.759880937999696,6591 "spec/requests/api/unleash_spec.rb": 7.786089400000492,6592 "spec/controllers/dashboard/projects_controller_spec.rb": 16.36133338699983,6593 "spec/requests/projects/commits_controller_spec.rb": 11.73075320099997,6594 "spec/requests/api/graphql/mutations/award_emojis/toggle_spec.rb": 13.71118335599931,6595 "spec/requests/api/feature_flags_user_lists_spec.rb": 7.2913693290011,6596 "spec/requests/api/admin/ci/variables_spec.rb": 4.89431417599917,6597 "spec/requests/api/graphql/project_query_spec.rb": 8.892931032998604,6598 "spec/requests/projects/issue_links_controller_spec.rb": 10.050986553000257,6599 "spec/requests/api/ci/runner/jobs_put_spec.rb": 6.953349544999583,6600 "spec/requests/api/graphql/group/dependency_proxy_blobs_spec.rb": 6.424145956998473,6601 "spec/requests/api/graphql/project/merge_request/diff_notes_spec.rb": 9.524673863999851,6602 "spec/controllers/projects/avatars_controller_spec.rb": 6.894945980000557,6603 "spec/requests/api/graphql/users_spec.rb": 3.6463503839986515,6604 "spec/requests/api/snippet_repository_storage_moves_spec.rb": 5.1597513659999095,6605 "spec/requests/api/graphql/mutations/timelogs/create_spec.rb": 7.565287286999592,6606 "spec/controllers/admin/ci/variables_controller_spec.rb": 3.854921527999977,6607 "spec/requests/api/graphql/mutations/merge_requests/set_draft_spec.rb": 7.767978580999625,6608 "spec/requests/groups/crm/contacts_controller_spec.rb": 8.291345100999024,6609 "spec/requests/api/graphql/packages/composer_spec.rb": 6.456694444999812,6610 "spec/requests/projects/harbor/repositories_controller_spec.rb": 3.8678615469998476,6611 "spec/requests/api/admin/plan_limits_spec.rb": 2.7911926619999576,6612 "spec/requests/api/graphql/mutations/boards/lists/destroy_spec.rb": 3.4588178289995994,6613 "spec/requests/api/graphql/subscriptions/notes/created_spec.rb": 5.225956890000816,6614 "spec/requests/api/graphql/mutations/issues/create_spec.rb": 6.259074769999643,6615 "spec/requests/api/graphql/ci/config_spec.rb": 4.195901010998568,6616 "spec/requests/groups/harbor/artifacts_controller_spec.rb": 3.024855982999725,6617 "spec/requests/api/graphql/mutations/issues/set_due_date_spec.rb": 4.819536331999188,6618 "spec/requests/api/graphql/project/issue/notes_spec.rb": 6.0346996469997976,6619 "spec/requests/api/graphql/project/alert_management/alert/assignees_spec.rb": 2.2430559050008014,6620 "spec/controllers/admin/groups_controller_spec.rb": 2.592660756999976,6621 "spec/controllers/groups/imports_controller_spec.rb": 2.39538401199934,6622 "spec/requests/api/graphql/project/issue/designs/notes_spec.rb": 2.7134287970002333,6623 "spec/requests/projects/merge_requests/context_commit_diffs_spec.rb": 3.5278429740010324,6624 "spec/controllers/users/terms_controller_spec.rb": 3.0561048700001265,6625 "spec/requests/api/import_github_spec.rb": 4.135108135998962,6626 "spec/controllers/metrics_controller_spec.rb": 0.7015109149997443,6627 "spec/requests/api/graphql/project/branch_rules/branch_protection_spec.rb": 1.9125858399984281,6628 "spec/requests/api/graphql/project/merge_request/pipelines_spec.rb": 2.9611824980001984,6629 "spec/controllers/concerns/enforces_admin_authentication_spec.rb": 2.9946670350000204,6630 "spec/requests/groups/achievements_controller_spec.rb": 2.1173443240004417,6631 "spec/controllers/groups/dependency_proxy_auth_controller_spec.rb": 0.9306226770004287,6632 "spec/requests/api/graphql/project/work_item_types_spec.rb": 1.3362974060000852,6633 "spec/controllers/import/manifest_controller_spec.rb": 1.6195220829995378,6634 "spec/requests/projects/incident_management/timeline_events_spec.rb": 1.0690753760009102,6635 "spec/controllers/explore/groups_controller_spec.rb": 1.704350625999723,6636 "spec/requests/api/graphql/mutations/achievements/delete_spec.rb": 1.8885277420013153,6637 "spec/requests/projects/settings/packages_and_registries_controller_spec.rb": 1.8140638579989172,6638 "spec/controllers/concerns/spammable_actions/akismet_mark_as_spam_action_spec.rb": 1.34431550500085,6639 "spec/controllers/admin/jobs_controller_spec.rb": 1.5705017869986477,6640 "spec/requests/api/graphql/mutations/alert_management/prometheus_integration/create_spec.rb": 1.7330639339998015,6641 "spec/requests/api/graphql/mutations/ci/job/play_spec.rb": 1.9094242009996378,6642 "spec/controllers/admin/gitaly_servers_controller_spec.rb": 0.46518554400063294,6643 "spec/requests/projects/integrations/shimos_controller_spec.rb": 1.3996701699998084,6644 "spec/requests/api/ci/runner/runners_reset_spec.rb": 1.1589376990013989,6645 "spec/controllers/groups/avatars_controller_spec.rb": 1.2483702019999328,6646 "spec/requests/admin/applications_controller_spec.rb": 1.1498883389995171,6647 "spec/requests/api/graphql/mutations/security/ci_configuration/configure_secret_detection_spec.rb": 1.3679908129997784,6648 "spec/requests/users/group_callouts_spec.rb": 0.9481494560004649,6649 "spec/controllers/jira_connect/branches_controller_spec.rb": 0.7270581230004609,6650 "spec/requests/user_avatar_spec.rb": 0.8678852819994063,6651 "spec/controllers/projects/packages/packages_controller_spec.rb": 0.6963437949998479,6652 "spec/requests/jira_connect/oauth_callbacks_controller_spec.rb": 0.4968729809988872,6653 "spec/requests/user_spoofs_ip_spec.rb": 0.376372290998915566654}6655Knapsack global time execution for tests: 26m 13s6656Pending: (Failures listed here are expected and do not affect your suite's status)6657 1) getting project information is_catalog_resource for N+1 queries with isCatalogResource avoids N+1 database queries6659 Failure/Error: expect { run_with_clean_state(query, context: ctx) }.not_to exceed_query_limit(control)6660 Expected a maximum of 5 queries, got 6:6661 Query Diff:6662 -----------6663 SELECT MAX("project_authorizations"."access_level") AS maximum_access_level, "project_authorizations"."user_id" AS project_authorizations_user_id FROM "project_authorizations"...6664 -- (expected: 0, got: 1)6665 WHERE "project_authorizations"."project_id" = 818 AND "project_authorizations"."user_id" = 2290 GROUP BY "project_authorizations"."user_id"6666 # ./spec/requests/api/graphql/project_query_spec.rb:179:in `block (4 levels) in <top (required)>'6667 # ./spec/spec_helper.rb:415:in `block (3 levels) in <top (required)>'6668 # ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'6669 # ./spec/spec_helper.rb:406:in `block (2 levels) in <top (required)>'6670 # ./spec/spec_helper.rb:402:in `block (3 levels) in <top (required)>'6671 # ./lib/gitlab/application_context.rb:61:in `with_raw_context'6672 # ./spec/spec_helper.rb:402:in `block (2 levels) in <top (required)>'6673 # ./spec/spec_helper.rb:242:in `block (2 levels) in <top (required)>'6674 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'6675 # ./spec/support/fast_quarantine.rb:23:in `block (2 levels) in <top (required)>'6676 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (3 levels) in <top (required)>'6677 # ./spec/support/database/prevent_cross_joins.rb:62:in `with_cross_joins_prevented'6678 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (2 levels) in <top (required)>'6679 2) getting project information with timelog categories for N+1 queries avoids N+1 database queries6681 Failure/Error: expect { run_with_clean_state(query, context: ctx) }.not_to exceed_query_limit(control)6682 Expected a maximum of 6 queries, got 11:6683 Query Diff:6684 -----------6685 SELECT "namespaces".* FROM "namespaces"...6686 -- (expected: 0, got: 1)6687 WHERE "namespaces"."type" = 'Group' AND "namespaces"."id" = 3453 LIMIT 16688 -- (expected: 0, got: 1)6689 WHERE "namespaces"."id" = 3453 LIMIT 16690 -- (expected: 0, got: 1)6691 WHERE "namespaces"."type" = 'Project' AND "namespaces"."id" = 3454 LIMIT 16692 SELECT MAX("project_authorizations"."access_level") AS maximum_access_level, "project_authorizations"."user_id" AS project_authorizations_user_id FROM "project_authorizations"...6693 -- (expected: 0, got: 1)6694 WHERE "project_authorizations"."project_id" = 820 AND "project_authorizations"."user_id" = 2290 GROUP BY "project_authorizations"."user_id"6695 SELECT "timelog_categories".* FROM "timelog_categories"...6696 -- (expected: 0, got: 1)6697 WHERE "timelog_categories"."namespace_id" = 3454 ORDER BY "timelog_categories"."id" DESC LIMIT 1016698 # ./spec/requests/api/graphql/project_query_spec.rb:346:in `block (4 levels) in <top (required)>'6699 # ./spec/spec_helper.rb:415:in `block (3 levels) in <top (required)>'6700 # ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'6701 # ./spec/spec_helper.rb:406:in `block (2 levels) in <top (required)>'6702 # ./spec/spec_helper.rb:402:in `block (3 levels) in <top (required)>'6703 # ./lib/gitlab/application_context.rb:61:in `with_raw_context'6704 # ./spec/spec_helper.rb:402:in `block (2 levels) in <top (required)>'6705 # ./spec/spec_helper.rb:242:in `block (2 levels) in <top (required)>'6706 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'6707 # ./spec/support/fast_quarantine.rb:23:in `block (2 levels) in <top (required)>'6708 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (3 levels) in <top (required)>'6709 # ./spec/support/database/prevent_cross_joins.rb:62:in `with_cross_joins_prevented'6710 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (2 levels) in <top (required)>'6711Finished in 26 minutes 17 seconds (files took 1 minute 8.78 seconds to load)67122788 examples, 0 failures, 2 pending6713Randomized with seed 496566714[TEST PROF INFO] Time spent in factories: 12:22.880 (46.25% of total time)6715RSpec exited with 0.6716No examples to retry, congrats!6718Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy6720Uploading artifacts...6721coverage/: found 5 matching artifact files and directories 6722crystalball/: found 2 matching artifact files and directories 6723deprecations/: found 4 matching artifact files and directories 6724knapsack/: found 4 matching artifact files and directories 6725WARNING: query_recorder/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 6726rspec/: found 16 matching artifact files and directories 6727WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 6728log/*.log: found 18 matching artifact files and directories 6729WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4440957700/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com6730WARNING: Retrying... context=artifacts-uploader error=request redirected6731Uploading artifacts as "archive" to coordinator... 201 Created id=4440957700 responseStatus=201 Created token=64_Rp1Uv6732Uploading artifacts...6733rspec/rspec-*.xml: found 1 matching artifact files and directories 6734WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4440957700/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com6735WARNING: Retrying... context=artifacts-uploader error=request redirected6736Uploading artifacts as "junit" to coordinator... 201 Created id=4440957700 responseStatus=201 Created token=64_Rp1Uv6738Job succeeded