rspec-ee integration pg12 1/6
Passed Started
by
@gitlab-bot

🤖 GitLab Bot 🤖
1Running with gitlab-runner 15.6.0~beta.186.ga889181a (a889181a)2 on green-1.shared-gitlab-org.runners-manager.gitlab.com/default Mf8beF5G3 feature flags: FF_USE_FASTZIP:true6Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.18-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-106-yarn-1.22-graphicsmagick-1.3.36 ...7Starting service postgres:12 ...8Pulling docker image postgres:12 ...9Using docker image sha256:31c3beb3b8968af162019219a074f3d4c1a5b1ab319ec86668229ad0a7ed0e4f for postgres:12 with digest postgres@sha256:63a045745aec8457cb208e929118b557e95e1b1327e2ad29f14174054be5d56e ...10Starting service redis:6.0-alpine ...11Pulling docker image redis:6.0-alpine ...12Using docker image sha256:f30aed8202b4ddc9ed0c833f7bd2b90470dc3a438a51b6567e9955adfe224051 for redis:6.0-alpine with digest redis@sha256:fcf49f0ab799e3b7217aab710606e888b190bbf3c3a81b5c912dd8ef351d1f69 ...13Starting service elasticsearch:7.17.6 ...14Pulling docker image elasticsearch:7.17.6 ...15Using docker image sha256:5fad10241ffd65d817ed0ddfaf6e87eee1f7dc2a7db33db1047835560ea71fda for elasticsearch:7.17.6 with digest elasticsearch@sha256:6c128de5d01c0c130a806022d6bd99b3e4c27a9af5bfc33b6b81861ae117d028 ...16Waiting for services to be up and running (timeout 30 seconds)...17Authenticating with credentials from job payload (GitLab Registry)18Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.18-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-106-yarn-1.22-graphicsmagick-1.3.36 ...19Using docker image sha256:9f9846a4ac0697e6010265e736ea0ed08cd0506c4323c4e2a29d17e1b28665ce for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.18-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-106-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.18-node-16.14-postgresql-12@sha256:9229dfe0f4ee76cecfd8411f6668b0b2a5fd730d1d3688013b3a721189fcccb5 ...21Running on runner-mf8bef5g-project-278964-concurrent-0 via runner-mf8bef5g-shared-gitlab-org-1670484327-f99161b2...23$ eval "$CI_PRE_CLONE_SCRIPT"24Fetching changes with git depth set to 20...25Initialized empty Git repository in /builds/gitlab-org/gitlab/.git/26Created fresh repository.27remote: Enumerating objects: 163372, done. 28remote: Counting objects: 100% (163372/163372), done. 29remote: Compressing objects: 100% (94785/94785), done. 30remote: Total 163372 (delta 84810), reused 119124 (delta 63094), pack-reused 0 31Receiving objects: 100% (163372/163372), 121.93 MiB | 19.97 MiB/s, done.32Resolving deltas: 100% (84810/84810), done.34 * [new ref] refs/pipelines/716916172 -> refs/pipelines/71691617235Checking out 8f189ac6 as refs/merge-requests/106378/merge...36Skipping Git submodules setup37$ git remote set-url origin "${CI_REPOSITORY_URL}"39Checking cache for ruby-gems-debian-bullseye-ruby-2.7-16...40Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/ruby-gems-debian-bullseye-ruby-2.7-16 41Successfully extracted cache42Checking cache for gitaly-ruby-gems-debian-bullseye-ruby-2.7-16...43Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/gitaly-ruby-gems-debian-bullseye-ruby-2.7-16 44Successfully extracted cache46Downloading artifacts for compile-test-assets (3443740837)...47Downloading artifacts from coordinator... ok id=3443740837 responseStatus=200 OK token=LYrfAvhf48Downloading artifacts for detect-tests (3443740849)...49Downloading artifacts from coordinator... ok id=3443740849 responseStatus=200 OK token=LYrfAvhf50Downloading artifacts for retrieve-tests-metadata (3443740854)...51Downloading artifacts from coordinator... ok id=3443740854 responseStatus=200 OK token=LYrfAvhf52Downloading artifacts for setup-test-env (3443740841)...53Downloading artifacts from coordinator... ok id=3443740841 responseStatus=200 OK token=LYrfAvhf55Using docker image sha256:9f9846a4ac0697e6010265e736ea0ed08cd0506c4323c4e2a29d17e1b28665ce for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.18-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-106-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.18-node-16.14-postgresql-12@sha256:9229dfe0f4ee76cecfd8411f6668b0b2a5fd730d1d3688013b3a721189fcccb5 ...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.sh690Using decomposed database config (config/database.yml.decomposed-postgresql)691$ setup_db_user_only692CREATE ROLE693GRANT694==> 'setup_db_user_only' succeeded in 0 seconds.695$ bundle exec rake db:drop db:create db:schema:load db:migrate696Dropped database 'gitlabhq_test'697Dropped database 'gitlabhq_test_ci'698Dropped database 'gitlabhq_geo_test'699Created database 'gitlabhq_test'700Created database 'gitlabhq_test_ci'701Created database 'gitlabhq_geo_test'702==> 'bundle exec rake db:drop db:create db:schema:load db:migrate' succeeded in 39 seconds.703$ setup_db_praefect704SELECT pg_catalog.set_config('search_path', '', false);705CREATE DATABASE praefect_test ENCODING 'UTF8';706==> 'setup_db_praefect' succeeded in 1 seconds.707$ source ./scripts/rspec_helpers.sh708$ run_timed_command "gem install knapsack --no-document"709$ gem install knapsack --no-document710Successfully installed knapsack-4.0.07111 gem installed712==> 'gem install knapsack --no-document' succeeded in 0 seconds.713$ echo -e "\e[0Ksection_start:`date +%s`:gitaly-test-spawn[collapsed=true]\r\e[0KStarting Gitaly"823$ rspec_paralellized_job "--tag ~quarantine --tag ~level:migration"824SKIP_FLAKY_TESTS_AUTOMATICALLY: true825RETRY_FAILED_TESTS_IN_NEW_PROCESS: true826KNAPSACK_GENERATE_REPORT: true827FLAKY_RSPEC_GENERATE_REPORT: true828KNAPSACK_TEST_FILE_PATTERN: {ee/}spec/{commands,controllers,mailers,requests}{,/**/}*_spec.rb829KNAPSACK_LOG_LEVEL: debug830KNAPSACK_REPORT_PATH: knapsack/rspec-ee_integration_pg12_1_6_report.json831FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json832FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec-ee_integration_pg12_1_6_report.json833NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec-ee_integration_pg12_1_6_report.json834SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec-ee_integration_pg12_1_6_report.txt835RETRIED_TESTS_REPORT_PATH: rspec/flaky/retried_tests_rspec-ee_integration_pg12_1_6_report.txt836CRYSTALBALL: 837Knapsack node specs:838ee/spec/requests/api/vulnerabilities_spec.rb839ee/spec/requests/api/issues_spec.rb840ee/spec/requests/api/graphql/geo/registries_spec.rb841ee/spec/mailers/notify_spec.rb842ee/spec/requests/api/project_approval_settings_spec.rb843ee/spec/requests/api/project_approval_rules_spec.rb844ee/spec/requests/api/merge_requests_spec.rb845ee/spec/controllers/projects/mirrors_controller_spec.rb846ee/spec/requests/admin/credentials_controller_spec.rb847ee/spec/requests/api/status_checks_spec.rb848ee/spec/controllers/registrations/groups_projects_controller_spec.rb849ee/spec/requests/api/internal/kubernetes_spec.rb850ee/spec/requests/api/graphql/compliance_management/merge_requests/compliance_violations_spec.rb851ee/spec/controllers/groups/audit_events_controller_spec.rb852ee/spec/controllers/groups/sso_controller_spec.rb853ee/spec/controllers/projects/security/vulnerabilities/notes_controller_spec.rb854ee/spec/requests/api/graphql/iteration_spec.rb855ee/spec/requests/api/project_aliases_spec.rb856ee/spec/controllers/ee/projects/jobs_controller_spec.rb857ee/spec/requests/api/graphql/mutations/work_items/update_spec.rb858ee/spec/requests/api/graphql/mutations/audit_events/external_audit_event_destinations/create_spec.rb859ee/spec/controllers/projects/integrations/jira/issues_controller_spec.rb860ee/spec/requests/api/analytics/product_analytics_spec.rb861ee/spec/controllers/projects/path_locks_controller_spec.rb862ee/spec/controllers/groups/security/policies_controller_spec.rb863ee/spec/requests/projects/settings/access_tokens_controller_spec.rb864ee/spec/requests/api/resource_iteration_events_spec.rb865ee/spec/requests/api/graphql/boards/epic_board_list_epics_query_spec.rb866ee/spec/requests/api/graphql/mutations/iterations/update_spec.rb867ee/spec/controllers/groups/analytics/ci_cd_analytics_controller_spec.rb868ee/spec/requests/api/group_variables_spec.rb869ee/spec/requests/api/graphql/project/product_analytics_spec.rb870ee/spec/requests/api/graphql/mutations/boards/create_spec.rb871ee/spec/requests/api/graphql/mutations/issues/update_spec.rb872ee/spec/requests/api/protected_tags_spec.rb873ee/spec/requests/api/resource_state_events_spec.rb874ee/spec/controllers/projects/security/dashboard_controller_spec.rb875ee/spec/requests/api/graphql/project/dast_site_profiles_spec.rb876ee/spec/controllers/projects/requirements_management/requirements_controller_spec.rb877ee/spec/requests/api/graphql/project/incident_management/escalation_policies_spec.rb878ee/spec/controllers/projects/environments_controller_spec.rb879ee/spec/requests/api/graphql/projects/compliance_frameworks_spec.rb880ee/spec/requests/api/graphql/mutations/vulnerabilities/create_external_issue_link_spec.rb881ee/spec/requests/api/graphql/milestone_spec.rb882ee/spec/controllers/admin/licenses_controller_spec.rb883ee/spec/requests/api/graphql/incident_management/issuable_resource_links_spec.rb884ee/spec/requests/api/graphql/mutations/incident_management/oncall_rotation/create_spec.rb885ee/spec/requests/projects/audit_events_spec.rb886ee/spec/requests/admin/geo/replicables_controller_spec.rb887ee/spec/requests/groups/clusters_controller_spec.rb888ee/spec/requests/api/ci/minutes_spec.rb889ee/spec/mailers/license_mailer_spec.rb890ee/spec/requests/api/graphql/project/pipeline/dast_profile_spec.rb891ee/spec/requests/api/templates_spec.rb892ee/spec/requests/api/graphql/project/dast_site_profile_spec.rb893ee/spec/controllers/projects/settings/slacks_controller_spec.rb894ee/spec/requests/api/experiments_spec.rb895ee/spec/requests/groups/roadmap_controller_spec.rb896ee/spec/requests/api/graphql/vulnerabilities/issue_links_spec.rb897ee/spec/controllers/admin/push_rules_controller_spec.rb898ee/spec/requests/admin/audit_events_spec.rb899ee/spec/requests/api/graphql/mutations/issues/set_epic_spec.rb900ee/spec/requests/groups/settings/reporting_controller_spec.rb901ee/spec/controllers/admin/audit_logs_controller_spec.rb902ee/spec/requests/omniauth_kerberos_spec.rb903ee/spec/requests/api/graphql/mutations/boards/epic_boards/destroy_spec.rb904ee/spec/requests/api/markdown_snapshot_spec.rb905ee/spec/requests/api/graphql/dora/dora_spec.rb906ee/spec/controllers/admin/licenses/usage_exports_controller_spec.rb907ee/spec/controllers/projects/analytics/cycle_analytics/summary_controller_spec.rb908ee/spec/controllers/projects/iteration_cadences_controller_spec.rb909ee/spec/controllers/groups/security/dashboard_controller_spec.rb910ee/spec/controllers/projects/boards_controller_spec.rb911ee/spec/requests/api/graphql/issue/issue_spec.rb912ee/spec/controllers/ee/root_controller_spec.rb913ee/spec/requests/registrations/project_creation_spec.rb914ee/spec/requests/api/graphql/mutations/incident_management/escalation_policy/update_spec.rb915ee/spec/requests/api/graphql/project/compliance_frameworks_spec.rb916ee/spec/controllers/projects/settings/ci_cd_controller_spec.rb917ee/spec/requests/groups/feature_discovery_moments_spec.rb918ee/spec/requests/api/rubygem_packages_spec.rb919ee/spec/mailers/ee/emails/merge_requests_spec.rb920ee/spec/requests/api/graphql/mutations/vulnerabilities/destroy_external_issue_link_spec.rb921ee/spec/requests/api/graphql/mutations/incident_management/issuable_resource_link/create_spec.rb922ee/spec/requests/api/npm_project_packages_spec.rb923ee/spec/requests/api/graphql/vulnerabilities/primary_identifier_spec.rb924ee/spec/controllers/ee/projects/merge_requests/content_controller_spec.rb925ee/spec/requests/api/graphql/project/push_rules_spec.rb926ee/spec/requests/api/project_snapshots_spec.rb927ee/spec/mailers/emails/namespace_storage_usage_mailer_spec.rb928ee/spec/controllers/concerns/gitlab_subscriptions/seat_count_alert_spec.rb929ee/spec/requests/api/graphql/app_sec/fuzzing/coverage/corpus_type_spec.rb930ee/spec/controllers/profiles/billings_controller_spec.rb931ee/spec/requests/admin/impersonation_tokens_controller_spec.rb932ee/spec/requests/api/graphql/group/ci_cd_settings_spec.rb933ee/spec/requests/api/graphql/mutations/incident_management/oncall_schedule/destroy_spec.rb934ee/spec/controllers/profiles/usage_quotas_controller_spec.rb935ee/spec/requests/api/search_spec.rb936Filter specs:937Running specs:938Running all node tests without filter939ee/spec/requests/api/vulnerabilities_spec.rb940ee/spec/requests/api/issues_spec.rb941ee/spec/requests/api/graphql/geo/registries_spec.rb942ee/spec/mailers/notify_spec.rb943ee/spec/requests/api/project_approval_settings_spec.rb944ee/spec/requests/api/project_approval_rules_spec.rb945ee/spec/requests/api/merge_requests_spec.rb946ee/spec/controllers/projects/mirrors_controller_spec.rb947ee/spec/requests/admin/credentials_controller_spec.rb948ee/spec/requests/api/status_checks_spec.rb949ee/spec/controllers/registrations/groups_projects_controller_spec.rb950ee/spec/requests/api/internal/kubernetes_spec.rb951ee/spec/requests/api/graphql/compliance_management/merge_requests/compliance_violations_spec.rb952ee/spec/controllers/groups/audit_events_controller_spec.rb953ee/spec/controllers/groups/sso_controller_spec.rb954ee/spec/controllers/projects/security/vulnerabilities/notes_controller_spec.rb955ee/spec/requests/api/graphql/iteration_spec.rb956ee/spec/requests/api/project_aliases_spec.rb957ee/spec/controllers/ee/projects/jobs_controller_spec.rb958ee/spec/requests/api/graphql/mutations/work_items/update_spec.rb959ee/spec/requests/api/graphql/mutations/audit_events/external_audit_event_destinations/create_spec.rb960ee/spec/controllers/projects/integrations/jira/issues_controller_spec.rb961ee/spec/requests/api/analytics/product_analytics_spec.rb962ee/spec/controllers/projects/path_locks_controller_spec.rb963ee/spec/controllers/groups/security/policies_controller_spec.rb964ee/spec/requests/projects/settings/access_tokens_controller_spec.rb965ee/spec/requests/api/resource_iteration_events_spec.rb966ee/spec/requests/api/graphql/boards/epic_board_list_epics_query_spec.rb967ee/spec/requests/api/graphql/mutations/iterations/update_spec.rb968ee/spec/controllers/groups/analytics/ci_cd_analytics_controller_spec.rb969ee/spec/requests/api/group_variables_spec.rb970ee/spec/requests/api/graphql/project/product_analytics_spec.rb971ee/spec/requests/api/graphql/mutations/boards/create_spec.rb972ee/spec/requests/api/graphql/mutations/issues/update_spec.rb973ee/spec/requests/api/protected_tags_spec.rb974ee/spec/requests/api/resource_state_events_spec.rb975ee/spec/controllers/projects/security/dashboard_controller_spec.rb976ee/spec/requests/api/graphql/project/dast_site_profiles_spec.rbKnapsack report generator started!977WARNING: Shared example group agent token tracking was defined without a block and will have no effect. Please define a block or remove the definition.. Called from /builds/gitlab-org/gitlab/ee/spec/requests/api/internal/kubernetes_spec.rb:270:in `block (2 levels) in <top (required)>'.978Run options: exclude {:quarantine=>true, :level=>"migration"}979==> Starting Gitaly set up...980==> Starting GitLab Elasticsearch Indexer set up...981Test environment set up in 0.699860426 seconds982API::Vulnerabilities983 GET /projects/:id/vulnerabilities984 with an authorized user with proper permissions985 returns all vulnerabilities of a project986 with pagination987 paginates the vulnerabilities according to the pagination params988 behaves like forbids access to vulnerability API endpoint in case of disabled features989 when security dashboard feature is not available990 responds with 403 Forbidden991 permissions992 is expected to be allowed for :admin993 is expected to be allowed for :owner994 is expected to be allowed for :maintainer995 is expected to be allowed for :developer996 is expected to be allowed for :auditor997 is expected to be denied for :reporter998 is expected to be denied for :guest999 is expected to be denied for :anonymous1000 GET /vulnerabilities/:id1001 with an authorized user with proper permissions1002 returns the desired vulnerability1003 returns the desired findings1004 behaves like responds with "not found" for an unknown vulnerability ID1005 is expected to respond with numeric status code not_found1006 behaves like forbids access to vulnerability API endpoint in case of disabled features1007 when security dashboard feature is not available1008 responds with 403 Forbidden1009 permissions1010 is expected to be allowed for :admin1011 is expected to be allowed for :owner1012 is expected to be allowed for :maintainer1013 is expected to be allowed for :developer1014 is expected to be allowed for :auditor1015 is expected to be denied for :reporter1016 is expected to be denied for :guest1017 is expected to be denied for :anonymous1018 POST /projects/:id/vulnerabilities1019 with an authorized user with proper permissions1020 creates a vulnerability from finding and attaches it to the vulnerability1021 when finding id is unknown1022 responds with expected error1023 when a vulnerability already exists for a specific finding1024 rejects creation of a new vulnerability from this finding1025 behaves like forbids access to vulnerability API endpoint in case of disabled features1026 when security dashboard feature is not available1027 responds with 403 Forbidden1028 permissions1029 is expected to be allowed for :admin1030 is expected to be allowed for :owner1031 is expected to be allowed for :maintainer1032 is expected to be allowed for :developer1033 is expected to be denied for :auditor1034 is expected to be denied for :reporter1035 is expected to be denied for :guest1036 is expected to be denied for :anonymous1037 POST /vulnerabilities:id/dismiss1038 with an authorized user with proper permissions1039 when deprecate_vulnerabilities_feedback is disabled1040 dismisses a vulnerability and its associated findings1041 behaves like responds with "not found" for an unknown vulnerability ID1042 is expected to respond with numeric status code not_found1043 when there is a dismissal error1044 responds with error1045 if a vulnerability is already dismissed1046 responds with 304 Not Modified1047 behaves like forbids access to vulnerability API endpoint in case of disabled features1048 when security dashboard feature is not available1049 responds with 403 Forbidden1050 permissions1051 is expected to be allowed for :admin1052 is expected to be allowed for :owner1053 is expected to be allowed for :maintainer1054 is expected to be allowed for :developer1055 is expected to be denied for :auditor1056 is expected to be denied for :reporter1057 is expected to be denied for :guest1058 is expected to be denied for :anonymous1059 POST /vulnerabilities/:id/resolve1060 with an authorized user with proper permissions1061 resolves a vulnerability and its associated findings1062 behaves like responds with "not found" for an unknown vulnerability ID1063 is expected to respond with numeric status code not_found1064 when the vulnerability is already resolved1065 responds with 304 Not Modified response1066 behaves like forbids access to vulnerability API endpoint in case of disabled features1067 when security dashboard feature is not available1068 responds with 403 Forbidden1069 permissions1070 is expected to be allowed for :admin1071 is expected to be allowed for :owner1072 is expected to be allowed for :maintainer1073 is expected to be allowed for :developer1074 is expected to be denied for :auditor1075 is expected to be denied for :reporter1076 is expected to be denied for :guest1077 is expected to be denied for :anonymous1078 POST /vulnerabilities/:id/confirm1079 with an authorized user with proper permissions1080 confirms a vulnerability and its associated findings1081 behaves like responds with "not found" for an unknown vulnerability ID1082 is expected to respond with numeric status code not_found1083 when the vulnerability is already confirmed1084 responds with 304 Not Modified response1085 behaves like forbids access to vulnerability API endpoint in case of disabled features1086 when security dashboard feature is not available1087 responds with 403 Forbidden1088 permissions1089 is expected to be allowed for :admin1090 is expected to be allowed for :owner1091 is expected to be allowed for :maintainer1092 is expected to be allowed for :developer1093 is expected to be denied for :auditor1094 is expected to be denied for :reporter1095 is expected to be denied for :guest1096 is expected to be denied for :anonymous1097 POST /vulnerabilities:id/revert1098 with an authorized user with proper permissions1099 reverts a vulnerability and its associated findings to detected state1100 behaves like responds with "not found" for an unknown vulnerability ID1101 is expected to respond with numeric status code not_found1102 when there is a revert error1103 responds with error1104 if a vulnerability is already in detected state1105 responds with 304 Not Modified1106 behaves like forbids access to vulnerability API endpoint in case of disabled features1107 when security dashboard feature is not available1108 responds with 403 Forbidden1109 permissions1110 is expected to be allowed for :admin1111 is expected to be allowed for :owner1112 is expected to be allowed for :maintainer1113 is expected to be allowed for :developer1114 is expected to be denied for :auditor1115 is expected to be denied for :reporter1116 is expected to be denied for :guest1117 is expected to be denied for :anonymous1118API::Issues1119 GET /issues1120 when authenticated1121 matches V4 response schema1122 blocking issues count1123 returns a blocking issues count of 0 if there are no blocking issues1124 returns a blocking issues count of 1 if there exists a blocking issue1125 filtering by weight1126 returns issues with specific weight1127 returns issues with no weight1128 returns issues with any weight1129 returns issues without specific weight1130 filtering by health status1131 returns issues with specific health_status1132 returns issues with any health_status1133 returns issues with no health_status1134 returns bad request when unsupported value is supplied1135 filtering by assignee_username1136 returns issues with multiple assignees1137 behaves like filtering by epic_id1138 returns issues without epic when epic_id is "None"1139 returns issues with any epic when epic_id is "Any"1140 returns issues with any epic when epic_id is specific1141 filtering by iteration1142 returns issues with specific iteration1143 returns issues with no iteration1144 returns issues with any iteration1145 returns no issues on user dashboard issues list1146 returns issues with a specific iteration title1147 GET /groups/:id/issues1148 avoids N+1 queries with epics1149 avoids N+1 queries with iterations1150 filtering by assignee_username1151 returns issues with multiple assignees1152 behaves like filtering by epic_id1153 returns issues without epic when epic_id is "None"1154 returns issues with any epic when epic_id is "Any"1155 returns issues with any epic when epic_id is specific1156 behaves like exposes epic1157 with epics feature1158 contains epic_iid in response1159 contains epic in response1160 and epic issue is not present1161 exposes epic as nil1162 without epics feature1163 does not contain epic_iid in response1164 does not contain epic_iid in response1165 behaves like exposes iteration1166 with iteration feature1167 contains iteration in response1168 without iterations feature1169 does not contain iteration in response1170 filtering by iteration1171 returns issues with Current iteration1172 GET /projects/:id/issues1173 filtering by assignee_username1174 returns issues with multiple assignees1175 behaves like filtering by epic_id1176 returns issues without epic when epic_id is "None"1177 returns issues with any epic when epic_id is "Any"1178 returns issues with any epic when epic_id is specific1179 on personal project1180 does not contain epic_iid in response1181 on group project1182 behaves like exposes epic1183 with epics feature1184 contains epic_iid in response1185 contains epic in response1186 and epic issue is not present1187 exposes epic as nil1188 without epics feature1189 does not contain epic_iid in response1190 does not contain epic_iid in response1191 behaves like exposes iteration1192 with iteration feature1193 contains iteration in response1194 without iterations feature1195 does not contain iteration in response1196 filtering by iteration1197 returns issues with Current iteration1198 GET /project/:id/issues/:issue_id1199 on personal project1200 does not contain epic_iid in response1201 on group project1202 behaves like exposes epic1203 with epics feature1204 contains epic_iid in response1205 contains epic in response1206 and epic issue is not present1207 exposes epic as nil1208 without epics feature1209 does not contain epic_iid in response1210 does not contain epic_iid in response1211 when specificied issue is of type task1212 returns a not found status code1213 POST /projects/:id/issues1214 creates a new project issue1215 does not allow the creation of an issue of type task1216 behaves like with epic parameter1217 for a group project1218 with epics feature1219 when user can admin epics1220 with epic_id parameter1221 sets epic on issue1222 with deprecated epic_iid parameter1223 sets epic on issue1224 when user can not edit epics1225 returns an error1226 without epics feature1227 does not set epic on issue1228 when both epic_id and epic_iid is used1229 returns an error1230 for a user project1231 does not set epic on issue1232 PUT /projects/:id/issues/:issue_iid to update weight1233 updates an issue with no weight1234 removes a weight from an issue1235 returns 400 if weight is less than minimum weight1236 creates a ResourceWeightEvent1237 does not create a system note1238 adds a note when the weight is changed1239 issuable weights unlicensed1240 ignores the update1241 PUT /projects/:id/issues/:issue_iid to update epic1242 behaves like with epic parameter1243 for a group project1244 with epics feature1245 when user can admin epics1246 with epic_id parameter1247 sets epic on issue1248 with deprecated epic_iid parameter1249 sets epic on issue1250 when user can not edit epics1251 returns an error1252 without epics feature1253 does not set epic on issue1254 when both epic_id and epic_iid is used1255 returns an error1256 for a user project1257 does not set epic on issue1258 PUT /projects/:id/issues/:issue_iid/metric_images/authorize1259 authorizes uploading with workhorse header1260 rejects requests that bypassed gitlab-workhorse1261 when using remote storage1262 when direct upload is enabled1263 responds with status 200, location of file remote store and object details1264 when direct upload is disabled1265 handles as a local file1266 POST /projects/:id/issues/:issue_iid/metric_images1267 user_role: :guest, own_issue: true, expected_status: :unauthorized_upload1268 behaves like unauthorized_upload1269 disallows the upload1270 user_role: :guest, own_issue: false, expected_status: :unauthorized_upload1271 behaves like unauthorized_upload1272 disallows the upload1273 user_role: :reporter, own_issue: true, expected_status: :can_upload_metric_image1274 behaves like can_upload_metric_image1275 creates a new metric image1276 user_role: :reporter, own_issue: false, expected_status: :can_upload_metric_image1277 behaves like can_upload_metric_image1278 creates a new metric image1279 file size too large1280 returns an error1281 object storage enabled1282 uploads to remote storage1283 behaves like can_upload_metric_image1284 creates a new metric image1285 GET /projects/:id/issues/:issue_iid/metric_images1286 user_role: :not_member, own_issue: false, issue_confidential: false, expected_status: :unauthorized_read1287 behaves like unauthorized_read1288 cannot read the metric images1289 user_role: :guest, own_issue: false, issue_confidential: true, expected_status: :unauthorized_read1290 behaves like unauthorized_read1291 cannot read the metric images1292 user_role: :guest, own_issue: true, issue_confidential: false, expected_status: :can_read_metric_image1293 behaves like can_read_metric_image1294 can read the metric images1295 user_role: :guest, own_issue: false, issue_confidential: false, expected_status: :can_read_metric_image1296 behaves like can_read_metric_image1297 can read the metric images1298 user_role: :reporter, own_issue: true, issue_confidential: false, expected_status: :can_read_metric_image1299 behaves like can_read_metric_image1300 can read the metric images1301 user_role: :reporter, own_issue: false, issue_confidential: false, expected_status: :can_read_metric_image1302 behaves like can_read_metric_image1303 can read the metric images1304 PUT /projects/:id/issues/:issue_iid/metric_images/:metric_image_id1305 user_role: :not_member, own_issue: false, issue_confidential: false, expected_status: :unauthorized_update1306 behaves like unauthorized_update1307 cannot delete the metric image1308 user_role: :not_member, own_issue: true, issue_confidential: false, expected_status: :unauthorized_update1309 behaves like unauthorized_update1310 cannot delete the metric image1311 user_role: :not_member, own_issue: true, issue_confidential: true, expected_status: :unauthorized_update1312 behaves like unauthorized_update1313 cannot delete the metric image1314 user_role: :guest, own_issue: false, issue_confidential: true, expected_status: :not_found1315 behaves like not_found1316 cannot delete the metric image1317 user_role: :guest, own_issue: false, issue_confidential: false, expected_status: :unauthorized_update1318 behaves like unauthorized_update1319 cannot delete the metric image1320 user_role: :guest, own_issue: true, issue_confidential: false, expected_status: :can_update_metric_image1321 behaves like can_update_metric_image1322 can update the metric images1323 user_role: :reporter, own_issue: true, issue_confidential: false, expected_status: :can_update_metric_image1324 behaves like can_update_metric_image1325 can update the metric images1326 user_role: :reporter, own_issue: false, issue_confidential: false, expected_status: :can_update_metric_image1327 behaves like can_update_metric_image1328 can update the metric images1329 user has access1330 metric image not found1331 returns an error1332 metric image cannot be updated1333 returns an error1334 DELETE /projects/:id/issues/:issue_iid/metric_images/:metric_image_id1335 user_role: :not_member, own_issue: false, issue_confidential: false, expected_status: :unauthorized_delete1336 behaves like unauthorized_delete1337 cannot delete the metric image1338 user_role: :not_member, own_issue: true, issue_confidential: false, expected_status: :unauthorized_delete1339 behaves like unauthorized_delete1340 cannot delete the metric image1341 user_role: :not_member, own_issue: true, issue_confidential: true, expected_status: :unauthorized_delete1342 behaves like unauthorized_delete1343 cannot delete the metric image1344 user_role: :guest, own_issue: false, issue_confidential: true, expected_status: :not_found1345 behaves like not_found1346 cannot delete the metric image1347 user_role: :guest, own_issue: false, issue_confidential: false, expected_status: :unauthorized_delete1348 behaves like unauthorized_delete1349 cannot delete the metric image1350 user_role: :guest, own_issue: true, issue_confidential: false, expected_status: :can_delete_metric_image1351 behaves like can_delete_metric_image1352 can delete the metric images1353 user_role: :reporter, own_issue: true, issue_confidential: false, expected_status: :can_delete_metric_image1354 behaves like can_delete_metric_image1355 can delete the metric images1356 user_role: :reporter, own_issue: false, issue_confidential: false, expected_status: :can_delete_metric_image1357 behaves like can_delete_metric_image1358 can delete the metric images1359 user has access1360 metric image not found1361 returns an error1362Gets registries1363 behaves like gets registries for1364 returns registries1365 behaves like a working graphql query1366 returns a successful response1367 when paginating1368 supports cursor-based pagination1369 returns the correct page of registries1370 behaves like gets registries for1371 returns registries1372 behaves like a working graphql query1373 returns a successful response1374 when paginating1375 supports cursor-based pagination1376 returns the correct page of registries1377 behaves like gets registries for1378 returns registries1379 behaves like a working graphql query1380 returns a successful response1381 when paginating1382 supports cursor-based pagination1383 returns the correct page of registries1384 behaves like gets registries for1385 returns registries1386 behaves like a working graphql query1387 returns a successful response1388 when paginating1389 supports cursor-based pagination1390 returns the correct page of registries1391 behaves like gets registries for1392 returns registries1393 behaves like a working graphql query1394 returns a successful response1395 when paginating1396 supports cursor-based pagination1397 returns the correct page of registries1398 behaves like gets registries for1399 returns registries1400 behaves like a working graphql query1401 returns a successful response1402 when paginating1403 supports cursor-based pagination1404 returns the correct page of registries1405 behaves like gets registries for1406 returns registries1407 behaves like a working graphql query1408 returns a successful response1409 when paginating1410 supports cursor-based pagination1411 returns the correct page of registries1412 behaves like gets registries for1413 returns registries1414 behaves like a working graphql query1415 returns a successful response1416 when paginating1417 supports cursor-based pagination1418 returns the correct page of registries1419 behaves like gets registries for1420 returns registries1421 behaves like a working graphql query1422 returns a successful response1423 when paginating1424 supports cursor-based pagination1425 returns the correct page of registries1426 behaves like gets registries for1427 returns registries1428 behaves like a working graphql query1429 returns a successful response1430 when paginating1431 supports cursor-based pagination1432 returns the correct page of registries1433 behaves like gets registries for1434 returns registries1435 behaves like a working graphql query1436 returns a successful response1437 when paginating1438 supports cursor-based pagination1439 returns the correct page of registries1440 behaves like gets registries for1441 returns registries1442 behaves like a working graphql query1443 returns a successful response1444 when paginating1445 supports cursor-based pagination1446 returns the correct page of registries1447Notify1448 for a project1449 for merge requests1450 that are new with approver1451 contains the approvers list1452 that are approved1453 is sent as the last approver1454 has the correct subject1455 contains the new status1456 contains a link to the merge request1457 contains the names of all of the approvers1458 contains the names of all assignees1459 behaves like a multiple recipients email1460 is sent to the given recipient1461 behaves like an answer to an existing thread with reply-by-email enabled1462 has X-GitLab-Project headers1463 has X-GitLab-*-ID header1464 has X-GitLab-*-IID header if model has iid defined1465 has X-GitLab-Project headers1466 has X-GitLab-*-ID header1467 has X-GitLab-*-IID header if model has iid defined1468 has the characteristics of a threaded reply1469 when reply-by-email is enabled with incoming address with %{key}1470 has a Reply-To header1471 when reply-by-email is enabled with incoming address without %{key}1472 has X-GitLab-Project headers1473 has X-GitLab-*-ID header1474 has X-GitLab-*-IID header if model has iid defined1475 has the characteristics of a threaded reply1476 has a Reply-To header1477 behaves like it should show Gmail Actions View Merge request link1478 is expected to have body including "View Merge request"1479 behaves like it should have Gmail Actions links1480 is expected to have body including "ViewAction"1481 behaves like an unsubscribeable thread1482 has a List-Unsubscribe header in the correct format, and a body link1483 behaves like an unsubscribeable thread with incoming address without %{key}1484 has a List-Unsubscribe header in the correct format, and a body link1485 when merge request has no assignee1486 does not show the assignee1487 that are unapproved1488 is sent as the last unapprover1489 has the correct subject1490 contains the new status1491 contains a link to the merge request1492 contains the names of all of the approvers1493 contains the names of all assignees1494 behaves like a multiple recipients email1495 is sent to the given recipient1496 behaves like an answer to an existing thread with reply-by-email enabled1497 has X-GitLab-Project headers1498 has X-GitLab-*-ID header1499 has X-GitLab-*-IID header if model has iid defined1500 has X-GitLab-Project headers1501 has X-GitLab-*-ID header1502 has X-GitLab-*-IID header if model has iid defined1503 has the characteristics of a threaded reply1504 when reply-by-email is enabled with incoming address with %{key}1505 has a Reply-To header1506 when reply-by-email is enabled with incoming address without %{key}1507 has X-GitLab-Project headers1508 has X-GitLab-*-ID header1509 has X-GitLab-*-IID header if model has iid defined1510 has the characteristics of a threaded reply1511 has a Reply-To header1512 behaves like it should show Gmail Actions View Merge request link1513 is expected to have body including "View Merge request"1514 behaves like it should have Gmail Actions links1515 is expected to have body including "ViewAction"1516 behaves like an unsubscribeable thread1517 has a List-Unsubscribe header in the correct format, and a body link1518 behaves like an unsubscribeable thread with incoming address without %{key}1519 has a List-Unsubscribe header in the correct format, and a body link1520 for merge requests without assignee1521 that are unapproved1522 contains the new status1523 for a group1524 for epics1525 that are new1526 has the correct subject and body1527 contains a link to epic author1528 contains a link to the epic1529 behaves like an epic email starting a new thread with reply-by-email enabled1530 has the characteristics of a threaded email1531 when reply-by-email is enabled with incoming address with %{key}1532 has a Reply-To header1533 when reply-by-email is enabled with incoming address without %{key}1534 has the characteristics of a threaded email1535 has a Reply-To header1536 behaves like it should show Gmail Actions View Epic link1537 is expected to have body including "View Epic"1538 behaves like it should have Gmail Actions links1539 is expected to have body including "ViewAction"1540 behaves like an unsubscribeable thread1541 has a List-Unsubscribe header in the correct format, and a body link1542 behaves like an unsubscribeable thread with incoming address without %{key}1543 has a List-Unsubscribe header in the correct format, and a body link1544 behaves like having group identification headers1545 has specific group headers1546 got deleted before notification1547 does not send email1548 that changed status1549 behaves like epic notifications with reply1550 has the characteristics of a threaded reply1551 has a Reply-To header1552 has the correct subject and body1553 behaves like having group identification headers1554 has specific group headers1555 behaves like it should show Gmail Actions View Epic link1556 is expected to have body including "View Epic"1557 behaves like it should have Gmail Actions links1558 is expected to have body including "ViewAction"1559 behaves like an unsubscribeable thread1560 has a List-Unsubscribe header in the correct format, and a body link1561 behaves like an unsubscribeable thread with incoming address without %{key}1562 has a List-Unsubscribe header in the correct format, and a body link1563 for epic notes1564 behaves like epic notifications with reply1565 has the characteristics of a threaded reply1566 has a Reply-To header1567 has the correct subject and body1568 behaves like having group identification headers1569 has specific group headers1570 behaves like it should show Gmail Actions View Epic link1571 is expected to have body including "View Epic"1572 behaves like it should have Gmail Actions links1573 is expected to have body including "ViewAction"1574 behaves like an unsubscribeable thread1575 has a List-Unsubscribe header in the correct format, and a body link1576 behaves like an unsubscribeable thread with incoming address without %{key}1577 has a List-Unsubscribe header in the correct format, and a body link1578 behaves like a note email1579 is sent to the given recipient as the author1580 contains the message from the note1581 contains a link to note author1582 behaves like it should have Gmail Actions links1583 is expected to have body including "ViewAction"1584 mirror was hard failed1585 has the correct subject and body1586 behaves like an email sent from GitLab1587 has the characteristics of an email sent from GitLab1588 behaves like it should not have Gmail Actions links1589 is expected not to have body including "ViewAction"1590 behaves like a user cannot unsubscribe through footer link1591 does not have a List-Unsubscribe header or a body link1592 mirror was disabled1593 has the correct subject and body1594 behaves like an email sent from GitLab1595 has the characteristics of an email sent from GitLab1596 behaves like it should not have Gmail Actions links1597 is expected not to have body including "ViewAction"1598 behaves like a user cannot unsubscribe through footer link1599 does not have a List-Unsubscribe header or a body link1600 user was deleted1601 does not send email1602 mirror user changed1603 has the correct subject and body1604 behaves like an email sent from GitLab1605 has the characteristics of an email sent from GitLab1606 behaves like it should not have Gmail Actions links1607 is expected not to have body including "ViewAction"1608 behaves like a user cannot unsubscribe through footer link1609 does not have a List-Unsubscribe header or a body link1610 new user was created via saml1611 delivers mail to user email1612 contains all the useful information1613 behaves like an email sent from GitLab1614 has the characteristics of an email sent from GitLab1615 behaves like it should not have Gmail Actions links1616 is expected not to have body including "ViewAction"1617 behaves like a user cannot unsubscribe through footer link1618 does not have a List-Unsubscribe header or a body link1619 behaves like appearance header and footer enabled1620 contains header and footer1621 behaves like appearance header and footer not enabled1622 does not contain header and footer1623API::ProjectApprovalSettings1624 GET /projects/:id/approval_settings1625 when the request is correct1626 matches the response schema1627 when target_branch is specified1628 filters the rules returned by target branch1629 private group filtering1630 excludes private groups if user has no access1631 includes private groups if user has access1632 report_approver rules1633 includes report_approver rules1634 when project is archived1635 when user has normal permissions1636 returns 4031637 when user has project admin permissions1638 allows access1639 POST /projects/:id/approval_settings/rules1640 behaves like an API endpoint for creating project approval rule1641 behaves like a restricted project approval rule API endpoint1642 when admin_merge_request_approvers_rules license feature is disabled1643 when disable_overriding_approvers_per_merge_request app setting is false1644 behaves like a user with access1645 returns 201 status1646 when disable_overriding_approvers_per_merge_request app setting is true1647 behaves like a user with access1648 returns 201 status1649 when admin_merge_request_approvers_rules license feature is enabled1650 when disable_overriding_approvers_per_merge_request app setting is false1651 behaves like a user with access1652 returns 201 status1653 when disable_overriding_approvers_per_merge_request app setting is true1654 behaves like a user without access1655 returns 4031656 when missing parameters1657 returns 400 status1658 when user is without access1659 behaves like a user without access1660 returns 4031661 when the request is correct1662 changes settings properly1663 behaves like a user with access1664 returns 201 status1665 when protected_branch_ids param is present1666 creates approval rule associated to specified protected branches1667 when applies_to_all_protected_branches param is present1668 returns a list of project protected branches in the response1669 with rule_type set to report_approver1670 without report_type1671 returns a error http status1672 when creating a approval rule for each report_type1673 rule_name: "License-Check", report_type: :license_scanning1674 specifies `report_rule` and `report_type`1675 rule_name: "Coverage-Check", report_type: :code_coverage1676 specifies `report_rule` and `report_type`1677 with valid scanners1678 returns 201 status1679 with valid severity_levels1680 returns 201 status1681 with vulnerabilities_allowed1682 returns 201 status1683 PUT /projects/:id/approval_settings/:approval_rule_id1684 behaves like an API endpoint for updating project approval rule1685 behaves like a restricted project approval rule API endpoint1686 when admin_merge_request_approvers_rules license feature is disabled1687 when disable_overriding_approvers_per_merge_request app setting is false1688 behaves like a user with access1689 sets approvers1690 when applies_to_all_protected_branches param is present1691 returns a list of project protected branches in the response1692 when protected_branch_ids param is present1693 associates approval rule to specified protected branches1694 with valid scanners1695 returns 200 status1696 with nil scanners1697 returns 200 status1698 when scanners is NULL in the database1699 returns 200 status1700 with valid severity_levels1701 returns 200 status1702 when approver already exists1703 when sending json data1704 removes all approvers if empty params are given1705 with vulnerabilities_allowed1706 returns 200 status1707 when disable_overriding_approvers_per_merge_request app setting is true1708 behaves like a user with access1709 sets approvers1710 when applies_to_all_protected_branches param is present1711 returns a list of project protected branches in the response1712 when protected_branch_ids param is present1713 associates approval rule to specified protected branches1714 with valid scanners1715 returns 200 status1716 with nil scanners1717 returns 200 status1718 when scanners is NULL in the database1719 returns 200 status1720 with valid severity_levels1721 returns 200 status1722 when approver already exists1723 when sending json data1724 removes all approvers if empty params are given1725 with vulnerabilities_allowed1726 returns 200 status1727 when admin_merge_request_approvers_rules license feature is enabled1728 when disable_overriding_approvers_per_merge_request app setting is false1729 behaves like a user with access1730 sets approvers1731 when applies_to_all_protected_branches param is present1732 returns a list of project protected branches in the response1733 when protected_branch_ids param is present1734 associates approval rule to specified protected branches1735 with valid scanners1736 returns 200 status1737 with nil scanners1738 returns 200 status1739 when scanners is NULL in the database1740 returns 200 status1741 with valid severity_levels1742 returns 200 status1743 when approver already exists1744 when sending json data1745 removes all approvers if empty params are given1746 with vulnerabilities_allowed1747 returns 200 status1748 when disable_overriding_approvers_per_merge_request app setting is true1749 behaves like a user without access1750 returns 4031751 as a project admin1752 behaves like a user with access1753 sets approvers1754 when applies_to_all_protected_branches param is present1755 returns a list of project protected branches in the response1756 when protected_branch_ids param is present1757 associates approval rule to specified protected branches1758 with valid scanners1759 returns 200 status1760 with nil scanners1761 returns 200 status1762 when scanners is NULL in the database1763 returns 200 status1764 with valid severity_levels1765 returns 200 status1766 when approver already exists1767 when sending json data1768 removes all approvers if empty params are given1769 with vulnerabilities_allowed1770 returns 200 status1771 as a global admin1772 behaves like a user with access1773 sets approvers1774 when applies_to_all_protected_branches param is present1775 returns a list of project protected branches in the response1776 when protected_branch_ids param is present1777 associates approval rule to specified protected branches1778 with valid scanners1779 returns 200 status1780 with nil scanners1781 returns 200 status1782 when scanners is NULL in the database1783 returns 200 status1784 with valid severity_levels1785 returns 200 status1786 when approver already exists1787 when sending json data1788 removes all approvers if empty params are given1789 with vulnerabilities_allowed1790 returns 200 status1791 as a random user1792 behaves like a user without access1793 returns 4031794 DELETE /projects/:id/approval_settings/rules/:approval_rule_id1795 behaves like an API endpoint for deleting project approval rule1796 behaves like a user with access1797 destroys1798 behaves like a restricted project approval rule API endpoint1799 when admin_merge_request_approvers_rules license feature is disabled1800 when disable_overriding_approvers_per_merge_request app setting is false1801 behaves like a user with access1802 destroys1803 when disable_overriding_approvers_per_merge_request app setting is true1804 behaves like a user with access1805 destroys1806 when admin_merge_request_approvers_rules license feature is enabled1807 when disable_overriding_approvers_per_merge_request app setting is false1808 behaves like a user with access1809 destroys1810 when disable_overriding_approvers_per_merge_request app setting is true1811 behaves like a user without access1812 returns 4031813 when approval rule not found1814 returns not found1815 when user is not eligible to delete1816 behaves like a user without access1817 returns 4031818API::ProjectApprovalRules1819 GET /projects/:id/approval_rules/:approval_rule_id1820 when the request is correct1821 matches the response schema1822 when the user is not authorized1823 does not display rule information1824 GET /projects/:id/approval_rules1825 when the request is correct1826 matches the response schema1827 private group filtering1828 excludes private groups if user has no access1829 includes private groups if user has access1830 report_approver rules1831 includes report_approver rules1832 when project is archived1833 when user has normal permissions1834 returns 4031835 when user has project admin permissions1836 allows access1837 POST /projects/:id/approval_rules1838 behaves like an API endpoint for creating project approval rule1839 behaves like a restricted project approval rule API endpoint1840 when admin_merge_request_approvers_rules license feature is disabled1841 when disable_overriding_approvers_per_merge_request app setting is false1842 behaves like a user with access1843 returns 201 status1844 when disable_overriding_approvers_per_merge_request app setting is true1845 behaves like a user with access1846 returns 201 status1847 when admin_merge_request_approvers_rules license feature is enabled1848 when disable_overriding_approvers_per_merge_request app setting is false1849 behaves like a user with access1850 returns 201 status1851 when disable_overriding_approvers_per_merge_request app setting is true1852 behaves like a user without access1853 returns 4031854 when missing parameters1855 returns 400 status1856 when user is without access1857 behaves like a user without access1858 returns 4031859 when the request is correct1860 changes settings properly1861 behaves like a user with access1862 returns 201 status1863 when protected_branch_ids param is present1864 creates approval rule associated to specified protected branches1865 when applies_to_all_protected_branches param is present1866 returns a list of project protected branches in the response1867 with rule_type set to report_approver1868 without report_type1869 returns a error http status1870 when creating a approval rule for each report_type1871 rule_name: "License-Check", report_type: :license_scanning1872 specifies `report_rule` and `report_type`1873 rule_name: "Coverage-Check", report_type: :code_coverage1874 specifies `report_rule` and `report_type`1875 with valid scanners1876 returns 201 status1877 with valid severity_levels1878 returns 201 status1879 with vulnerabilities_allowed1880 returns 201 status1881 PUT /projects/:id/approval_rules/:approval_rule_id1882 behaves like an API endpoint for updating project approval rule1883 behaves like a restricted project approval rule API endpoint1884 when admin_merge_request_approvers_rules license feature is disabled1885 when disable_overriding_approvers_per_merge_request app setting is false1886 behaves like a user with access1887 sets approvers1888 when applies_to_all_protected_branches param is present1889 returns a list of project protected branches in the response1890 when protected_branch_ids param is present1891 associates approval rule to specified protected branches1892 with valid scanners1893 returns 200 status1894 with nil scanners1895 returns 200 status1896 when scanners is NULL in the database1897 returns 200 status1898 with valid severity_levels1899 returns 200 status1900 when approver already exists1901 when sending json data1902 removes all approvers if empty params are given1903 with vulnerabilities_allowed1904 returns 200 status1905 when disable_overriding_approvers_per_merge_request app setting is true1906 behaves like a user with access1907 sets approvers1908 when applies_to_all_protected_branches param is present1909 returns a list of project protected branches in the response1910 when protected_branch_ids param is present1911 associates approval rule to specified protected branches1912 with valid scanners1913 returns 200 status1914 with nil scanners1915 returns 200 status1916 when scanners is NULL in the database1917 returns 200 status1918 with valid severity_levels1919 returns 200 status1920 when approver already exists1921 when sending json data1922 removes all approvers if empty params are given1923 with vulnerabilities_allowed1924 returns 200 status1925 when admin_merge_request_approvers_rules license feature is enabled1926 when disable_overriding_approvers_per_merge_request app setting is false1927 behaves like a user with access1928 sets approvers1929 when applies_to_all_protected_branches param is present1930 returns a list of project protected branches in the response1931 when protected_branch_ids param is present1932 associates approval rule to specified protected branches1933 with valid scanners1934 returns 200 status1935 with nil scanners1936 returns 200 status1937 when scanners is NULL in the database1938 returns 200 status1939 with valid severity_levels1940 returns 200 status1941 when approver already exists1942 when sending json data1943 removes all approvers if empty params are given1944 with vulnerabilities_allowed1945 returns 200 status1946 when disable_overriding_approvers_per_merge_request app setting is true1947 behaves like a user without access1948 returns 4031949 as a project admin1950 behaves like a user with access1951 sets approvers1952 when applies_to_all_protected_branches param is present1953 returns a list of project protected branches in the response1954 when protected_branch_ids param is present1955 associates approval rule to specified protected branches1956 with valid scanners1957 returns 200 status1958 with nil scanners1959 returns 200 status1960 when scanners is NULL in the database1961 returns 200 status1962 with valid severity_levels1963 returns 200 status1964 when approver already exists1965 when sending json data1966 removes all approvers if empty params are given1967 with vulnerabilities_allowed1968 returns 200 status1969 as a global admin1970 behaves like a user with access1971 sets approvers1972 when applies_to_all_protected_branches param is present1973 returns a list of project protected branches in the response1974 when protected_branch_ids param is present1975 associates approval rule to specified protected branches1976 with valid scanners1977 returns 200 status1978 with nil scanners1979 returns 200 status1980 when scanners is NULL in the database1981 returns 200 status1982 with valid severity_levels1983 returns 200 status1984 when approver already exists1985 when sending json data1986 removes all approvers if empty params are given1987 with vulnerabilities_allowed1988 returns 200 status1989 as a random user1990 behaves like a user without access1991 returns 4031992 DELETE /projects/:id/approval_rules/:approval_rule_id1993 behaves like an API endpoint for deleting project approval rule1994 behaves like a user with access1995 destroys1996 behaves like a restricted project approval rule API endpoint1997 when admin_merge_request_approvers_rules license feature is disabled1998 when disable_overriding_approvers_per_merge_request app setting is false1999 behaves like a user with access2000 destroys2001 when disable_overriding_approvers_per_merge_request app setting is true2002 behaves like a user with access2003 destroys2004 when admin_merge_request_approvers_rules license feature is enabled2005 when disable_overriding_approvers_per_merge_request app setting is false2006 behaves like a user with access2007 destroys2008 when disable_overriding_approvers_per_merge_request app setting is true2009 behaves like a user without access2010 returns 4032011 when approval rule not found2012 returns not found2013 when user is not eligible to delete2014 behaves like a user without access2015 returns 4032016API::MergeRequests2017 PUT /projects/:id/merge_requests2018 multiple assignees2019 when licensed2020 creates merge request with multiple assignees2021 when assignees is over the limit2022 does not create merge request with too many assignees2023 when not licensed2024 creates merge request with a single assignee2025 reviewers over the max limit2026 when licensed2027 does not create merge request with too many reviewers2028 when not licensed2029 creates merge request with a single reviewer2030 when updating existing approval rules2031 is successful2032 POST /projects/:id/merge_requests2033 reviewers over the max limit2034 when licensed2035 does not create merge request with too many reviewers2036 when not licensed2037 creates merge request with a single reviewer2038 multiple assignees2039 when licensed2040 creates merge request with multiple assignees2041 when not licensed2042 creates merge request with a single assignee2043 between branches projects2044 returns merge_request2045 the approvals_before_merge param2046 when the target project has disable_overriding_approvers_per_merge_request set to true2047 does not set approvals_before_merge2048 when the target project has disable_overriding_approvers_per_merge_request set to false2049 sets approvals_before_merge2050 PUT /projects/:id/merge_requests/:merge_request_iid/merge2051 returns 405 if merge request was not approved2052 returns 200 if merge request was approved2053 DELETE /projects/:id/merge_requests/:merge_request_iid2054 when the merge request is on the merge train2055 removes train ref2056 when authenticated2057 filter merge requests by assignee ID2058 returns merge requests with given assignee ID2059 filter merge requests by approver IDs2060 with specified approver id2061 returns an array of merge requests which have specified the user as an approver2062 with specified None as a param2063 returns an array of merge requests with no approvers2064 with specified Any as a param2065 returns an array of merge requests with any approver2066 with any other string as a param2067 returns a validation error2068 filter merge requests by approved_by_ids2069 behaves like filter merge requests by approved_by_x2070 with specified approved_by param2071 returns an array of merge requests which have specified the user as an approver2072 with multiple specified approved_by params2073 when approved by all users2074 returns an array of merge requests which have specified the user as an approver2075 when not approved by all users2076 does not return any merge request2077 with specified None as a param2078 returns an array of merge requests with no approvers2079 with specified Any as a param2080 returns an array of merge requests with any approver2081 with any other string as a param2082 returns a validation error2083 filter merge requests by approved_by_usernames2084 behaves like filter merge requests by approved_by_x2085 with specified approved_by param2086 returns an array of merge requests which have specified the user as an approver2087 with multiple specified approved_by params2088 when approved by all users2089 returns an array of merge requests which have specified the user as an approver2090 when not approved by all users2091 does not return any merge request2092 with specified None as a param2093 returns an array of merge requests with no approvers2094 with specified Any as a param2095 returns an array of merge requests with any approver2096 with any other string as a param2097 returns a validation error2098Projects::MirrorsController2099 setting up a remote mirror2100 when the current project is a mirror2101 allows to create a remote mirror2102 allows to create a remote mirror with mirror_branch_regex2103 allows only mirror protected branches2104 allows mirror all branches2105 do not allow invalid regex2106 when `mirror_only_branches_match_regex` FF is disabled2107 ignores mirror_branch_regex parameter2108 when the current project has a remote mirror2109 mirror_user is unset2110 sets up a pull mirror with the mirror user set to the signed-in user2111 mirror_user is not the current user2112 sets up a pull mirror with the mirror user set to the signed-in user2113 setting up a mirror2114 when mirrors are disabled2115 when user is admin2116 creates a new mirror2117 when user is not an admin2118 does not create a new mirror2119 when mirrors are enabled2120 when project does not have a mirror2121 allows to create a mirror2122 when project has a mirror2123 is able to disable the mirror2124 forcing an update on a pull mirror2125 forces update2126 #update2127 JSON2128 processes a successful update2129 processes an unsuccessful update2130 preserves the import_data object when the ID isn't in the request2131 sets ssh_known_hosts_verified_at and verified_by when the update sets known hosts2132 unsets ssh_known_hosts_verified_at and verified_by when the update unsets known hosts2133 only allows the current user to be the mirror user2134 with a valid URL for a pull2135 processes a successful update2136 with a invalid URL for a pull2137 processes an unsuccessful update2138 with an invalid port for a pull2139 processes an unsuccessful update2140 setting up project mirror branches setting2141 mirror all branches2142 enable mirror_branch_regex would ignore only_mirror_protected_branches2143 enable mirror_branch_regex would disable only_protected_branches2144 do not allow invalid regex2145 when `mirror_only_branches_match_regex` FF is disabled2146 ignores mirror_branch_regex parameter2147Admin::CredentialsController2148 GET #index2149 admin user2150 when `credentials_inventory` feature is enabled2151 responds with 2002152 filtering by type of credential2153 no credential type specified2154 behaves like filtering by `personal_access_tokens`2155 is expected to contain exactly #<PersonalAccessToken id: 449, user_id: 810, name: "PAT 449", revoked: false, expires_at: "2022-12-13...expire_notification_delivered: false, last_used_at: nil, after_expiry_notification_delivered: false>, #<PersonalAccessToken id: 452, user_id: 810, name: "PAT 452", revoked: false, expires_at: "2022-12-13...expire_notification_delivered: false, last_used_at: nil, after_expiry_notification_delivered: false>, and #<PersonalAccessToken id: 453, user_id: 810, name: "PAT 453", revoked: false, expires_at: "2022-12-13...expire_notification_delivered: false, last_used_at: nil, after_expiry_notification_delivered: false>2156 non-existent credential type specified2157 behaves like filtering by `personal_access_tokens`2158 is expected to contain exactly #<PersonalAccessToken id: 449, user_id: 810, name: "PAT 449", revoked: false, expires_at: "2022-12-13...expire_notification_delivered: false, last_used_at: nil, after_expiry_notification_delivered: false>, #<PersonalAccessToken id: 452, user_id: 810, name: "PAT 452", revoked: false, expires_at: "2022-12-13...expire_notification_delivered: false, last_used_at: nil, after_expiry_notification_delivered: false>, and #<PersonalAccessToken id: 453, user_id: 810, name: "PAT 453", revoked: false, expires_at: "2022-12-13...expire_notification_delivered: false, last_used_at: nil, after_expiry_notification_delivered: false>2159 credential type specified as `personal_access_tokens`2160 behaves like filtering by `personal_access_tokens`2161 is expected to contain exactly #<PersonalAccessToken id: 449, user_id: 810, name: "PAT 449", revoked: false, expires_at: "2022-12-13...expire_notification_delivered: false, last_used_at: nil, after_expiry_notification_delivered: false>, #<PersonalAccessToken id: 452, user_id: 810, name: "PAT 452", revoked: false, expires_at: "2022-12-13...expire_notification_delivered: false, last_used_at: nil, after_expiry_notification_delivered: false>, and #<PersonalAccessToken id: 453, user_id: 810, name: "PAT 453", revoked: false, expires_at: "2022-12-13...expire_notification_delivered: false, last_used_at: nil, after_expiry_notification_delivered: false>2162 credential type specified as `ssh_keys`2163 filters by ssh keys2164 credential type specified as `resource_access_tokens`2165 filters by project and group access tokens2166 credential type specified as `gpg_keys`2167 filters by gpg keys2168 avoids N+1 queries2169 when `credentials_inventory` feature is disabled2170 returns 4042171 non-admin user2172 returns 4042173 DELETE #destroy2174 behaves like credentials inventory delete SSH key2175 admin user2176 when `credentials_inventory` feature is enabled2177 and the ssh_key exists2178 and it removes the key2179 renders a success message2180 notifies the key owner2181 and it fails to remove the key2182 renders a failure message2183 and the ssh_key does not exist2184 renders a not found message2185 when `credentials_inventory` feature is disabled2186 returns 4042187 non-admin user2188 returns 4042189 PUT #revoke2190 admin user2191 when `credentials_inventory` feature is enabled2192 non-existent personal access token specified2193 behaves like responds with 4042194 is expected to respond with numeric status code not_found2195 is expected to respond with numeric status code not_found2196 is expected to respond with numeric status code not_found2197 with an existing personal access token2198 does not have permissions to revoke the credential2199 behaves like displays the flash error message2200 is expected to eql "Not permitted to revoke"2201 personal access token is already revoked2202 behaves like displays the flash success message2203 is expected to start with "Revoked personal access token "2204 aggregate_failures2205 aggregate_failures2206 personal access token is already expired2207 behaves like displays the flash success message2208 is expected to start with "Revoked personal access token "2209 aggregate_failures2210 aggregate_failures2211 personal access token is not revoked or expired2212 informs the token owner2213 behaves like displays the flash success message2214 is expected to start with "Revoked personal access token "2215 aggregate_failures2216 aggregate_failures2217 when `credentials_inventory` feature is disabled2218 behaves like responds with 4042219 is expected to respond with numeric status code not_found2220 is expected to respond with numeric status code not_found2221 is expected to respond with numeric status code not_found2222 non-admin user2223 behaves like responds with 4042224 is expected to respond with numeric status code not_found2225 is expected to respond with numeric status code not_found2226 is expected to respond with numeric status code not_found2227Admin::CredentialsController2228 behaves like tracking unique visits2229 tracks unique visit if the format is HTML2230 tracks unique visit if DNT is not enabled2231 does not track unique visit if DNT is enabled2232 does not track unique visit if the format is JSON2233API::StatusChecks2234 GET :id/merge_requests/:merge_request_iid/status_checks2235 when current_user has access2236 when merge request has received status check responses2237 returns a 2002238 returns the total number of status checks for the MRs project2239 has the correct status values2240 POST :id/:merge_requests/:merge_request_iid/status_check_responses2241 permissions2242 user_permissions: :maintainer, applies_to_target_project: true, expected_status: :created2243 returns the correct status2244 user_permissions: :maintainer, applies_to_target_project: false, expected_status: :not_found2245 returns the correct status2246 user_permissions: :developer, applies_to_target_project: true, expected_status: :created2247 returns the correct status2248 user_permissions: :developer, applies_to_target_project: false, expected_status: :not_found2249 returns the correct status2250 user_permissions: :guest, applies_to_target_project: true, expected_status: :forbidden2251 returns the correct status2252 user_permissions: :guest, applies_to_target_project: false, expected_status: :not_found2253 returns the correct status2254 when user has access2255 when external status check ID does not belong to the requested project2256 returns a not found status2257 when sha is not the source branch HEAD2258 does not create a new approval2259 returns a conflict error2260 when user is not authenticated2261 returns an unauthorized status2262 DELETE projects/:id/external_status_checks/:check_id2263 deletes the specified rule2264 when feature is disabled, unlicensed or user has permission2265 licensed: false, project_owner: false, status: :not_found2266 returns the correct status code2267 licensed: false, project_owner: true, status: :unauthorized2268 returns the correct status code2269 licensed: true, project_owner: false, status: :not_found2270 returns the correct status code2271 licensed: true, project_owner: true, status: :success2272 returns the correct status code2273 POST projects/:id/external_status_checks2274 successfully creating new external approval rule2275 creates a new external approval rule2276 with protected branches2277 returns expected status code2278 creates protected branch records2279 responds with expected JSON2280 when feature is disabled, unlicensed or user has permission2281 licensed: false, project_owner: false, status: :not_found2282 returns the correct status code2283 licensed: false, project_owner: true, status: :unauthorized2284 returns the correct status code2285 licensed: true, project_owner: false, status: :not_found2286 returns the correct status code2287 licensed: true, project_owner: true, status: :created2288 returns the correct status code2289 GET projects/:id/external_status_checks2290 responds with expected JSON2291 paginates correctly2292 when feature is disabled, unlicensed or user has permission2293 licensed: false, project_owner: false, status: :not_found2294 returns the correct status code2295 licensed: false, project_owner: true, status: :unauthorized2296 returns the correct status code2297 licensed: true, project_owner: false, status: :not_found2298 returns the correct status code2299 licensed: true, project_owner: true, status: :success2300 returns the correct status code2301 PUT projects/:id/external_status_checks/:check_id2302 successfully updating external approval rule2303 updates an approval rule2304 responds with correct http status2305 when referencing a protected branch outside of the project2306 is invalid2307 with protected branches2308 returns expected status code2309 creates protected branch records2310 responds with expected JSON2311 when feature is disabled, unlicensed or user has permission2312 licensed: false, project_owner: false, status: :not_found2313 returns the correct status code2314 licensed: false, project_owner: true, status: :unauthorized2315 returns the correct status code2316 licensed: true, project_owner: false, status: :not_found2317 returns the correct status code2318 licensed: true, project_owner: true, status: :success2319 returns the correct status code2320Registrations::GroupsProjectsController2321 GET #new2322 with an unauthenticated user2323 is expected to respond with numeric status code redirect2324 is expected to redirect to "/users/sign_in"2325 with an authenticated user2326 when on .com2327 is expected to respond with numeric status code ok2328 is expected to render template new2329 assigns the group variable to a new Group with the default group visibility2330 builds a project object2331 tracks the new group view event2332 assigns the required verification experiment to a variant2333 when user does not have the ability to create a group2334 is expected to respond with numeric status code not_found2335 when not on .com2336 is expected to respond with numeric status code not_found2337 behaves like hides email confirmation warning2338 with an unconfirmed email address present2339 is expected not to set confirm warning for "unconfirmed@gitlab.com"2340 without an unconfirmed email address present2341 is expected not to set confirm warning for "user842@example.org"2342 POST #create2343 with an unauthenticated user2344 is expected to respond with numeric status code redirect2345 is expected to redirect to "/users/sign_in"2346 with an authenticated user2347 creates a group and project2348 behaves like hides email confirmation warning2349 with an unconfirmed email address present2350 is expected not to set confirm warning for "unconfirmed@gitlab.com"2351 without an unconfirmed email address present2352 is expected not to set confirm warning for "user844@example.org"2353 behaves like finishing onboarding2354 when current user onboarding is disabled2355 does not finish onboarding2356 when ensure_onboarding is disabled2357 does not finish onboarding2358 when onboarding and feature flag are enabled2359 finishes onboarding2360 when there is no suggested path based from the name2361 creates a group2362 when the group cannot be created2363 does not create a group2364 the project is not disregarded completely2365 is expected to respond with numeric status code ok2366 is expected to render template new2367 with signup onboarding not enabled2368 is expected to respond with numeric status code not_found2369 when group can be created but the project can't2370 does not create a project2371 is expected to respond with numeric status code ok2372 is expected to render template new2373 when a group is already created but a project isn't2374 creates a project and not another group2375 when redirecting2376 is expected to redirect to "/users/sign_up/welcome/continuous_onboarding_getting_started?project_id=520"2377 when the `registration_verification` experiment is enabled2378 is expected to store the success path and redirect to the verification page2379 POST #import2380 with an unauthenticated user2381 is expected to respond with numeric status code redirect2382 is expected to redirect to "/users/sign_in"2383 with an authenticated user2384 behaves like hides email confirmation warning2385 with an unconfirmed email address present2386 is expected not to set confirm warning for "unconfirmed@gitlab.com"2387 without an unconfirmed email address present2388 is expected not to set confirm warning for "user848@example.org"2389 behaves like finishing onboarding2390 when current user onboarding is disabled2391 does not finish onboarding2392 when ensure_onboarding is disabled2393 does not finish onboarding2394 when onboarding and feature flag are enabled2395 finishes onboarding2396 when a group can't be created2397 is expected to render template new2398 when there is no suggested path based from the group name2399 creates a group, and redirects2400 when group can be created2401 creates a group2402 redirects to the import url with a namespace_id parameter2403 PUT #exit2404 with an unauthenticated user2405 is expected to respond with numeric status code redirect2406 is expected to redirect to "/users/sign_in"2407 with an authenticated user2408 is expected to respond with numeric status code redirect2409 is expected to redirect to "http://test.host/"2410 behaves like finishing onboarding2411 when current user onboarding is disabled2412 does not finish onboarding2413 when ensure_onboarding is disabled2414 does not finish onboarding2415 when onboarding and feature flag are enabled2416 finishes onboarding2417 when requires_credit_card_verification is true2418 sets requires_credit_card_verification to false2419 when the `exit_registration_verification` feature flag is disabled2420 is expected to respond with numeric status code not_found2421API::Internal::Kubernetes2422 PUT /internal/kubernetes/modules/starboard_vulnerability2423 returns 401 if Authorization header not sent2424 returns 401 if Authorization is for non-existent agent2425 not authenticated2426 returns 4012427 kubernetes_agent_internal_api feature flag disabled2428 returns 4042429 is authenticated for an agent2430 returns ok when a vulnerability is created2431 accepts the same payload twice2432 responds with the created vulnerability's UUID2433 when payload is invalid2434 returns bad request2435 when required parameters are missing2436 missing_param: :vulnerability2437 returns bad request2438 missing_param: :scanner2439 returns bad request2440 when feature is not available2441 returns forbidden for non licensed project2442 POST /internal/kubernetes/modules/starboard_vulnerability/scan_result2443 returns 401 if Authorization header not sent2444 returns 401 if Authorization is for non-existent agent2445 not authenticated2446 returns 4012447 kubernetes_agent_internal_api feature flag disabled2448 returns 4042449 is authenticated for an agent2450 returns ok2451 resolves undetected vulnerabilities2452 marks undetected vulnerabilities as resolved on default branch2453 does not resolve vulnerabilities with other report types2454 does not resolve other projects' vulnerabilities2455 when payload is invalid2456 returns bad request2457 when feature is not available2458 returns forbidden for non licensed project2459 GET /internal/kubernetes/modules/starboard_vulnerability/policies_configuration2460 returns 401 if Authorization header not sent2461 returns 401 if Authorization is for non-existent agent2462 not authenticated2463 returns 4012464 kubernetes_agent_internal_api feature flag disabled2465 returns 4042466 when security_orchestration_policies is not licensed2467 returns 4042468 when security_orchestration_policies is licensed2469 when policies are present2470 returns expected data2471 when policies are empty2472 returns empty array2473getting the compliance violations for a group2474 when the user is unauthorized2475 returns nil2476 when the user is authorized2477 without any filters or sorting2478 finds all the compliance violations2479 filtering the results2480 when given an array of project IDs2481 finds all the compliance violations2482 when given merged at dates2483 merged_params: {"mergedBefore"=>"2022-12-06"}, result: lazy { violation_output }2484 finds all the compliance violations2485 merged_params: {"mergedAfter"=>"2022-12-06"}, result: lazy { violation2_output }2486 finds all the compliance violations2487 merged_params: {"mergedBefore"=>"2022-12-08", "mergedAfter"=>"2022-12-06"}, result: lazy { violation2_output }2488 finds all the compliance violations2489 sorting and pagination2490 sort_param: :SEVERITY_LEVEL_ASC, all_records: violation_ids_asc2491 behaves like sorted paginated query2492 behaves like requires variables2493 shared example requires variables to be set2495 when sorting2496 sorts correctly2497 when paginating2498 paginates correctly2499 sort_param: :SEVERITY_LEVEL_DESC, all_records: violation_ids_desc2500 behaves like sorted paginated query2501 behaves like requires variables2502 shared example requires variables to be set2504 when sorting2505 sorts correctly2506 when paginating2507 paginates correctly2508 sort_param: :VIOLATION_REASON_ASC, all_records: violation_ids_asc2509 behaves like sorted paginated query2510 behaves like requires variables2511 shared example requires variables to be set2513 when sorting2514 sorts correctly2515 when paginating2516 paginates correctly2517 sort_param: :VIOLATION_REASON_DESC, all_records: violation_ids_desc2518 behaves like sorted paginated query2519 behaves like requires variables2520 shared example requires variables to be set2522 when sorting2523 sorts correctly2524 when paginating2525 paginates correctly2526 sort_param: :MERGE_REQUEST_TITLE_ASC, all_records: violation_ids_asc2527 behaves like sorted paginated query2528 behaves like requires variables2529 shared example requires variables to be set2531 when sorting2532 sorts correctly2533 when paginating2534 paginates correctly2535 sort_param: :MERGE_REQUEST_TITLE_DESC, all_records: violation_ids_desc2536 behaves like sorted paginated query2537 behaves like requires variables2538 shared example requires variables to be set2540 when sorting2541 sorts correctly2542 when paginating2543 paginates correctly2544 sort_param: :MERGED_AT_ASC, all_records: violation_ids_asc2545 behaves like sorted paginated query2546 behaves like requires variables2547 shared example requires variables to be set2549 when sorting2550 sorts correctly2551 when paginating2552 paginates correctly2553 sort_param: :MERGED_AT_DESC, all_records: violation_ids_desc2554 behaves like sorted paginated query2555 behaves like requires variables2556 shared example requires variables to be set2558 when sorting2559 sorts correctly2560 when paginating2561 paginates correctly2562Groups::AuditEventsController2563 GET #index2564 when authorized owner2566 behaves like when audit_events feature is available2567 renders index with 200 status code2568 tracks search event2569 invokes AuditEventFinder with correct arguments2570 behaves like AuditEventFinder params2571 has the correct params2572 author2573 when no author entity type is specified2574 behaves like AuditEventFinder params2575 has the correct params2576 when the author entity type is specified2577 behaves like AuditEventFinder params2578 has the correct params2579 ordering2580 when no sort order is specified2581 behaves like orders by id descending2582 orders by id descending2583 when sorting by latest events first2584 behaves like orders by id descending2585 orders by id descending2586 when sorting by oldest events first2587 orders by id ascending2588 when sorting by an unsupported sort order2589 behaves like orders by id descending2590 orders by id descending2591 pagination2592 sets instance variables2593 paginates audit events, without casting a count query2594 when invalid date2595 created_before: "invalid-date", created_after: nil2596 returns an error2597 created_before: nil, created_after: true2598 returns an error2599 created_before: "2021-13-10", created_after: nil2600 returns an error2601 created_before: nil, created_after: "2021-02-31"2602 returns an error2603 created_before: "2021-03-31", created_after: "2021-02-31"2604 returns an error2605 when date range is greater than limit2606 behaves like a date range error is returned2607 created_after: "2021-01-01", created_before: "2021-02-02"2608 returns an error2609 created_after: "2022-01-31", created_before: nil2610 returns an error2611 behaves like tracking unique visits2612 tracks unique visit if the format is HTML2613 tracks unique visit if DNT is not enabled2614 does not track unique visit if DNT is enabled2615 does not track unique visit if the format is JSON2616 when authorized auditor2618 behaves like when audit_events feature is available2619 renders index with 200 status code2620 tracks search event2621 invokes AuditEventFinder with correct arguments2622 behaves like AuditEventFinder params2623 has the correct params2624 author2625 when no author entity type is specified2626 behaves like AuditEventFinder params2627 has the correct params2628 when the author entity type is specified2629 behaves like AuditEventFinder params2630 has the correct params2631 ordering2632 when no sort order is specified2633 behaves like orders by id descending2634 orders by id descending2635 when sorting by latest events first2636 behaves like orders by id descending2637 orders by id descending2638 when sorting by oldest events first2639 orders by id ascending2640 when sorting by an unsupported sort order2641 behaves like orders by id descending2642 orders by id descending2643 pagination2644 sets instance variables2645 paginates audit events, without casting a count query2646 when invalid date2647 created_before: "invalid-date", created_after: nil2648 returns an error2649 created_before: nil, created_after: true2650 returns an error2651 created_before: "2021-13-10", created_after: nil2652 returns an error2653 created_before: nil, created_after: "2021-02-31"2654 returns an error2655 created_before: "2021-03-31", created_after: "2021-02-31"2656 returns an error2657 when date range is greater than limit2658 behaves like a date range error is returned2659 created_after: "2021-01-01", created_before: "2021-02-02"2660 returns an error2661 created_after: "2022-01-31", created_before: nil2662 returns an error2663 behaves like tracking unique visits2664 tracks unique visit if the format is HTML2665 tracks unique visit if DNT is not enabled2666 does not track unique visit if DNT is enabled2667 does not track unique visit if the format is JSON2668 unauthorized2669 renders 4042670Groups::SsoController2671 SAML configured2672 has status 2002673 malicious redirect parameter falls back to group_path2674 passes group name to the view2675 unlinking user2676 allows account unlinking2677 with block_password_auth_for_saml_users feature flag switched off2678 does not sign out user provisioned by this group2679 with block_password_auth_for_saml_users feature flag switched on2680 signs out user provisioned by this group2681 when SAML is disabled for the group2682 renders 4042683 still allows account unlinking2684 when SAML trial has expired2685 DELETE /unlink still allows account unlinking2686 GET /saml renders 4042687 when user is not signed in2688 acts as route not found2689 when group has moved2690 redirects to new location2691 when current user has a SAML provider configured2692 renders `devise_empty` template2693 when current user does not have a SAML provider configured2694 renders `devise` template2695 saml_provider is unconfigured for the group2696 when user cannot configure Group SAML2697 renders 4042698 when user can admin group_saml2699 redirects to the Group SAML config page2700 sets a flash message explaining that setup is required2701 group does not exist2702 renders 4042703 when user is not signed in2704 acts as route not found2705 GET sign_up_form2706 with SAML configured2707 and group managed accounts enforced2708 renders 4042709 and oauth data available2710 has status 2002711 suggests first available username automatically2712 and belongs to different group2713 renders 4042714 and group managed accounts enforcing is disabled2715 renders 4042716 POST sign_up2717 calls for GroupSaml::SignUpService2718 when service fails2719 renders the form2720 when service succeeds2721 redirects to sign in2722 when user is already signed in2723 signs user out2724 POST authorize_managed_account2725 when user is already signed in2726 when service succeeds2727 redirects to group2728 when service fails2729 renders the form2730Projects::Security::Vulnerabilities::NotesController2731 GET index2732 responds with array of notes2733 when the "Security & Compliance" feature is disabled2734 is expected to respond with numeric status code not_found2735 behaves like SecurityDashboardsPermissions2736 access for all actions2737 when security dashboard feature is disabled2738 returns 4042739 when security dashboard feature is enabled2740 when user has guest access2741 denies access2742 when user has developer access2743 grants access2744 POST create2745 when the "Security & Compliance" feature is disabled2746 is expected to respond with numeric status code not_found2747 when note is empty2748 does not create new note2749 returns status 4222750 when note is provided2751 creates new note2752 returns status 2002753 when user has no permission to create a note2754 does not create new note2755 returns status 4032756 when replying to the discussion2757 creates new note in reply to discussion2758 returns status 2002759 when return_discussion param is set2760 returns discussion JSON when the return_discussion param is set2761 behaves like create notes request exceeding rate limit2762 allows user in allow-list to create notes, even if the case is different2763 when rate limiter enabled2764 logs request and declines it when endpoint called more than the threshold2765 when rate limiter is disabled2766 does not log request and does not block the request2767 PUT update2768 when the "Security & Compliance" feature is disabled2769 is expected to respond with numeric status code not_found2770 when user is not an author of the note2771 returns status 4042772 when user is an author of the note2773 when note is provided2774 updates note2775 returns status 2002776 DELETE destroy2777 when the "Security & Compliance" feature is disabled2778 is expected to respond with numeric status code not_found2779 when user is not an author of the note2780 does not delete the note2781 returns status 4042782 when user is an author of the note2783 deletes the note2784 returns status 2002785 POST toggle_award_emoji2786 creates the award emoji2787 when the "Security & Compliance" feature is disabled2788 is expected to respond with numeric status code not_found2789 when award emoji was already created2790 deletes the award emoji2791Querying an Iteration2792 when the user has access to the iteration2793 is expected to include {"title" => nil}2794 behaves like a working graphql query2795 returns a successful response2796 when `report` field is included2797 when fullPath argument is not provided2798 current_user: group_member, expected_scope_count: 42799 is expected to include {"burnupTimeSeries" => [{"scopeCount" => 4}]}2800 current_user: project1_member, expected_scope_count: 42801 is expected to include {"burnupTimeSeries" => [{"scopeCount" => 4}]}2802 when fullPath argument is provided2803 when current user has authorized access to one or more projects under the namespace2804 scope: group, current_user: group_member, expected_scope_count: 42805 is expected to include {"burnupTimeSeries" => [{"scopeCount" => 4}]}2806 scope: group, current_user: project1_member, expected_scope_count: 42807 is expected to include {"burnupTimeSeries" => [{"scopeCount" => 4}]}2808 scope: project1, current_user: group_member, expected_scope_count: 22809 is expected to include {"burnupTimeSeries" => [{"scopeCount" => 2}]}2810 scope: project1, current_user: project1_member, expected_scope_count: 22811 is expected to include {"burnupTimeSeries" => [{"scopeCount" => 2}]}2812 scope: project2, current_user: project2_member, expected_scope_count: 12813 is expected to include {"burnupTimeSeries" => [{"scopeCount" => 1}]}2814 scope: project2, current_user: group_member, expected_scope_count: 12815 is expected to include {"burnupTimeSeries" => [{"scopeCount" => 1}]}2816 scope: subgroup, current_user: group_member, expected_scope_count: 12817 is expected to include {"burnupTimeSeries" => [{"scopeCount" => 1}]}2818 scope: subgroup, current_user: subgroup_member, expected_scope_count: 12819 is expected to include {"burnupTimeSeries" => [{"scopeCount" => 1}]}2820 when current user cannot access the given namespace2821 scope: other_group, current_user: group_member2822 raises an exception2823 scope: project1, current_user: subgroup_member2824 raises an exception2825 scope: project1, current_user: project2_member2826 raises an exception2827 scope: project2, current_user: project1_member2828 raises an exception2829 scope: subgroup, current_user: project1_member2830 raises an exception2831 when the user does not have access to the iteration2832 is expected to be nil2833 behaves like a working graphql query2834 returns a successful response2835 when ID argument is missing2836 raises an exception2837 scoped path2838 inside a project context2839 group-owned iteration2840 behaves like scoped path2841 is expected to include {"scopedPath" => "/groups/project541/-/iterations/11", "scopedUrl" => /\/groups\/project541\/-\/iterations\/11$/, "webPath" => "/groups/group76/-/iterations/11", "webUrl" => /\/groups\/group76\/-\/iterations\/11$/}2842 when given a raw model id (backward compatibility)2843 is expected to include {"scopedPath" => "/groups/project541/-/iterations/11", "scopedUrl" => /\/groups\/project541\/-\/iterations\/11$/, "webPath" => "/groups/group76/-/iterations/11", "webUrl" => /\/groups\/group76\/-\/iterations\/11$/}2844 inside a group context2845 group-owned iteration2846 behaves like scoped path2847 is expected to include {"scopedPath" => "/groups/group76/-/iterations/11", "scopedUrl" => /\/groups\/group76\/-\/iterations\/11$/, "webPath" => "/groups/group76/-/iterations/11", "webUrl" => /\/groups\/group76\/-\/iterations\/11$/}2848 when given a raw model id (backward compatibility)2849 is expected to include {"scopedPath" => "/groups/group76/-/iterations/11", "scopedUrl" => /\/groups\/group76\/-\/iterations\/11$/, "webPath" => "/groups/group76/-/iterations/11", "webUrl" => /\/groups\/group76\/-\/iterations\/11$/}2850 group-owned iteration2851 behaves like scoped path2852 is expected to include {"scopedPath" => "/groups/group76/group82/-/iterations/11", "scopedUrl" => /\/groups\/group76\/group82\/-\/iterations\/11$/, "webPath" => "/groups/group76/-/iterations/11", "webUrl" => /\/groups\/group76\/-\/iterations\/11$/}2853 when given a raw model id (backward compatibility)2854 is expected to include {"scopedPath" => "/groups/group76/group83/-/iterations/11", "scopedUrl" => /\/groups\/group76\/group83\/-\/iterations\/11$/, "webPath" => "/groups/group76/-/iterations/11", "webUrl" => /\/groups\/group76\/-\/iterations\/11$/}2855 root context2856 group-owned iteration2857 behaves like scoped path2858 is expected to include {"scopedPath" => "/groups/group76/-/iterations/11", "scopedUrl" => /\/groups\/group76\/-\/iterations\/11$/, "webPath" => "/groups/group76/-/iterations/11", "webUrl" => /\/groups\/group76\/-\/iterations\/11$/}2859 when given a raw model id (backward compatibility)2860 is expected to include {"scopedPath" => "/groups/group76/-/iterations/11", "scopedUrl" => /\/groups\/group76\/-\/iterations\/11$/, "webPath" => "/groups/group76/-/iterations/11", "webUrl" => /\/groups\/group76\/-\/iterations\/11$/}2861 project-owned iteration2862 behaves like scoped path2863 is expected to include {"scopedPath" => "/groups/group76/-/iterations/11", "scopedUrl" => /\/groups\/group76\/-\/iterations\/11$/, "webPath" => "/groups/group76/-/iterations/11", "webUrl" => /\/groups\/group76\/-\/iterations\/11$/}2864 when given a raw model id (backward compatibility)2865 is expected to include {"scopedPath" => "/groups/group76/-/iterations/11", "scopedUrl" => /\/groups\/group76\/-\/iterations\/11$/, "webPath" => "/groups/group76/-/iterations/11", "webUrl" => /\/groups\/group76\/-\/iterations\/11$/}2866API::ProjectAliases2867 without premium license2868 GET /project_aliases2869 returns 4032870 GET /project_aliases/:name2871 returns 4032872 POST /project_aliases2873 returns 4032874 DELETE /project_aliases/:name2875 returns 4032876 with premium license2877 GET /project_aliases2878 behaves like GitLab administrator only API endpoint2879 anonymous user2880 returns 4012881 regular user2882 returns 4032883 admin2884 returns the project aliases list2885 GET /project_aliases/:name2886 behaves like GitLab administrator only API endpoint2887 anonymous user2888 returns 4012889 regular user2890 returns 4032891 admin2892 existing project alias2893 returns the project alias2894 non-existent project alias2895 returns 4042896 POST /project_aliases2897 behaves like GitLab administrator only API endpoint2898 anonymous user2899 returns 4012900 regular user2901 returns 4032902 admin2903 existing project alias2904 returns 4002905 non-existent project alias2906 returns 2002907 DELETE /project_aliases/:name2908 behaves like GitLab administrator only API endpoint2909 anonymous user2910 returns 4012911 regular user2912 returns 4032913 admin2914 existing project alias2915 returns 2042916 non-existent project alias2917 returns 4042918Projects::JobsController2919 GET #show2920 when requesting JSON2921 with shared runner that has quota2922 exposes quota information2923 with shared runner quota exceeded2924 exposes quota information2925 when shared runner has no quota2926 does not exposes quota information2927 when project is public2928 exposes quota information2929 the environment is protected2930 renders successfully2931 anonymous user2932 renders successfully2933Update a work item2934 with iteration widget input2935 when iterations feature is unlicensed2936 behaves like work item is not updated2937 ignores the update2938 when iterations feature is licensed2939 behaves like user without permission to admin work item cannot update the attribute2940 when a guest user is also an author of the work item2941 behaves like work item is not updated2942 ignores the update2943 when user has permissions to admin a work item2944 when setting to a new iteration2945 behaves like work item's iteration is updated2946 updates the work item's iteration2947 when setting iteration to null2948 behaves like work item's iteration is updated2949 updates the work item's iteration2950 when the user does not have permission to update the work item2951 behaves like a mutation that returns top-level errors2952 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"2953 behaves like work item is not updated2954 ignores the update2955 with weight widget input2956 when issuable weights is unlicensed2957 behaves like work item is not updated2958 ignores the update2959 when issuable weights is licensed2960 when user has permissions to admin a work item2961 behaves like update work item weight widget2962 updates the weight widget2963 when the updated work item is not valid2964 returns validation errors without the work item2965 when setting weight to null2966 updates the work item2967 behaves like user without permission to admin work item cannot update the attribute2968 when a guest user is also an author of the work item2969 behaves like work item is not updated2970 ignores the update2971 with status widget input2972 when requirements is unlicensed2973 behaves like work item is not updated2974 ignores the update2975 when requirements is licensed2976 when user has permissions to admin a work item2977 behaves like update work item status widget2978 updates the status widget2979 when the updated work item is not valid2980 returns validation errors without the work item2981 when setting status to an invalid value2982 does not update the work item's status2983 behaves like user without permission to admin work item cannot update the attribute2984 when a guest user is also an author of the work item2985 behaves like work item is not updated2986 ignores the update2987 when the user does not have permission to update the work item2988 behaves like a mutation that returns top-level errors2989 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"2990 behaves like work item is not updated2991 ignores the update2992 with health status widget input2993 when issuable_health_status is unlicensed2994 behaves like work item is not updated2995 ignores the update2996 when issuable_health_status is licensed2997 behaves like user without permission to admin work item cannot update the attribute2998 when a guest user is also an author of the work item2999 behaves like work item is not updated3000 ignores the update3001 when user has permissions to update the work item3002 updates work item health status3003Create an external audit event destination3004 when feature is licensed3005 when current user is a group owner3006 resolves group by full path3007 creates the destination3008 behaves like creates an audit event3009 audits the creation3010 when overriding verification token3011 creates the destination3012 behaves like creates an audit event3013 audits the creation3014 when verification token is invalid3015 when verification token is too short3016 returns correct errors3017 behaves like a mutation that does not create a destination3018 does not destroy the destination3019 does not audit the creation3020 when verification token is too long3021 returns correct errors3022 behaves like a mutation that does not create a destination3023 does not destroy the destination3024 does not audit the creation3025 when destination is invalid3026 returns correct errors3027 behaves like a mutation that does not create a destination3028 does not destroy the destination3029 does not audit the creation3030 when group is a subgroup3031 behaves like a mutation that does not create a destination3032 does not destroy the destination3033 does not audit the creation3034 when current user is a group maintainer3035 behaves like a mutation that does not create a destination3036 does not destroy the destination3037 does not audit the creation3038 when current user is a group developer3039 behaves like a mutation that does not create a destination3040 does not destroy the destination3041 does not audit the creation3042 when current user is a group guest3043 behaves like a mutation that does not create a destination3044 does not destroy the destination3045 does not audit the creation3046 when feature is unlicensed3047 does not create the destination3048 behaves like a mutation on an unauthorized resource3049 behaves like a mutation that returns top-level errors3050 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"3051Projects::Integrations::Jira::IssuesController3052 GET #index3053 renders the "index" template3054 tracks usage3055 when jira_issues_integration licensed feature is not available3056 behaves like an action that returns a 4043057 returns 4043058 when jira integration is disabled3059 behaves like an action that returns a 4043060 returns 4043061 when jira integration does not exist3062 behaves like an action that returns a 4043063 returns 4043064 behaves like unauthorized when external service denies access3065 allows access when the authorization service allows it3066 allows access when the authorization service denies it3067 behaves like Snowplow event tracking with RedisHLL context3068 behaves like Snowplow event tracking3069 is emitted3070 when project has moved3071 redirects to the new issue tracker from the old one3072 json request3073 returns a list of serialized jira issues3074 renders bad request for IntegrationError3075 renders bad request for RequestError3076 sets pagination headers3077 when parameters are passed3078 when there are no params3079 behaves like proper parameter values3080 properly set the values3081 when pagination params3082 behaves like proper parameter values3083 properly set the values3084 when state is closed3085 behaves like proper parameter values3086 properly set the values3087 when status param3088 behaves like proper parameter values3089 properly set the values3090 when labels param3091 behaves like proper parameter values3092 properly set the values3093 when author_username param3094 behaves like proper parameter values3095 properly set the values3096 when assignee_username param3097 behaves like proper parameter values3098 properly set the values3099 when invalid params3100 behaves like proper parameter values3101 properly set the values3102 GET #show3103 when jira_issues_integration licensed feature is not available3104 returns 404 status3105 when jira_issues_integration licensed feature is available3106 renders `show` template3107 returns JSON response3108 when the description needs redaction3109 redacts confidential information from the issue JSON response3110 when the JSON fetched from Jira contains HTML3111 escapes the HTML in issue titles and references3112 when issue was not found3113 returns 404 status3114 returns 404 JSON response3115API::Analytics::ProductAnalytics3116 # order random3117 POST projects/:id/product_analytics/request/dry-run3118 behaves like does basics of a cube query3119 when feature flag is disabled3120 returns a 4043121 when feature is unlicensed3122 behaves like a not found error3123 load returns a 4043124 dry-run returns a 4043125 meta returns a 4043126 when current user has guest project access3127 returns an unauthorized error3128 when current user is a project developer3129 returns a 2003130 when query param is missing3131 returns a 4003132 when a query param is unsupported3133 ignores the unsupported param3134 when cube_api_base_url application setting is not set3135 behaves like a not found error3136 load returns a 4043137 dry-run returns a 4043138 meta returns a 4043139 when cube_api_key application setting is not set3140 behaves like a not found error3141 load returns a 4043142 dry-run returns a 4043143 meta returns a 4043144 when enable_product_analytics application setting is false3145 returns a 4043146 POST projects/:id/product_analytics/request/meta3147 when current user has guest project access3148 returns an unauthorized error3149 when current user is a project developer3150 returns a 2003151 POST projects/:id/product_analytics/request/load3152 when querying a database that does not exist3153 returns a 4043154 when querying an existing database3155 behaves like does basics of a cube query3156 when feature flag is disabled3157 returns a 4043158 when feature is unlicensed3159 behaves like a not found error3160 load returns a 4043161 dry-run returns a 4043162 meta returns a 4043163 when current user has guest project access3164 returns an unauthorized error3165 when current user is a project developer3166 returns a 2003167 when query param is missing3168 returns a 4003169 when a query param is unsupported3170 ignores the unsupported param3171 when cube_api_base_url application setting is not set3172 behaves like a not found error3173 load returns a 4043174 dry-run returns a 4043175 meta returns a 4043176 when cube_api_key application setting is not set3177 behaves like a not found error3178 load returns a 4043179 dry-run returns a 4043180 meta returns a 4043181 when enable_product_analytics application setting is false3182 returns a 4043183Projects::PathLocksController3184 GET #index3185 displays the lock paths3186 when the user does not have access3187 does not allow access3188 POST #toggle3189 when LFS is enabled3190 when locking a file3191 locks the file3192 locks the file in LFS3193 tries to create the PathLock only once3194 when locking a directory3195 locks the directory3196 does not locks the directory through LFS3197 when file does not exist3198 locks the file3199 does not lock the file in LFS3200 when unlocking a file3201 with files3202 unlocks the file3203 unlocks the file in LFS3204 when file does not exist3205 unlocks the file3206 does not unlock the file in LFS3207 when unlocking a directory3208 unlocks the directory3209 does not call the LFS unlock service3210 when LFS is not enabled3211 locks the file3212 doesn't lock the file in LFS3213 unlocks the file3214 when the user does not have access3215 does not allow access3216Groups::Security::PoliciesController3217 GET #edit3218 with authorized user3219 when feature is licensed3220 renders the edit page3221 does not contain any approver data3222 with scan result policy type3223 renders the edit page with approvers data3224 when type is missing3225 redirects to #index3226 when type is invalid3227 redirects to #index3228 when id does not exist3229 returns 4043230 when there is no policy configuration3231 redirects to #index3232 when policy yaml file does not exist3233 redirects to project page3234 when policy yaml is invalid3235 redirects to policy file3236 when feature is not licensed3237 returns 4043238 with unauthorized user3239 returns 4043240 with anonymous user3241 returns 4043242 GET #index3243 user_role: :reporter, license: true, status: :not_found3244 is expected to respond with numeric status code not_found3245 user_role: :developer, license: true, status: :ok3246 is expected to respond with numeric status code ok3247 user_role: :developer, license: false, status: :not_found3248 is expected to respond with numeric status code not_found3249 GET #schema3250 returns JSON schema3251Projects::Settings::AccessTokensController3252 POST /:namespace/:project/-/settings/access_tokens3253 behaves like feature unavailable3254 with a free plan3255 is expected to respond with numeric status code not_found3256 when user is not a maintainer with a paid group plan3257 is expected to respond with numeric status code not_found3258 behaves like POST resource access tokens available3259 renders JSON with a token3260 creates resource access token3261 creates project bot user3262 is expected to change `User.count` by 13263 is expected to change `PersonalAccessToken.count` by 13264 when unsuccessful3265 does not create the token3266 does not add the project bot as a member3267 does not create the project bot user3268 renders JSON with an error3269 PUT /:namespace/:project/-/settings/access_tokens/:id3270 behaves like feature unavailable3271 with a free plan3272 is expected to respond with numeric status code not_found3273 when user is not a maintainer with a paid group plan3274 is expected to respond with numeric status code not_found3275 behaves like PUT resource access tokens available3276 calls delete user worker3277 removes membership of bot user3278 creates GhostUserMigration records to handle migration in a worker3279 when unsuccessful3280 shows a failure alert3281API::ResourceIterationEvents3282 when eventable is an Issue3283 behaves like resource_iteration_events API3284 GET /projects/:id/issues/:noteable_id/resource_iteration_events3285 returns an array of resource iteration events3286 returns a 404 error when eventable id not found3287 returns 404 when not authorized3288 GET /projects/:id/issues/:noteable_id/resource_iteration_events/:event_id3289 returns a resource iteration event by id3290 returns 404 when not authorized3291 returns a 404 error if resource iteration event not found3292 pagination3293 returns the second page3294get list of epics for an epic board list3295 sorting and pagination3296 behaves like sorted paginated query3297 behaves like requires variables3298 shared example requires variables to be set3300 when sorting3301 sorts correctly3302 when paginating3303 paginates correctly3304 with filters3305 finds only epics matching the filter3306 when negated3307 finds only epics matching the negated filter3308Updating an Iteration3309 when the user does not have permission3310 does not update iteration3311 behaves like a mutation that returns a top-level access error3312 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"3313 when the user has permission3314 when iterations are disabled3315 behaves like a mutation that returns top-level errors3316 is expected to include "The resource that you are attempting to access does not exist or you don't have permission to perform this action"3317 when iterations are enabled3318 updates the iteration3319 when updating attributes on an automatic cadence3320 when updating deprecated attributes3321 argument: :title, argument_value: "updated title"3322 behaves like a mutation that returns top-level errors3323 is expected to contain exactly "Manual iteration updates are deprecated, only `description` updates will be allowed in the future"3324 argument: :start_date, argument_value: "2022-12-01"3325 behaves like a mutation that returns top-level errors3326 is expected to contain exactly "Manual iteration updates are deprecated, only `description` updates will be allowed in the future"3327 argument: :due_date, argument_value: "2022-12-15"3328 behaves like a mutation that returns top-level errors3329 is expected to contain exactly "Manual iteration updates are deprecated, only `description` updates will be allowed in the future"3330 when updating description3331 allows updating the description of an iteration3332 when updating title3333 title_before: nil, title_after: "abc", expected_title: "abc"3334 updates an iteration3335 title_before: "abc", title_after: "def", expected_title: "def"3336 updates an iteration3337 when updating dates3338 updates the iteration with date in the past3339 when another iteration with given dates overlap3340 behaves like a mutation that returns errors in the response3341 is expected to contain exactly "Dates cannot overlap with other existing Iterations within this iterations cadence"3342 when given a raw model id (backward compatibility)3343 updates the iteration3344 when the list of attributes is empty3345 does not update the iteration3346 behaves like a mutation that returns top-level errors3347 is expected to contain exactly "The list of iteration attributes is empty"3348Groups::Analytics::CiCdAnalyticsController3349 GET #show3350 renders the #show page3351 when the current user doesn't have access3352 when the user is a guest3353 behaves like returns a 4033354 is expected to respond with numeric status code forbidden3355 when the user doesn't belong to the group3356 behaves like returns a 4033357 is expected to respond with numeric status code forbidden3358 when the user is not signed in3359 redirects the user to the login page3360 when the :group_ci_cd_analytics feature isn't licensed3361 behaves like returns a 4033362 is expected to respond with numeric status code forbidden3363 behaves like tracking unique visits3364 tracks unique visit if the format is HTML3365 tracks unique visit if DNT is not enabled3366 does not track unique visit if DNT is enabled3367 does not track unique visit if the format is JSON3368 behaves like tracking unique visits3369 tracks unique visit if the format is HTML3370 tracks unique visit if DNT is not enabled3371 does not track unique visit if DNT is enabled3372 does not track unique visit if the format is JSON3373 behaves like tracking unique visits3374 tracks unique visit if the format is HTML3375 tracks unique visit if DNT is not enabled3376 does not track unique visit if DNT is enabled3377 does not track unique visit if the format is JSON3378 behaves like tracking unique visits3379 tracks unique visit if the format is HTML3380 tracks unique visit if DNT is not enabled3381 does not track unique visit if DNT is enabled3382 does not track unique visit if the format is JSON3383 behaves like tracking unique visits3384 tracks unique visit if the format is HTML3385 tracks unique visit if DNT is not enabled3386 does not track unique visit if DNT is enabled3387 does not track unique visit if the format is JSON3388 behaves like tracking unique visits3389 tracks unique visit if the format is HTML3390 tracks unique visit if DNT is not enabled3391 does not track unique visit if DNT is enabled3392 does not track unique visit if the format is JSON3393API::GroupVariables3394 GET /groups/:id/variables/:key3395 when there are two variables with the same key on different environments3396 when filter[environment_scope] is not passed3397 returns 4093398 when filter[environment_scope] is passed3399 returns the variable3400 when wrong filter[environment_scope] is passed3401 returns not_found3402 when there is only one variable with provided key3403 returns not_found3404 POST /groups/:id/variables3405 scoped variables3406 :group_scoped_ci_variables licensed feature is available3407 creates a variable with the provided environment scope3408 a variable with the same key and scope exists already3409 does not create a variable3410 :group_scoped_ci_variables licensed feature is not available3411 creates a variable, but does not use the provided environment scope3412 a variable with the same key and scope exists already3413 does not create a variable3414 PUT /groups/:id/variables/:key3415 scoped variables3416 :group_scoped_ci_variables licensed feature is available3417 updates the variable3418 a variable with the same key and scope exists already3419 does not update the variable3420 :group_scoped_ci_variables licensed feature is not available3421 does not update the variable3422Query.project(fullPath).jitsuKey3423 # order random3424 licensed: false, enabled: true, user_role: :developer, jitsu_key: "key", output: nil3425 is expected to eq nil3426 licensed: true, enabled: false, user_role: :owner, jitsu_key: "key", output: nil3427 is expected to eq nil3428 licensed: false, enabled: true, user_role: :owner, jitsu_key: "key", output: nil3429 is expected to eq nil3430 licensed: true, enabled: false, user_role: :developer, jitsu_key: "key", output: nil3431 is expected to eq nil3432 licensed: false, enabled: false, user_role: :guest, jitsu_key: "key", output: nil3433 is expected to eq nil3434 licensed: true, enabled: false, user_role: :guest, jitsu_key: "key", output: nil3435 is expected to eq nil3436 licensed: true, enabled: true, user_role: :owner, jitsu_key: "key", output: "key"3437 is expected to eq "key"3438 licensed: true, enabled: true, user_role: :guest, jitsu_key: "key", output: nil3439 is expected to eq nil3440 licensed: false, enabled: true, user_role: :maintainer, jitsu_key: "key", output: nil3441 is expected to eq nil3442 licensed: false, enabled: false, user_role: :maintainer, jitsu_key: "key", output: nil3443 is expected to eq nil3444 licensed: false, enabled: true, user_role: :guest, jitsu_key: "key", output: nil3445 is expected to eq nil3446 licensed: true, enabled: true, user_role: :maintainer, jitsu_key: "key", output: "key"3447 is expected to eq "key"3448 licensed: false, enabled: false, user_role: :owner, jitsu_key: "key", output: nil3449 is expected to eq nil3450 licensed: false, enabled: false, user_role: :developer, jitsu_key: "key", output: nil3451 is expected to eq nil3452 licensed: true, enabled: true, user_role: :developer, jitsu_key: "key", output: "key"3453 is expected to eq "key"3454 licensed: true, enabled: false, user_role: :maintainer, jitsu_key: "key", output: nil3455 is expected to eq nil3456Mutations::Boards::Create3457 behaves like boards create mutation3458 when the user does not have permission3459 does not create the board3460 behaves like a mutation that returns a top-level access error3461 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"3462 when the user has permission3463 when the parent (project_path or group_path) param is given3464 when everything is ok3465 creates the board3466 returns the created board3467 when hide_backlog_list parameter is true3468 returns the board with correct hide_backlog_list field3469 when hide_closed_list parameter is true3470 returns the board with correct hide_closed_list field3471 when the Boards::CreateService returns an error response3472 does not create a board3473 returns an error3474 when neither project_path nor group_path param is given3475 does not create the board3476 behaves like a mutation that returns top-level errors3477 is expected to contain exactly "Exactly one of group_path or project_path arguments is required"3478 when the user has permission to create a board3479 sets cadence_id on creation3480Update of an existing issue3481 updates the issue3482 setting epic3483 sets the epic3484 the epic is not readable to the current user3485 does not set the epic3486 the epic is not an epic3487 does not set the epic3488 removing epic3489 removes the epic3490 the epic argument is not provided3491 does not remove the epic3492API::ProtectedTags3493 GET /projects/:id/protected_tags3494 returns user and group ids for the access levels3495 GET /projects/:id/protected_tags/:tag3496 returns user and group ids for the access levels3497 POST /projects/:id/protected_tags3498 with granular access3499 can protect a tag while allowing an individual user to create tags3500 can protect a tag while allowing a group to create tags3501 avoids creating default access levels unless necessary3502 when protected_refs_for_users feature is not available3503 cannot protect a tag for a user or group only3504API::ResourceStateEvents3505 # order random3506 when eventable is an Epic3507 behaves like resource_state_events API3508 GET /groups/:id/epics/:noteable_id/resource_state_events3509 returns an array of resource state events3510 returns a 404 error when eventable id not found3511 returns 404 when not authorized3512 GET /groups/:id/epics/:noteable_id/resource_state_events/:event_id3513 returns a resource state event by id3514 returns 404 when not authorized3515 returns a 404 error if resource state event not found3516 pagination3517 returns the second page3518Projects::Security::DashboardController3519 when the "Security & Compliance" feature is disabled3520 is expected to respond with numeric status code not_found3521 behaves like SecurityDashboardsPermissions3522 access for all actions3523 when security dashboard feature is disabled3524 returns 4043525 when security dashboard feature is enabled3526 when user has guest access3527 denies access3528 when user has developer access3529 grants access3530 GET #index3531 when project has no vulnerabilities3532 renders empty state3533 when project has vulnerabilities3534 renders dashboard with vulnerability metadata3535Query.project(fullPath).dastSiteProfiles3536 when a user does not have access to the project3537 returns a null project3538 when a user does not have access to dast_site_profiles3539 returns an empty edges array3540 when a user has access dast_site_profiles3541 returns populated edges array3542 returns a populated edges array containing a dast_site_profile associated with the project3543 avoids N+1 queries3544 when there are fewer dast_site_profiles than the page limit3545 indicates there are no more pages available3546 when there are more dast_site_profiles than the page limit3547 indicates there are more pages available3548 when on demand scan licensed feature is not available3549 returns an empty edges array3550Projects::RequirementsManagement::RequirementsController3551 GET #index3552 private project3553 with authorized user3554 when feature is available3555 renders the index template3556 when feature is not available3557 behaves like response with 404 status3558 returns 4043559 with unauthorized user3560 when feature is available3561 behaves like response with 404 status3562 returns 4043563 with anonymous user3564 returns 3023565 public project3566 with requirements disabled3567 behaves like response with 404 status3568 returns 4043569 with requirements visible to project members3570 with authorized user3571 renders the index template3572 with unauthorized user3573 behaves like response with 404 status3574 returns 4043575 with requirements visible to everyone3576 with anonymous user3577 renders the index template3578 GET import_csv3579 with authorized user3580 when feature is available3581 when the upload is processed successfully3582 renders the correct message3583 when the upload returns an error3584 renders the error message3585 when feature is not available3586 behaves like response with 404 status3587 returns 4043588getting Incident Management escalation policies3589 # order random3590 with project permissions3591 with unavailable feature3592 is expected to be empty3593 behaves like a working graphql query3594 returns a successful response3595 without escalation policies3596 is expected to be empty3597 behaves like a working graphql query3598 returns a successful response3599 with escalation policies3600 returns the correct properties of the escalation policy3601 behaves like a working graphql query3602 returns a successful response3603 requesting single policy3604 returns the correct properties of the escalation policy3605 behaves like a working graphql query3606 returns a successful response3607 without project permissions3608 is expected to be nil3609 behaves like a working graphql query3610 returns a successful response3611Projects::EnvironmentsController3612 GET #show3613 deployment approvals3614 preloads approvals their authors3615 #GET terminal3616 when environment is protected3617 when user does not have access to it3618 responds with access denied3619 when user has access to it3620 is successful3621 when environment is not protected3622 is successful3623 POST #cancel_auto_stop3624 when environment is set as auto-stop3625 behaves like successful response for #cancel_auto_stop3626 when request is html3627 redirects to show page3628 expires etag caching3629 when request is js3630 responds as ok3631 expires etag caching3632 when the environment is protected3633 shows not found3634getting compliance frameworks for a collection of projects3635 querying a single project3636 avoids N+1 queries3637 contains the expected compliance framework3638 projects can have a compliance framework3639 contains the correct number of compliance frameworks3640 projects that share the same compliance framework3641 shares the same compliance framework id3642Creating an External Issue Link3643 when the user does not have permission3644 does not create external issue link3645 behaves like a mutation that returns a top-level access error3646 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"3647 when the user has permission3648 when security_dashboard is disabled3649 behaves like a mutation that returns top-level errors3650 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"3651 when security_dashboard is enabled3652 when jira is not configured3653 responds with error3654 when jira is configured3655 when issue creation succeeds3656 and saving external issue link succeeds3657 creates the external issue link and returns nil for external issue to be fetched using query3658 and saving external issue link fails3659 creates the external issue link3660 when issue creation fails3661 does not create the external issue link3662Querying a Milestone3663 burnupTimeSeries3664 with insufficient license3665 returns nil3666 when missing dates3667 explains why the report cannot be generated3668 when there are too many events3669 explains why the report cannot be generated3670 with correct license3671 returns burnup chart data3672 group milestones3673 behaves like milestones queried by timeframe3674 query for milestones by timeframe3675 without start3676 returns error3677 without end date3678 returns error3679 with start and end date3680 does not have errors3681 project milestones3682 behaves like milestones queried by timeframe3683 query for milestones by timeframe3684 without start3685 returns error3686 without end date3687 returns error3688 with start and end date3689 does not have errors3690Admin::LicensesController3691 Upload license3692 redirects back when no license is entered/uploaded3693 renders new with an alert when an invalid license is entered/uploaded3694 redirects to the subscription page when a valid license is entered/uploaded3695 when the license is for a cloud license3696 with offline cloud license3697 redirects to the subscription page when a valid license is entered/uploaded3698 with online cloud license3699 redirects back3700 Trials3701 redirects to the subscription page when a valid trial license is entered/uploaded3702 POST sync_seat_link3703 with a cloud license3704 returns a success response3705 without a cloud license3706 returns a failure response3707 DELETE destroy3708 with a cloud license3709 behaves like license removal3710 removes the license3711 with a legacy license3712 behaves like license removal3713 removes the license3714Getting issuable resource links3715 # order random3716 when feature is available3717 when user has permissions3718 returns the correct number of resource links3719 returns the correct properties of the resource links3720 behaves like a working graphql query3721 returns a successful response3722 when user does not have permission3723 returns empty results3724 behaves like a working graphql query3725 returns a successful response3726 when feature is unavailable3727 returns empty results3728 behaves like a working graphql query3729 returns a successful response3730Creating a new on-call schedule3731 # order random3732 creates a new on-call rotation3733 time is invalid3734 returns the on-call rotation with errors3735 without required argument rotation_length3736 behaves like an invalid argument to the mutation3737 behaves like a mutation that returns top-level errors3738 is expected to contain exactly (include "invalid value for rotationLength")3739 date is invalid3740 returns the on-call rotation with errors3741 without required argument starts_at3742 behaves like an invalid argument to the mutation3743 behaves like a mutation that returns top-level errors3744 is expected to contain exactly (include "invalid value for startsAt")3745 without required argument project_path3746 behaves like an invalid argument to the mutation3747 behaves like a mutation that returns top-level errors3748 is expected to contain exactly (include "invalid value for projectPath")3749 without required argument name3750 behaves like an invalid argument to the mutation3751 behaves like a mutation that returns top-level errors3752 is expected to contain exactly (include "invalid value for name")3753 without required argument schedule_iid3754 behaves like an invalid argument to the mutation3755 behaves like a mutation that returns top-level errors3756 is expected to contain exactly (include "invalid value for scheduleIid")3757 without required argument participants3758 behaves like an invalid argument to the mutation3759 behaves like a mutation that returns top-level errors3760 is expected to contain exactly (include "invalid value for participants")3761view audit events3762 GET /:namespace/:project/-/audit_events3763 returns 200 response3764 avoids N+1 DB queries3765Admin::Geo::ReplicablesController3766 GET /admin/geo/replicables/:replicable_name_plural3767 behaves like license required3768 without a valid license3769 is expected to respond with numeric status code forbidden3770 with a valid license3771 when Geo is not enabled3772 is expected to redirect to "/admin/geo/sites"3773 when on a Geo primary3774 is expected to redirect to "/admin/geo/sites"3775 when on a Geo secondary3776 is expected to redirect to "/admin/geo/sites/14/replication/replicable"3777 GET /admin/geo/sites/:id/replicables/:replicable_name_plural3778 behaves like license required3779 without a valid license3780 is expected to respond with numeric status code forbidden3781 with a valid license3782 current_node: nil3783 loads node data3784 is expected not to be redirect3785 includes expected current and target ids3786 current_node: where(:current_node) { [nil, lazy { primary_node }, lazy { secondary_node }] }3787 loads node data3788 is expected not to be redirect3789 includes expected current and target ids3790 current_node: where(:current_node) { [nil, lazy { primary_node }, lazy { secondary_node }] }3791 loads node data3792 is expected not to be redirect3793 includes expected current and target ids3794Groups::ClustersController3795 GET #environments3796 avoids N+1 database queries3797API::Ci::Minutes3798 POST /namespaces/:id/minutes3799 with insufficient access3800 returns an error3801 with admin user3802 when the namespace cannot be found3803 behaves like not found error3804 returns an error3805 when the additional pack does not exist3806 creates a new additional pack3807 when the additional pack already exists3808 does not create a new additional pack and does not update the existing pack3809 when submitting multiple packs3810 when duplicate packs3811 creates only one new pack3812 when the packs are unique3813 creates all the packs3814 when the additional pack cannot be saved3815 returns an error3816 PATCH /namespaces/:id/minutes/move/:target_id3817 when unauthorized3818 returns an error3819 when authorized3820 when the namespace cannot be found3821 behaves like not found error3822 returns an error3823 when the target namespace cannot be found3824 behaves like not found error3825 returns an error3826 when the namespace is not a top-level namespace3827 returns an error3828 when the target namespace is not a top-level namespace3829 returns an error3830 when the transfer is successful3831 moves the packs and returns an accepted response3832LicenseMailer3833 #approaching_active_user_count_limit3834 when license is present3835 is expected to have subject of "Your subscription is nearing its user limit"3836 is expected to be bcc'd to ["admin@example.com", "another_admin@example.com"]3837 is expected to have body including "your subscription GitLab Enterprise Edition Starter"3838 is expected to have body including "You have 20 active users"3839 is expected to have body including "the user limit of 21"3840 when license is not present3841 does not send email3842 when send with I18n.default_locale3843 is expected to have subject of "Your subscription is nearing its user limit"3844 is expected to be bcc'd to ["123@abc", "hjk@123"]3845 is expected to have body including "your subscription GitLab Enterprise Edition Starter"3846 is expected to have body including "You have 20 active users"3847 is expected to have body including "the user limit of 21"3848Query.project(fullPath).pipeline(iid).dastProfile3849 when feature is not licensed3850 does not return dast profile data3851 when feature is licensed3852 when user is member of the project3853 returns the dast profile data3854 avoids N+1 queries3855 when user is not member of the project3856 does not return dast profile data3857 when feature flag is not enabled3858 returns the dast profile data3859API::Templates3860 GET /templates/dockerfiles3861 includes the custom template in the response3862 excludes the custom template when the feature is disabled3863 GET /templates/dockerfiles/custom3864 returns the custom template3865 returns 404 when the feature is disabled3866 GET /templates/gitignores3867 includes the custom template in the response3868 excludes the custom template when the feature is disabled3869 GET /templates/gitignores/custom3870 returns the custom template3871 returns 404 when the feature is disabled3872 GET /templates/gitlab_ci_ymls3873 includes the custom template in the response3874 excludes the custom template when the feature is disabled3875 GET /templates/gitlab_ci_ymls/custom3876 returns the custom template3877 returns 404 when the feature is disabled3878 GET /templates/licenses3879 includes the custom template in the response3880 excludes the custom template when the feature is disabled3881 GET /templates/licenses/custom3882 returns the custom template3883 returns 404 when the feature is disabled3884Query.project(fullPath).dastSiteProfile3885 when a user does not have access to the project3886 returns a null project3887 when a user does not have access to dast_site_profiles3888 returns a null dast_site_profile3889 when a user has access to dast_site_profiles3890 returns a dast_site_profile3891 when the wrong type of global id is supplied3892 returns a null dast_site_profile3893 when on demand scan licensed feature is not available3894 returns a null dast_site_profile3895 when there is no associated dast_site_validation3896 returns a none validation status3897Projects::Settings::SlacksController3898 GET show3899 when valid CSRF token is provided3900 calls service and redirects with no alerts if result is successful3901 calls service and redirects with the alert if there is error3902 when no CSRF token is provided3903 returns 4033904API::Experiments3905 GET /experiments3906 when on .com3907 returns a 401 for anonymous users3908 returns a 403 for users3909 returns a 403 for non human users3910 for gitlab team members3911 returns the feature flag details3912 understands the state of the feature flag and what that means for an experiment3913 the null_hypothesis as a canary3914 runs and tracks the expected events3915 returns a 400 if experimentation seems broken3916 publishes into a collection of experiments that have been run in the request3917 when not .com3918 returns a 403 for users3919Groups::RoadmapController3920 GET /groups/*namespace_id/-/roadmap3921 guest3922 renders without persisting layout3923 logged in3924 not specifying layout3925 renders without persisting layout3926 specifying invalid layout3927 renders without persisting layout3928 specifying layout3929 persists roadmap_layout if different than current layout3930Query.vulnerabilities.issueLinks3931 when invalid linkType argument is provided3932 errors with a string3933 errors with a number3934 errors with lowercased `created`3935 errors with lowercased `related`3936 when valid linkType argument is provided3937 returns a list of VulnerabilityIssueLink with `CREATED` linkType3938 returns a list of VulnerabilityIssueLink with `RELATED` linkType3939 when no arguments are provided3940 returns a list of all VulnerabilityIssueLink3941Admin::PushRulesController3942 #update3943 updates sample push rule3944 links push rule with application settings3945 push rules unlicensed3946 returns 4043947 #show3948 returns 2003949 push rules unlicensed3950 returns 4043951view audit events3952 GET /audit_events3953 when admin mode is enabled3954 returns 200 response3955 avoids N+1 DB queries3956 when admin mode is disabled3957 redirects to admin mode enable3958Setting the epic of an issue3959 returns an error if the user is not allowed to update the issue3960 return an error if issue can not be updated3961 sets given epic to the issue3962 removes existing epic if epic_id is nil3963Groups::Settings::ReportingController3964 GET /groups/:group_id/-/settings/reporting3965 when user is owner3966 renders show with 200 status code3967 behaves like 404 when feature is unavailable3968 when feature flag is disabled3969 behaves like renders 4043970 renders 4043971 when licensed feature is not available3972 behaves like renders 4043973 renders 4043974 when subgroup3975 behaves like renders 4043976 renders 4043977 when user is not owner3978 renders a 4043979Admin::AuditLogsController3980 GET #index3981 licensed3982 tracks search event3983 pagination3984 paginates audit events, without casting a count query3985 behaves like tracking unique visits3986 tracks unique visit if the format is HTML3987 tracks unique visit if DNT is not enabled3988 does not track unique visit if DNT is enabled3989 does not track unique visit if the format is JSON3990 when invalid date3991 created_before: "invalid-date", created_after: nil3992 returns an error3993 created_before: nil, created_after: true3994 returns an error3995 created_before: "2021-13-10", created_after: nil3996 returns an error3997 created_before: nil, created_after: "2021-02-31"3998 returns an error3999 created_before: "2021-03-31", created_after: "2021-02-31"4000 returns an error4001 when date range is greater than limit4002 behaves like a date range error is returned4003 created_after: "2021-01-01", created_before: "2021-02-02"4004 returns an error4005 created_after: "2022-01-31", created_before: nil4006 returns an error4007 by user4008 finds the user by id when provided with a entity_id4009 finds the user by username when provided with a entity_username4010OmniAuth Kerberos SPNEGO4011 asks for an SPNEGO token4012 when an SPNEGO token is provided4013 passes the token to spnego_negotiate!4014 when the final SPNEGO token is provided4015 redirects to the omniauth callback4016 stores the users principal name in the session4017 send the final SPNEGO response4018Mutations::Boards::EpicBoards::Destroy4019 when the user does not have permission4020 does not destroy the board4021 behaves like a mutation that returns a top-level access error4022 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"4023 when the user has permission4024 when everything is ok4025 destroys the board4026 returns an empty board4027 when there is only 1 board for the parent4028 does destroy the board4029API::Markdown Snapshot4030 # order random4031 for 08_03_00__gitlab_internal_extension_markdown__markdown_preview_api_request_overrides__0064032 verifies conversion of GLFM to HTML4033 for 08_04_07__gitlab_internal_extension_markdown__migrated_golden_master_examples__attachment_link_for_group_wiki__0014034 verifies conversion of GLFM to HTML4035Query.[project|group](fullPath).dora.metrics4036 when querying for project-level metrics4037 returns the expected project-level DORA metrics4038 when querying for group-level metrics4039 returns the expected group-level DORA metrics4040Admin::Licenses::UsageExportsController4041 GET show4042 with no current license4043 redirects the user4044 does not update the license usage data exported flag4045 does not attempt to create the CSV4046 with a current license4047 returns a csv file in response4048 returns the expected response body4049 when current license is an offline cloud license4050 updates the license usage data exported flag4051 when current license is an online cloud license4052 does not update the license usage data exported flag4053 when current license is a legacy license4054 does not update the license usage data exported flag4055 when data export fails4056 does not update the license usage data exported flag4057Projects::Analytics::CycleAnalytics::SummaryController4058 GET "time_summary"4059 when cycle_analytics_for_projects feature is available4060 succeeds4061 returns correct value4062 when analytics_disabled features are disabled4063 renders 4044064 when user is not part of the project4065 renders 4044066 when the feature is not available4067 renders 4044068Projects::IterationCadencesController4069 behaves like accessing iteration cadences4070 index4071 role: :none, status: :not_found4072 behaves like returning response status4073 returns not_found4074 role: :guest, status: :success4075 behaves like returning response status4076 returns success4077 role: :developer, status: :success4078 behaves like returning response status4079 returns success4080Groups::Security::DashboardController4081 GET show4082 when security dashboard feature is enabled4083 and user is allowed to access group security dashboard4084 is expected to respond with numeric status code ok4085 when user is not allowed to access group security dashboard4086 is expected to respond with numeric status code ok4087 is expected to render template unavailable4088 when security dashboard feature is disabled4089 is expected to respond with numeric status code ok4090 is expected to render template unavailable4091Projects::BoardsController4092 GET index4093 behaves like pushes wip limits to frontend4094 self-hosted with correct license4095 is enabled for all groups if the license is correct4096 on .com4097 for group with correct plan4098 is enabled4099 for group with incorrect or no plan4100 is not enabled4101Query.issue(id)4102 # order random4103 when user has access to the epic4104 returns epic and hasEpic is `true`4105 when user has no access to the epic4106 when there is an epic4107 returns null for epic and hasEpic is `true`4108 when there is no epic4109 returns null for epic and hasEpic is `false`4110RootController4111 GET #index4112 when user is not logged in4113 on a Geo primary node4114 redirects to the sign-in page4115 when a custom home page URL is defined4116 redirects the user to the custom home page URL4117 on a Geo secondary node4118 redirects to the sign-in page4119 when a custom home page URL is defined4120 redirects to the sign-in page4121 with a user4122 who has customized their dashboard setting for operations4123 when licensed4124 redirects to operations dashboard4125 when unlicensed4126 renders the default dashboard4127Project creation via Registrations::GroupsProjectsController4128 # order random4129 POST #create4130 with an authenticated user4131 when group and project can be created4132 creates a group4133 when group already exists and project can be created4134 creates a project4135Updating an escalation policy4136 # order random4137 updates the escalation policy4138 when rules are provided out of order4139 successfully creates the policy and reorders the rules4140getting a compliance frameworks list for a project4141 when the project has no compliance framework assigned4142 is an empty array4143 when the project has a compliance framework assigned4144 includes its name4145Projects::Settings::CiCdController4146 as a maintainer4147 GET show4148 renders group protected environments4149learn about features4150 GET /groups/:group_id/-/discover_premium_and_ultimate4151 check_namespace_plan?: true, group_is_eligible_for_trial?: true, user_can_admin_group?: true, examples_to_run: "renders the page"4152 behaves like renders the page4153 renders the view4154 check_namespace_plan?: false, group_is_eligible_for_trial?: true, user_can_admin_group?: true, examples_to_run: "returns 404"4155 behaves like returns 4044156 returns a 404 status4157 check_namespace_plan?: true, group_is_eligible_for_trial?: false, user_can_admin_group?: true, examples_to_run: "returns 404"4158 behaves like returns 4044159 returns a 404 status4160 check_namespace_plan?: true, group_is_eligible_for_trial?: true, user_can_admin_group?: false, examples_to_run: "returns 404"4161 behaves like returns 4044162 returns a 404 status4163API::RubygemPackages4164 # order random4165 GET /api/v4/projects/:project_id/packages/rubygems/gems/:file_name4166 behaves like applying ip restriction for group4167 in group without restriction4168 behaves like returning response status4169 returns ok4170 in group with restriction4171 with address within the range4172 behaves like returning response status4173 returns ok4174 with address outside the range4175 behaves like returning response status4176 returns not_found4177EE::Emails::MergeRequests4178 #add_merge_request_approver_email4179 when email_author_in_body is set4180 has the correct body with the name of the person who added the approver4181 when email_author_in_body is not set4182 has the correct body without the name of the person who added the approver4183Creating an External Issue Link4184 when the user does not have permission4185 does not destroy external issue link4186 behaves like a mutation that returns a top-level access error4187 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"4188 when the user has permission4189 when security_dashboard is disabled4190 behaves like a mutation that returns top-level errors4191 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"4192 when security_dashboard is enabled4193 destroys the external issue link4194Creating an issuable resource link4195 # order random4196 creates issuable resource link4197 returns error4198 when link is invalid4199 returns nil4200API::NpmProjectPackages4201 # order random4202 GET /api/v4/projects/:id/packages/npm/*package_name/-/*file_name4203 behaves like applying ip restriction for group4204 in group without restriction4205 behaves like returning response status4206 returns ok4207 in group with restriction4208 with address within the range4209 behaves like returning response status4210 returns ok4211 with address outside the range4212 behaves like returning response status4213 returns not_found4214Query.vulnerabilities.primaryIdentifier4215 returns a vulnerability identifiers4216Projects::MergeRequests::ContentController4217 user has access to the project4218 GET cached_widget4219 renders widget MR entity as json4220Query.project(fullPath).pushRules4221 returns nil when push_rules license is false4222 pushRules.rejectUnsignedCommits4223 field_value: true, license_value: true, expected: true4224 returns4225 field_value: true, license_value: false, expected: false4226 returns4227 field_value: false, license_value: true, expected: false4228 returns4229 field_value: false, license_value: false, expected: false4230 returns4231API::ProjectSnapshots4232 GET /projects/:id/snapshot4233 requests project repository raw archive from Geo primary as Geo secondary4234Emails::NamespaceStorageUsageMailer4235 #notify_out_of_storage4236 creates an email message for a group4237 creates an email message for a namespace4238 #notify_limit_warning4239 creates an email message for a group4240 creates an email message for a namespace4241GitlabSubscriptions::SeatCountAlert4242 #generate_seat_count_alert_data4243 when the user is not authenticated4244 does not set the seat count data4245 when the user is authenticated4246 when the namespace is nil4247 does not set the seat count data4248 when supplied a project4249 sets the data based on the root ancestor4250 when supplied a top level group4251 sets the data based on that group4252 when supplied a subgroup4253 sets the data based on the root ancestor4254Query.project(fullPath).corpuses4255 when the user can read corpus for the project4256 returns corpus and package4257 when the user cannot read corpus for the project4258 returns nil4259Profiles::BillingsController4260 GET #index4261 renders index with 200 status code4262 fetch subscription plans data from customers.gitlab.com4263 when CustomersDot is unavailable4264 renders a different partial4265Admin::ImpersonationTokensController4266 # order random4267 when impersonation is enabled4268 when personal access tokens are disabled4269 responds with a 4044270Ci/Cd settings through GroupQuery4271 when group has no associated ci_cd_settings4272 returns false for allowStaleRunnerPruning4273 when group has associated ci_cd_settings4274 with allow_stale_runner_pruning set to false4275 returns false for allowStaleRunnerPruning4276 with allow_stale_runner_pruning set to true4277 returns true for allowStaleRunnerPruning4278Removing an on-call schedule4279 # order random4280 removes the on-call schedule4281Profiles::UsageQuotasController4282 GET index4283 renders usage quota page4284Knapsack report was generated. Preview:4285{4286 "ee/spec/requests/api/vulnerabilities_spec.rb": 169.6049252419998,4287 "ee/spec/requests/api/issues_spec.rb": 57.72932181500073,4288 "ee/spec/requests/api/graphql/geo/registries_spec.rb": 77.17724088999967,4289 "ee/spec/mailers/notify_spec.rb": 42.93522822200066,4290 "ee/spec/requests/api/project_approval_settings_spec.rb": 33.067266893000124,4291 "ee/spec/requests/api/project_approval_rules_spec.rb": 33.116286167,4292 "ee/spec/requests/api/merge_requests_spec.rb": 30.636455620999186,4293 "ee/spec/controllers/projects/mirrors_controller_spec.rb": 32.33711475899872,4294 "ee/spec/requests/admin/credentials_controller_spec.rb": 18.671469397000692,4295 "ee/spec/requests/api/status_checks_spec.rb": 18.329018636999535,4296 "ee/spec/controllers/registrations/groups_projects_controller_spec.rb": 20.09323905800011,4297 "ee/spec/requests/api/internal/kubernetes_spec.rb": 15.755178044000786,4298 "ee/spec/requests/api/graphql/compliance_management/merge_requests/compliance_violations_spec.rb": 17.381446810000853,4299 "ee/spec/controllers/groups/audit_events_controller_spec.rb": 13.907032944000093,4300 "ee/spec/controllers/groups/sso_controller_spec.rb": 15.11697611999989,4301 "ee/spec/controllers/projects/security/vulnerabilities/notes_controller_spec.rb": 16.42307477399845,4302 "ee/spec/requests/api/graphql/iteration_spec.rb": 10.233050281000033,4303 "ee/spec/requests/api/project_aliases_spec.rb": 10.605182496999987,4304 "ee/spec/controllers/ee/projects/jobs_controller_spec.rb": 14.82983317399885,4305 "ee/spec/requests/api/graphql/mutations/work_items/update_spec.rb": 9.078349609000725,4306 "ee/spec/requests/api/graphql/mutations/audit_events/external_audit_event_destinations/create_spec.rb": 10.54506171399953,4307 "ee/spec/controllers/projects/integrations/jira/issues_controller_spec.rb": 7.80766303999917,4308 "ee/spec/requests/api/analytics/product_analytics_spec.rb": 6.292045811000207,4309 "ee/spec/controllers/projects/path_locks_controller_spec.rb": 7.760463785998581,4310 "ee/spec/controllers/groups/security/policies_controller_spec.rb": 7.71205381099935,4311 "ee/spec/requests/projects/settings/access_tokens_controller_spec.rb": 9.15089917000114,4312 "ee/spec/requests/api/resource_iteration_events_spec.rb": 8.182252435999544,4313 "ee/spec/requests/api/graphql/boards/epic_board_list_epics_query_spec.rb": 8.252055516999462,4314 "ee/spec/requests/api/graphql/mutations/iterations/update_spec.rb": 6.550802929999918,4315 "ee/spec/controllers/groups/analytics/ci_cd_analytics_controller_spec.rb": 4.071920875001524,4316 "ee/spec/requests/api/group_variables_spec.rb": 6.640857539001445,4317 "ee/spec/requests/api/graphql/project/product_analytics_spec.rb": 4.959726679999221,4318 "ee/spec/requests/api/graphql/mutations/boards/create_spec.rb": 4.912974664999638,4319 "ee/spec/requests/api/graphql/mutations/issues/update_spec.rb": 6.880598030000328,4320 "ee/spec/requests/api/protected_tags_spec.rb": 5.46025249000013,4321 "ee/spec/requests/api/resource_state_events_spec.rb": 4.400398885998584,4322 "ee/spec/controllers/projects/security/dashboard_controller_spec.rb": 5.97723754800063,4323 "ee/spec/requests/api/graphql/project/dast_site_profiles_spec.rb": 5.141611748000287,4324 "ee/spec/controllers/projects/requirements_management/requirements_controller_spec.rb": 6.526755872999274,4325 "ee/spec/requests/api/graphql/project/incident_management/escalation_policies_spec.rb": 4.299193368000488,4326 "ee/spec/controllers/projects/environments_controller_spec.rb": 4.592234761999862,4327 "ee/spec/requests/api/graphql/projects/compliance_frameworks_spec.rb": 6.501279455998883,4328 "ee/spec/requests/api/graphql/mutations/vulnerabilities/create_external_issue_link_spec.rb": 4.2811970799994015,4329 "ee/spec/requests/api/graphql/milestone_spec.rb": 2.752299691999724,4330 "ee/spec/controllers/admin/licenses_controller_spec.rb": 3.425816441000279,4331 "ee/spec/requests/api/graphql/incident_management/issuable_resource_links_spec.rb": 3.6693404100005864,4332 "ee/spec/requests/api/graphql/mutations/incident_management/oncall_rotation/create_spec.rb": 3.2111609550011053,4333 "ee/spec/requests/projects/audit_events_spec.rb": 4.735907005000627,4334 "ee/spec/requests/admin/geo/replicables_controller_spec.rb": 3.326930754001296,4335 "ee/spec/requests/groups/clusters_controller_spec.rb": 4.834267525000541,4336 "ee/spec/requests/api/ci/minutes_spec.rb": 3.2978274670003884,4337 "ee/spec/mailers/license_mailer_spec.rb": 2.2224022049995256,4338 "ee/spec/requests/api/graphql/project/pipeline/dast_profile_spec.rb": 3.4926366839990806,4339 "ee/spec/requests/api/templates_spec.rb": 2.2988733260008303,4340 "ee/spec/requests/api/graphql/project/dast_site_profile_spec.rb": 2.814564075000817,4341 "ee/spec/controllers/projects/settings/slacks_controller_spec.rb": 2.6726222220004274,4342 "ee/spec/requests/api/experiments_spec.rb": 3.0040071419989545,4343 "ee/spec/requests/groups/roadmap_controller_spec.rb": 3.9183143329992163,4344 "ee/spec/requests/api/graphql/vulnerabilities/issue_links_spec.rb": 3.7626816519987187,4345 "ee/spec/controllers/admin/push_rules_controller_spec.rb": 2.868068288998984,4346 "ee/spec/requests/admin/audit_events_spec.rb": 2.7336939340002573,4347 "ee/spec/requests/api/graphql/mutations/issues/set_epic_spec.rb": 3.8379349730003014,4348 "ee/spec/requests/groups/settings/reporting_controller_spec.rb": 3.3459700209987204,4349 "ee/spec/controllers/admin/audit_logs_controller_spec.rb": 2.364521859000888,4350 "ee/spec/requests/omniauth_kerberos_spec.rb": 1.1851893380007823,4351 "ee/spec/requests/api/graphql/mutations/boards/epic_boards/destroy_spec.rb": 2.3380699120007193,4352 "ee/spec/requests/api/markdown_snapshot_spec.rb": 1.8719514069998695,4353 "ee/spec/requests/api/graphql/dora/dora_spec.rb": 2.172776310999325,4354 "ee/spec/controllers/admin/licenses/usage_exports_controller_spec.rb": 2.3993731050013594,4355 "ee/spec/controllers/projects/analytics/cycle_analytics/summary_controller_spec.rb": 2.8292830919999687,4356 "ee/spec/controllers/projects/iteration_cadences_controller_spec.rb": 1.5500377360003768,4357 "ee/spec/controllers/groups/security/dashboard_controller_spec.rb": 2.329177471998264,4358 "ee/spec/controllers/projects/boards_controller_spec.rb": 2.8900668360001873,4359 "ee/spec/requests/api/graphql/issue/issue_spec.rb": 4.380988398999762,4360 "ee/spec/controllers/ee/root_controller_spec.rb": 1.7573119310000038,4361 "ee/spec/requests/registrations/project_creation_spec.rb": 3.045424527999785,4362 "ee/spec/requests/api/graphql/mutations/incident_management/escalation_policy/update_spec.rb": 2.12162251799964,4363 "ee/spec/requests/api/graphql/project/compliance_frameworks_spec.rb": 2.1446023940006853,4364 "ee/spec/controllers/projects/settings/ci_cd_controller_spec.rb": 2.2875184980002814,4365 "ee/spec/requests/groups/feature_discovery_moments_spec.rb": 2.1490534040003695,4366 "ee/spec/requests/api/rubygem_packages_spec.rb": 2.0678664940005547,4367 "ee/spec/mailers/ee/emails/merge_requests_spec.rb": 2.341650620999644,4368 "ee/spec/requests/api/graphql/mutations/vulnerabilities/destroy_external_issue_link_spec.rb": 2.12702477700077,4369 "ee/spec/requests/api/graphql/mutations/incident_management/issuable_resource_link/create_spec.rb": 1.7028147069995612,4370 "ee/spec/requests/api/npm_project_packages_spec.rb": 2.3904023350005446,4371 "ee/spec/requests/api/graphql/vulnerabilities/primary_identifier_spec.rb": 2.292138287000853,4372 "ee/spec/controllers/ee/projects/merge_requests/content_controller_spec.rb": 2.1578689029993257,4373 "ee/spec/requests/api/graphql/project/push_rules_spec.rb": 2.2028512279994175,4374 "ee/spec/requests/api/project_snapshots_spec.rb": 1.5632259329995577,4375 "ee/spec/mailers/emails/namespace_storage_usage_mailer_spec.rb": 1.1177746269986528,4376 "ee/spec/controllers/concerns/gitlab_subscriptions/seat_count_alert_spec.rb": 1.4197832310001104,4377 "ee/spec/requests/api/graphql/app_sec/fuzzing/coverage/corpus_type_spec.rb": 1.6678649810000934,4378 "ee/spec/controllers/profiles/billings_controller_spec.rb": 1.055081643999074,4379 "ee/spec/requests/admin/impersonation_tokens_controller_spec.rb": 0.9914774619992386,4380 "ee/spec/requests/api/graphql/group/ci_cd_settings_spec.rb": 1.3838624050004,4381 "ee/spec/requests/api/graphql/mutations/incident_management/oncall_schedule/destroy_spec.rb": 1.1513672629989742,4382 "ee/spec/controllers/profiles/usage_quotas_controller_spec.rb": 0.78694831599932514383}4384Knapsack global time execution for tests: 15m 38s4385Finished in 15 minutes 42 seconds (files took 1 minute 19.6 seconds to load)43861499 examples, 0 failures4387Randomized with seed 524514388[TEST PROF INFO] Time spent in factories: 07:31.406 (46.08% of total time)4389RSpec exited with 0.4390No examples to retry, congrats!4392Not uploading cache ruby-gems-debian-bullseye-ruby-2.7-16 due to policy4393Not uploading cache gitaly-ruby-gems-debian-bullseye-ruby-2.7-16 due to policy4395Uploading artifacts...4396coverage/: found 5 matching files and directories 4397crystalball/: found 2 matching files and directories 4398WARNING: deprecations/: no matching files. Ensure that the artifact path is relative to the working directory 4399knapsack/: found 3 matching files and directories 4400WARNING: query_recorder/: no matching files. Ensure that the artifact path is relative to the working directory 4401rspec/: found 11 matching files and directories 4402WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory 4403log/*.log: found 19 matching files and directories 4404WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/3443741103/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com4405WARNING: Retrying... context=artifacts-uploader error=request redirected4406Uploading artifacts as "archive" to coordinator... 201 Created id=3443741103 responseStatus=201 Created token=LYrfAvhf4407Uploading artifacts...4408rspec/junit_rspec.xml: found 1 matching files and directories 4409WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/3443741103/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com4410WARNING: Retrying... context=artifacts-uploader error=request redirected4411Uploading artifacts as "junit" to coordinator... 201 Created id=3443741103 responseStatus=201 Created token=LYrfAvhf4413Job succeeded