rspec-ee integration pg12 3/4
Passed Started
by
@.luke

Luke Duncalfe
1Running with gitlab-runner 15.3.0~beta.38.g8a5b56fa (8a5b56fa)2 on blue-1.shared-gitlab-org.runners-manager.gitlab.com/default KzYhZxBv3 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.17-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-101-yarn-1.22-graphicsmagick-1.3.36 ...7Starting service postgres:12 ...8Pulling docker image postgres:12 ...9Using docker image sha256:ffc079081fed116f7ec22097d3e0308ab568536216cdebf45a8cab78fe30ee8f for postgres:12 with digest postgres@sha256:ca17935b3df07cb09f6ceab07913f6fee0e5f349102fe0a7922a8969c3593ae0 ...10Starting service redis:6.0-alpine ...11Pulling docker image redis:6.0-alpine ...12Using docker image sha256:374ca386513ad781c1aa2f52c9379052723b49ab188b8517167f0b24055518bf for redis:6.0-alpine with digest redis@sha256:8f94750b64abe7fcb118c2e6706be5e186efc54a62b80fe1d21b8d7a91c0f547 ...13Starting service elasticsearch:7.17.0 ...14Pulling docker image elasticsearch:7.17.0 ...15Using docker image sha256:6fe993d6e7ed5e00a18f9b146d867b77559bf9948e6596bbf880ddbefeec46f7 for elasticsearch:7.17.0 with digest elasticsearch@sha256:332c6d416808f6e9a2cbcbe0170d9a9bb14bfe772180d37de5084c223dd8948b ...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.17-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-101-yarn-1.22-graphicsmagick-1.3.36 ...19Using docker image sha256:a9a70e41d030f83cde0068df3d11170dec855e8a8bf3a020e27b85ad5b20d11b for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-101-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.17-node-16.14-postgresql-12@sha256:b017ecabd2a1190405dc62cb97a82b18482bf812ceeeee2c3f4200b890c43fde ...21Running on runner-kzyhzxbv-project-278964-concurrent-0 via runner-kzyhzxbv-shared-gitlab-org-1659389510-d346fc45...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: 127308, done. 28remote: Counting objects: 100% (127308/127308), done. 29remote: Compressing objects: 100% (86137/86137), done. 30remote: Total 127308 (delta 56589), reused 83753 (delta 36275), pack-reused 0 31Receiving objects: 100% (127308/127308), 114.35 MiB | 19.48 MiB/s, done.32Resolving deltas: 100% (56589/56589), done.34 * [new ref] refs/pipelines/602249477 -> refs/pipelines/60224947735Checking out a33057a2 as refs/merge-requests/93624/merge...36Skipping Git submodules setup37$ git remote set-url origin "${CI_REPOSITORY_URL}"39Checking cache for ruby-gems-debian-bullseye-ruby-2.7-14...40cache.zip is up to date 41Successfully extracted cache42Checking cache for gitaly-ruby-gems-debian-bullseye-ruby-2.7-14...43cache.zip is up to date 44Successfully extracted cache46Downloading artifacts for compile-test-assets (2799740965)...47Downloading artifacts from coordinator... ok id=2799740965 responseStatus=200 OK token=LygzHFfc48Downloading artifacts for detect-tests (2799740974)...49Downloading artifacts from coordinator... ok id=2799740974 responseStatus=200 OK token=LygzHFfc50Downloading artifacts for retrieve-tests-metadata (2799740978)...51Downloading artifacts from coordinator... ok id=2799740978 responseStatus=200 OK token=LygzHFfc52Downloading artifacts for setup-test-env (2799740970)...53Downloading artifacts from coordinator... ok id=2799740970 responseStatus=200 OK token=LygzHFfc55Using docker image sha256:a9a70e41d030f83cde0068df3d11170dec855e8a8bf3a020e27b85ad5b20d11b for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-101-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.17-node-16.14-postgresql-12@sha256:b017ecabd2a1190405dc62cb97a82b18482bf812ceeeee2c3f4200b890c43fde ...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.sh623.2.3363Bundler version 2.2.3364Successfully installed bundler-2.3.15651 gem installed66production:development67Settings are listed in order of priority. The top value will be used.68clean69Set for your local app (/builds/gitlab-org/gitlab/.bundle/config): true70frozen71Set via BUNDLE_FROZEN: true72install_flags73Set via BUNDLE_INSTALL_FLAGS: "--jobs=$(nproc) --retry=3 --quiet"74path75Set for your local app (/builds/gitlab-org/gitlab/.bundle/config): "/builds/gitlab-org/gitlab/vendor"76without77Set via BUNDLE_WITHOUT: [:production, :development]78$ bundle install --jobs=$(nproc) --retry=3 --quiet && bundle check79Don't run Bundler as root. Bundler can ask for sudo if it is needed, and80installing your bundle as root will break this application for all non-root81users on this machine.82The Gemfile's dependencies are satisfied83==> 'bundle install --jobs=$(nproc) --retry=3 --quiet && bundle check' succeeded in 3 seconds.84$ bundle pristine pg85Installing pg 1.4.1 with native extensions86==> 'bundle pristine pg' succeeded in 11 seconds.87Using decomposed database config (config/database.yml.decomposed-postgresql)88$ setup_db_user_only89CREATE ROLE90GRANT91==> 'setup_db_user_only' succeeded in 0 seconds.92$ bundle exec rake db:drop db:create db:schema:load db:migrate93Dropped database 'gitlabhq_test'94Dropped database 'gitlabhq_test_ci'95Dropped database 'gitlabhq_geo_test'96Created database 'gitlabhq_test'97Created database 'gitlabhq_test_ci'98Created database 'gitlabhq_geo_test'99==> 'bundle exec rake db:drop db:create db:schema:load db:migrate' succeeded in 45 seconds.100$ setup_db_praefect101SELECT pg_catalog.set_config('search_path', '', false);102CREATE DATABASE praefect_test ENCODING 'UTF8';103==> 'setup_db_praefect' succeeded in 0 seconds.104$ run_timed_command "gem install knapsack --no-document"105$ gem install knapsack --no-document106Successfully installed knapsack-4.0.01071 gem installed108==> 'gem install knapsack --no-document' succeeded in 1 seconds.109$ run_timed_command "scripts/gitaly-test-spawn"110$ scripts/gitaly-test-spawn111find: ‘/builds/gitlab-org/gitlab/tmp/tests/gitaly/cmd’: No such file or directory112find: ‘/builds/gitlab-org/gitlab/tmp/tests/gitaly/cmd’: No such file or directory113find: ‘/builds/gitlab-org/gitlab/tmp/tests/gitaly/cmd’: No such file or directory114find: ‘/builds/gitlab-org/gitlab/tmp/tests/gitaly/cmd’: No such file or directory115find: ‘/builds/gitlab-org/gitlab/tmp/tests/gitaly/cmd’: No such file or directory116Don't run Bundler as root. Bundler can ask for sudo if it is needed, and117installing your bundle as root will break this application for all non-root118users on this machine.119Using abstract_type 0.0.7120Using concurrent-ruby 1.1.10121Using i18n 1.12.0122Using minitest 5.16.2123Using tzinfo 2.0.5124Using zeitwerk 2.6.0125Using activesupport 6.1.6.1126Using builder 3.2.4127Using erubi 1.10.0128Using mini_portile2 2.8.0129Using racc 1.6.0130Using nokogiri 1.13.6 (x86_64-linux)131Using rails-dom-testing 2.0.3132Using crass 1.0.6133Using loofah 2.16.0134Using rails-html-sanitizer 1.4.2135Using actionview 6.1.6.1136Using rack 2.2.3137Using rack-test 1.1.0138Using actionpack 6.1.6.1139Using ice_nine 0.11.2140Using thread_safe 0.3.6141Using memoizable 0.4.2142Using adamantium 0.2.0143Using public_suffix 4.0.6144Using addressable 2.7.0145Using ast 2.4.2146Using binding_ninja 0.2.3147Using bundler 2.3.15148Using charlock_holmes 0.7.7149Using coderay 1.1.2150Using equalizer 0.0.11151Using concord 0.1.5152Using diff-lcs 1.3153Using dotenv 2.7.6154Using escape_utils 1.2.2155Using factory_bot 5.0.2156Using multipart-post 2.1.1157Using faraday 1.0.1158Using ffi 1.15.3159Using json 2.5.1160Using gemojione 3.3.0161Using mini_mime 1.1.2162Using rugged 1.2.0163Using github-linguist 7.20.0164Using github-markup 1.7.0165Using mime-types-data 3.2020.1104166Using mime-types 3.3.1167Using gitlab-gollum-rugged_adapter 0.4.4.4.gitlab.1168Using rouge 3.27.0169Using sanitize 6.0.0170Using stringex 2.8.5171Using gitlab-gollum-lib 4.2.7.10.gitlab.2172Using google-protobuf 3.21.3 (x86_64-linux)173Using googleapis-common-protos-types 1.3.0174Using grpc 1.42.0 (x86_64-linux)175Using opentracing 0.5.0176Using thrift 0.15.0177Using jaeger-client 1.1.0178Using pg_query 2.1.1179Using redis 4.4.0180Using gitlab-labkit 0.23.0181Using rubyzip 2.3.2182Using thor 1.1.0183Using tomlrb 2.0.1184Using with_env 1.1.0185Using rexml 3.2.5186Using xml-simple 1.1.9187Using gitlab-license_finder 6.14.2.1188Using gitlab-markup 1.7.1189Using grpc-tools 1.42.0190Using sawyer 0.8.2191Using octokit 4.20.0192Using reverse_markdown 1.4.0193Using licensee 9.14.1194Using method_source 0.9.2195Using msgpack 1.3.3196Using optimist 3.0.1197Using parallel 1.19.2198Using parser 3.0.3.2199Using procto 0.0.3200Using unparser 0.4.7201Using proc_to_ast 0.1.0202Using pry 0.12.2203Using rainbow 3.0.0204Using rbtrace 0.4.14205Using rdoc 6.3.2206Using regexp_parser 1.8.1207Using rspec-support 3.8.0208Using rspec-core 3.8.0209Using rspec-expectations 3.8.3210Using rspec-mocks 3.8.0211Using rspec 3.8.0212Using rspec-parameterized 0.4.2213Using rubocop-ast 0.2.0214Using ruby-progressbar 1.10.1215Using unicode-display_width 1.7.0216Using rubocop 0.86.0217Using sentry-raven 3.0.4218Using timecop 0.9.1219Bundle complete! 22 Gemfile dependencies, 100 gems now installed.220Gems in the groups 'production' and 'development' were not installed.221Bundled gems are installed into `/builds/gitlab-org/gitlab/vendor/gitaly-ruby`222Checking gitaly-ruby Gemfile...223Checking gitaly-ruby bundle...224The Gemfile's dependencies are satisfied225Trying to connect to gitaly: .............................................. OK226Trying to connect to gitaly2: .................................................................. OK227Starting Praefect with in-memory election strategyTrying to connect to praefect: ......... OK228==> 'scripts/gitaly-test-spawn' succeeded in 14 seconds.229$ source ./scripts/rspec_helpers.sh230$ rspec_paralellized_job "--tag ~quarantine --tag ~level:migration"231SKIP_FLAKY_TESTS_AUTOMATICALLY: true232RETRY_FAILED_TESTS_IN_NEW_PROCESS: true233KNAPSACK_GENERATE_REPORT: true234FLAKY_RSPEC_GENERATE_REPORT: true235KNAPSACK_TEST_FILE_PATTERN: {ee/}spec/{commands,controllers,mailers,requests}{,/**/}*_spec.rb236KNAPSACK_LOG_LEVEL: debug237KNAPSACK_REPORT_PATH: knapsack/rspec-ee_integration_pg12_3_4_report.json238FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json239FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec-ee_integration_pg12_3_4_report.json240NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec-ee_integration_pg12_3_4_report.json241SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec-ee_integration_pg12_3_4_report.txt242RETRIED_TESTS_REPORT_PATH: rspec/flaky/retried_tests_rspec-ee_integration_pg12_3_4_report.txt243CRYSTALBALL: 244Knapsack node specs:245ee/spec/controllers/projects/merge_requests_controller_spec.rb246ee/spec/requests/api/projects_spec.rb247ee/spec/requests/api/groups_spec.rb248ee/spec/requests/git_http_geo_spec.rb249ee/spec/controllers/projects_controller_spec.rb250ee/spec/requests/api/releases_spec.rb251ee/spec/requests/api/merge_request_approval_rules_spec.rb252ee/spec/requests/api/epic_issues_spec.rb253ee/spec/requests/api/ldap_group_links_spec.rb254ee/spec/requests/api/discussions_spec.rb255ee/spec/requests/api/group_push_rule_spec.rb256ee/spec/controllers/groups/epic_issues_controller_spec.rb257ee/spec/requests/groups_controller_spec.rb258ee/spec/requests/api/internal/base_spec.rb259ee/spec/controllers/groups/analytics/cycle_analytics/summary_controller_spec.rb260ee/spec/requests/projects/settings/access_tokens_controller_spec.rb261ee/spec/requests/api/project_approval_rules_spec.rb262ee/spec/requests/api/group_boards_spec.rb263ee/spec/requests/api/graphql/compliance_management/merge_requests/compliance_violations_spec.rb264ee/spec/controllers/groups/audit_events_controller_spec.rb265ee/spec/requests/api/graphql/group_query_spec.rb266ee/spec/controllers/registrations/projects_controller_spec.rb267ee/spec/requests/api/internal/kubernetes_spec.rb268ee/spec/requests/api/protected_branches_spec.rb269ee/spec/requests/api/graphql/epics/epic_resolver_spec.rb270ee/spec/requests/api/project_aliases_spec.rb271ee/spec/requests/api/graphql/project/vulnerability_severities_count_spec.rb272ee/spec/requests/smartcard_controller_spec.rb273ee/spec/controllers/projects/security/vulnerabilities_controller_spec.rb274ee/spec/controllers/projects/security/configuration_controller_spec.rb275ee/spec/requests/api/graphql/project/incident_management/oncall_shifts_spec.rb276ee/spec/requests/api/ci/triggers_spec.rb277ee/spec/controllers/projects/approvers_controller_spec.rb278ee/spec/controllers/groups/saml_providers_controller_spec.rb279ee/spec/requests/repositories/git_http_controller_spec.rb280ee/spec/requests/api/graphql/mutations/audit_events/external_audit_event_destinations/destroy_spec.rb281ee/spec/requests/api/resource_label_events_spec.rb282ee/spec/requests/api/group_repository_storage_moves_spec.rb283ee/spec/controllers/projects/integrations/jira/issues_controller_spec.rb284ee/spec/requests/api/graphql/boards/epic_board_list_epics_query_spec.rb285ee/spec/requests/api/geo_spec.rb286ee/spec/requests/api/internal/app_sec/dast/site_validations_spec.rb287ee/spec/requests/api/invitations_spec.rb288ee/spec/controllers/subscriptions/groups_controller_spec.rb289ee/spec/controllers/groups/issues_controller_spec.rb290ee/spec/requests/api/resource_iteration_events_spec.rb291ee/spec/requests/api/graphql/mutations/audit_events/external_audit_event_destinations/update_spec.rb292ee/spec/requests/api/project_import_spec.rb293ee/spec/requests/api/geo_replication_spec.rb294ee/spec/requests/api/graphql/instance_security_dashboard_spec.rb295ee/spec/requests/projects/requirements_management/requirements_controller_spec.rb296ee/spec/controllers/projects/deploy_keys_controller_spec.rb297ee/spec/controllers/security/projects_controller_spec.rb298ee/spec/controllers/projects/security/dashboard_controller_spec.rb299ee/spec/requests/api/graphql/mutations/requirements_management/update_requirement_spec.rb300ee/spec/requests/api/graphql/mutations/iterations/cadences/create_spec.rb301ee/spec/requests/api/graphql/project/dast_site_profiles_spec.rb302ee/spec/requests/api/graphql/mutations/alert_management/http_integration/create_spec.rb303ee/spec/controllers/projects/insights_controller_spec.rb304ee/spec/requests/api/graphql/mutations/epics/add_issue_spec.rb305ee/spec/requests/api/graphql/project/dast_scanner_profiles_spec.rb306ee/spec/requests/api/graphql/mutations/compliance_management/frameworks/create_spec.rb307ee/spec/requests/api/graphql/project/alert_management/http_integrations_spec.rb308ee/spec/requests/api/graphql/vulnerabilities/description_spec.rb309ee/spec/requests/admin/geo/replicables_controller_spec.rb310ee/spec/controllers/projects/quality/test_cases_controller_spec.rb311ee/spec/requests/api/graphql/mutations/compliance_management/frameworks/update_spec.rb312ee/spec/mailers/credentials_inventory_mailer_spec.rb313ee/spec/requests/api/iterations_spec.rb314ee/spec/controllers/admin/licenses/usage_exports_controller_spec.rb315ee/spec/requests/api/graphql/mutations/boards/epic_lists/destroy_spec.rb316ee/spec/requests/api/graphql/project/dast_site_validations_spec.rb317ee/spec/mailers/ee/emails/admin_notification_spec.rb318ee/spec/controllers/projects/branches_controller_spec.rb319ee/spec/requests/api/graphql/mutations/merge_requests/set_assignees_spec.rb320ee/spec/requests/api/graphql/mutations/dast_scanner_profiles/create_spec.rb321ee/spec/controllers/admin/geo/nodes_controller_spec.rb322ee/spec/requests/api/graphql/mutations/issues/set_weight_spec.rb323ee/spec/requests/api/graphql/project/dast_site_profile_spec.rb324ee/spec/controllers/projects/settings/integrations_controller_spec.rb325ee/spec/requests/api/graphql/current_user/groups_query_spec.rb326ee/spec/requests/api/graphql/boards/epic_boards_query_spec.rb327ee/spec/controllers/ee/projects/autocomplete_sources_controller_spec.rb328ee/spec/requests/api/elasticsearch_indexed_namespaces_spec.rb329ee/spec/requests/api/graphql/mutations/dast_scanner_profiles/update_spec.rb330ee/spec/controllers/projects/analytics/cycle_analytics/summary_controller_spec.rb331ee/spec/requests/api/graphql/mutations/requirements_management/create_requirement_spec.rb332ee/spec/requests/api/graphql/mutations/compliance_management/frameworks/destroy_spec.rb333ee/spec/controllers/admin/users_controller_spec.rb334ee/spec/requests/api/graphql/mutations/notes/create/note_spec.rb335ee/spec/requests/api/graphql/mutations/boards/lists/create_spec.rb336ee/spec/controllers/groups/security/compliance_dashboards_controller_spec.rb337ee/spec/requests/api/graphql/mutations/issues/promote_to_epic_spec.rb338ee/spec/requests/api/graphql/mutations/boards/lists/update_limit_metrics_spec.rb339ee/spec/requests/api/graphql/mutations/ci/namespace_ci_cd_settings_update_spec.rb340ee/spec/mailers/ee/emails/merge_requests_spec.rb341ee/spec/requests/lfs_locks_api_spec.rb342ee/spec/requests/api/graphql/group/epic/epic_ancestors_spec.rb343ee/spec/requests/api/graphql/mutations/timelogs/create_spec.rb344ee/spec/requests/groups/compliance_frameworks_spec.rb345ee/spec/requests/api/graphql/project/merge_requests_spec.rb346ee/spec/requests/api/graphql/vulnerabilities/details_spec.rb347ee/spec/requests/api/graphql/iterations/cadences_spec.rb348ee/spec/controllers/groups/usage_quotas_controller_spec.rb349ee/spec/requests/api/graphql/work_item_spec.rb350ee/spec/mailers/emails/user_cap_spec.rb351ee/spec/requests/api/graphql/mutations/projects/lock_path_spec.rb352ee/spec/requests/api/ldap_spec.rb353ee/spec/controllers/groups/security/vulnerabilities_controller_spec.rb354ee/spec/requests/api/features_spec.rb355ee/spec/requests/api/graphql/vulnerabilities/primary_identifier_spec.rb356ee/spec/controllers/profiles_controller_spec.rb357ee/spec/requests/groups/usage_quotas_spec.rb358ee/spec/controllers/groups/ldaps_controller_spec.rb359ee/spec/requests/api/graphql/project/compliance_frameworks_spec.rb360ee/spec/requests/api/submodules_spec.rb361ee/spec/requests/api/v3/github_spec.rb362ee/spec/requests/api/graphql/mutations/boards/epic_boards/create_spec.rb363ee/spec/requests/callout_spec.rb364ee/spec/requests/api/graphql/ci/runners_spec.rb365ee/spec/requests/api/graphql/mutations/incident_management/escalation_policy/update_spec.rb366ee/spec/requests/api/graphql/project/security_orchestration/scan_result_policy_spec.rb367ee/spec/requests/admin/subscriptions_controller_spec.rb368ee/spec/controllers/ee/uploads_controller_spec.rb369ee/spec/controllers/ee/profiles/preferences_controller_spec.rb370ee/spec/requests/api/graphql/mutations/incident_management/escalation_policy/destroy_spec.rb371ee/spec/controllers/admin/impersonations_controller_spec.rb372ee/spec/requests/groups/contribution_analytics_spec.rb373ee/spec/requests/api/graphql/mutations/app_sec/fuzzing/api/ci_configuration/create_spec.rb374ee/spec/controllers/passwords_controller_spec.rb375ee/spec/controllers/oauth/applications_controller_spec.rb376Filter specs:377Running specs:378Running all node tests without filter379ee/spec/controllers/projects/merge_requests_controller_spec.rb380ee/spec/requests/api/projects_spec.rbKnapsack report generator started!381/builds/gitlab-org/gitlab/spec/support/shared_contexts/features/integrations/integrations_shared_context.rb:69: warning: found `= literal' in conditional, should be ==382WARNING: 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:271:in `block (2 levels) in <top (required)>'.383Run options: exclude {:quarantine=>true, :level=>"migration"}384Test environment set up in 0.545959407 seconds385Projects::MergeRequestsController386 PUT update387 when the merge request requires approval388 behaves like update invalid issuable389 when updating causes conflicts390 renders edit when format is html391 renders json error message when format is json392 when updating an invalid issuable393 renders edit when merge request is invalid394 overriding approvers per MR395 enabled396 updates approvals397 does not allow approvels before merge lower than the project setting398 creates rules399 disabled400 does not update approvals_before_merge401 does not update approver_ids402 does not update approver_group_ids403 does not create approval rules404 when the MR targets the project405 behaves like approvals_before_merge param406 approvals_before_merge not set for the existing MR407 when it is less than the one in the target project408 sets the param to the sames as the project409 updates the merge request410 when it is equal to the one in the target project411 sets the param to the same as the project412 updates the merge request413 when it is greater than the one in the target project414 saves the param in the merge request415 updates the merge request416 approvals_before_merge set for the existing MR417 when it is not set418 does not change the merge request419 updates the merge request420 when it is less than the one in the target project421 sets the param to the same as the target project422 updates the merge request423 when it is equal to the one in the target project424 sets the param to the same as the target project425 updates the merge request426 when it is greater than the one in the target project427 saves the param in the merge request428 updates the merge request429 when the project is a fork430 when the MR target upstream431 behaves like approvals_before_merge param432 approvals_before_merge not set for the existing MR433 when it is less than the one in the target project434 sets the param to the sames as the project435 updates the merge request436 when it is equal to the one in the target project437 sets the param to the same as the project438 updates the merge request439 when it is greater than the one in the target project440 saves the param in the merge request441 updates the merge request442 approvals_before_merge set for the existing MR443 when it is not set444 does not change the merge request445 updates the merge request446 when it is less than the one in the target project447 sets the param to the same as the target project448 updates the merge request449 when it is equal to the one in the target project450 sets the param to the same as the target project451 updates the merge request452 when it is greater than the one in the target project453 saves the param in the merge request454 updates the merge request455 when the MR target the fork456 behaves like approvals_before_merge param457 approvals_before_merge not set for the existing MR458 when it is less than the one in the target project459 sets the param to the sames as the project460 updates the merge request461 when it is equal to the one in the target project462 sets the param to the same as the project463 updates the merge request464 when it is greater than the one in the target project465 saves the param in the merge request466 updates the merge request467 approvals_before_merge set for the existing MR468 when it is not set469 does not change the merge request470 updates the merge request471 when it is less than the one in the target project472 sets the param to the same as the target project473 updates the merge request474 when it is equal to the one in the target project475 sets the param to the same as the target project476 updates the merge request477 when it is greater than the one in the target project478 saves the param in the merge request479 updates the merge request480 POST #rebase481 approvals pending482 returns 200483 GET #edit484 default templates485 when a merge request description has content486 does not select a default template487 when a merge request description is blank488 when a default template does not exist in the repository489 does not select a default template490 when a default template exists in the repository491 does not select a default template492 GET #dependency_scanning_reports493 behaves like pending pipeline response494 when pipeline is pending495 sends polling interval496 returns 204 HTTP status497 when comparison is being processed498 sends polling interval499 returns 204 HTTP status500 when comparison is done501 does not send polling interval502 returns 200 HTTP status503 when user created corrupted vulnerability reports504 does not send polling interval505 returns 400 HTTP status506 behaves like authorize read pipeline507 public project with private builds508 restricts access to signed out users509 restricts access to other users510 GET #container_scanning_reports511 behaves like pending pipeline response512 when pipeline is pending513 sends polling interval514 returns 204 HTTP status515 when comparison is being processed516 sends polling interval517 returns 204 HTTP status518 when comparison is done519 does not send polling interval520 returns 200 HTTP status521 when user created corrupted vulnerability reports522 does not send polling interval523 returns 400 HTTP status524 behaves like authorize read pipeline525 public project with private builds526 restricts access to signed out users527 restricts access to other users528 GET #sast_reports529 behaves like pending pipeline response530 when pipeline is pending531 sends polling interval532 returns 204 HTTP status533 when comparison is being processed534 sends polling interval535 returns 204 HTTP status536 when comparison is done537 does not send polling interval538 returns 200 HTTP status539 when user created corrupted vulnerability reports540 does not send polling interval541 returns 400 HTTP status542 behaves like authorize read pipeline543 public project with private builds544 restricts access to signed out users545 restricts access to other users546 GET #coverage_fuzzing_reports547 behaves like pending pipeline response548 when pipeline is pending549 sends polling interval550 returns 204 HTTP status551 when comparison is being processed552 sends polling interval553 returns 204 HTTP status554 when comparison is done555 does not send polling interval556 returns 200 HTTP status557 when user created corrupted vulnerability reports558 does not send polling interval559 returns 400 HTTP status560 behaves like authorize read pipeline561 public project with private builds562 restricts access to signed out users563 restricts access to other users564 GET #api_fuzzing_reports565 behaves like pending pipeline response566 when pipeline is pending567 sends polling interval568 returns 204 HTTP status569 when comparison is being processed570 sends polling interval571 returns 204 HTTP status572 when comparison is done573 does not send polling interval574 returns 200 HTTP status575 when user created corrupted fuzzing reports576 does not send polling interval577 returns 400 HTTP status578 behaves like authorize read pipeline579 public project with private builds580 restricts access to signed out users581 restricts access to other users582 GET #secret_detection_reports583 behaves like pending pipeline response584 when pipeline is pending585 sends polling interval586 returns 204 HTTP status587 when comparison is being processed588 sends polling interval589 returns 204 HTTP status590 when comparison is done591 does not send polling interval592 returns 200 HTTP status593 when user created corrupted vulnerability reports594 does not send polling interval595 returns 400 HTTP status596 behaves like authorize read pipeline597 public project with private builds598 restricts access to signed out users599 restricts access to other users600 GET #dast_reports601 behaves like pending pipeline response602 when pipeline is pending603 sends polling interval604 returns 204 HTTP status605 when comparison is being processed606 sends polling interval607 returns 204 HTTP status608 when comparison is done609 does not send polling interval610 returns 200 HTTP status611 when user created corrupted vulnerability reports612 does not send polling interval613 returns 400 HTTP status614 behaves like authorize read pipeline615 public project with private builds616 restricts access to signed out users617 restricts access to other users618 GET #license_scanning_reports619 behaves like license scanning report comparison620 when the report is being parsed621 returns 204 HTTP status622 when comparison is being processed623 sends polling interval624 returns 204 HTTP status625 when comparison is done626 does not send polling interval627 returns 200 HTTP status628 when user created corrupted test reports629 does not send polling interval630 returns 400 HTTP status631 when a user is authorized to read the licenses632 returns 200 HTTP status633 when license_scanning feature is disabled634 returns 404 status635 behaves like authorize read pipeline636 public project with private builds637 restricts access to signed out users638 restricts access to other users639 GET #license_scanning_reports_collapsed640 behaves like license scanning report comparison641 when the report is being parsed642 returns 204 HTTP status643 when comparison is being processed644 sends polling interval645 returns 204 HTTP status646 when comparison is done647 does not send polling interval648 returns 200 HTTP status649 when user created corrupted test reports650 does not send polling interval651 returns 400 HTTP status652 when a user is authorized to read the licenses653 returns 200 HTTP status654 when license_scanning feature is disabled655 returns 404 status656 behaves like authorize read pipeline657 public project with private builds658 restricts access to signed out users659 restricts access to other users660 GET #metrics_reports661 when comparison is being processed662 sends polling interval663 returns 204 HTTP status664 when comparison is done665 does not send polling interval666 returns 200 HTTP status667 when user created corrupted test reports668 does not send polling interval669 returns 400 HTTP status670 behaves like authorize read pipeline671 public project with private builds672 restricts access to signed out users673 restricts access to other users674 behaves like DescriptionDiffActions676 when license is available677 GET description_diff678 returns the diff with the previous version679 returns the diff with the previous version of the specified start_version_id680 when description version is from another issuable681 returns 404682 when start_version_id is from another issuable683 returns 404684 when start_version_id is deleted685 returns 404686 when description version is deleted687 returns 404688 DELETE description_diff689 returns 200690 when start_version_id is present691 returns 200692 when version is already deleted693 returns 404694 when user cannot admin issuable695 returns 404696 when license is not available697 GET description_diff698 returns 404699 DELETE description_diff700 returns 404701API::Projects702 GET /projects703 does not break on license checks704 filters by verification flags705 filters by :repository_verification_failed706 filters by :wiki_verification_failed707 when there are several projects owned by groups708 avoids N+1 queries709 GET /projects/:id710 with external authorization711 when the user has access to the project712 includes the label in the response713 when the external service denies access714 returns a 404715 it does not return the label when the feature is not available716 does not include the label in the response717 with ip restriction718 when the group_ip_restriction feature is not available719 returns 200720 when the group_ip_restriction feature is available721 returns 404 for request from ip not in the range722 returns 200 for request from ip in the range723 compliance_frameworks attribute724 when compliance_framework feature is available725 when project has a compliance framework726 exposes framework names as array of strings727 when project has no compliance framework728 returns an empty array729 project soft-deletion730 marked_for_deletion_at attribute731 exposed when the feature is available732 not exposed when the feature is not available733 marked_for_deletion_on attribute734 exposed when the feature is available735 not exposed when the feature is not available736 issuable default templates737 when feature is available738 returns issuable default templates739 when user does not have permission to see issues740 does not return issue default templates741 when user does not have permission to see merge requests742 does not return merge request default templates743 issuable default templates feature not available744 does not return issuable default templates745 merge pipelines feature is available746 returns merge pipelines enabled flag747 merge pipelines feature not available748 does not return merge pipelines enabled flag749 merge trains feature is available750 returns merge trains enabled flag751 merge trains feature not available752 does not return merge trains enabled flag753 GET /projects/:id/users754 when unauthenticated755 behaves like project users response756 returns the project users757 when the gitlab_employee_badge flag is off758 does not expose the is_gitlab_employee attribute on the user759 when the gitlab_employee_badge flag is on but we are not on gitlab.com760 does not expose the is_gitlab_employee attribute on the user761 when the gitlab_employee_badge flag is on and we are on gitlab.com762 exposes the is_gitlab_employee attribute on the user763 when authenticated764 valid request765 behaves like project users response766 returns the project users767 when the gitlab_employee_badge flag is off768 does not expose the is_gitlab_employee attribute on the user769 when the gitlab_employee_badge flag is on but we are not on gitlab.com770 does not expose the is_gitlab_employee attribute on the user771 when the gitlab_employee_badge flag is on and we are on gitlab.com772 exposes the is_gitlab_employee attribute on the user773 POST /projects/user/:id774 with templates775 behaves like creates projects with templates776 creates a project using a template777 returns a 400 error for an invalid template name778 returns a 400 error for an invalid template ID779 behaves like creates projects with templates780 creates a project using a template781 returns a 400 error for an invalid template name782 returns a 400 error for an invalid template ID783 behaves like creates projects with templates784 creates a project using a template785 returns a 400 error for an invalid template name786 returns a 400 error for an invalid template ID787 behaves like creates projects with templates788 creates a project using a template789 returns a 400 error for an invalid template name790 returns a 400 error for an invalid template ID791 POST /projects792 with templates793 behaves like creates projects with templates794 creates a project using a template795 returns a 400 error for an invalid template name796 returns a 400 error for an invalid template ID797 behaves like creates projects with templates798 creates a project using a template799 returns a 400 error for an invalid template name800 returns a 400 error for an invalid template ID801 behaves like creates projects with templates802 creates a project using a template803 returns a 400 error for an invalid template name804 returns a 400 error for an invalid template ID805 behaves like creates projects with templates806 creates a project using a template807 returns a 400 error for an invalid template name808 returns a 400 error for an invalid template ID809 when importing with mirror attributes810 creates new project with pull mirroring set up811 creates project without mirror settings when repository mirroring feature is disabled812 when pull mirroring is not available813 ignores the mirroring options814 creates project with mirror settings815 with requirements_access_level816 updates project with given value817 GET projects/:id/audit_events818 behaves like inaccessable by reporter role and lower819 for reporter820 returns 403 response821 for guest822 returns 403 response823 for anonymous824 returns 403 response825 when authenticated, as a member826 returns only events authored by current user827 when authenticated, as a project owner828 audit events feature is not available829 behaves like 403 response830 returns 403831 audit events feature is available832 returns 200 response833 includes the correct pagination headers834 does not include audit events of a different project835 parameters836 created_before parameter837 returns audit events created before the given parameter838 created_after parameter839 returns audit events created after the given parameter840 response schema841 matches the response schema842 GET projects/:id/audit_events/:audit_event_id843 behaves like inaccessable by reporter role and lower844 for reporter845 returns 403 response846 for guest847 returns 403 response848 for anonymous849 returns 403 response850 when authenticated, as a guest851 behaves like 403 response852 returns 403853 when authenticated, as a member854 returns 200 response855 existing audit event of a different user856 behaves like 404 response857 returns 404858 when authenticated, as a project owner859 audit events feature is not available860 behaves like 403 response861 returns 403862 audit events feature is available863 existent audit event864 returns 200 response865 response schema866 matches the response schema867 invalid audit_event_id868 behaves like 400 response869 returns 400870 non existent audit event871 non existent audit event of a project872 behaves like 404 response873 returns 404874 existing audit event of a different project875 behaves like 404 response876 returns 404877 PUT /projects/:id878 issuable default templates feature is available879 when updating issues_template880 updates the content881 when updating merge_requests_template882 updates the content883 when updating requirements_access_level884 updates project with given value885 issuable default templates feature not available886 when updating issues_template887 does not update the content888 when updating merge_requests_template889 does not update the content890 merge pipelines feature is available891 updates the content892 when user does not have permission893 does not update the content894 merge pipelines feature feature not available895 does not update the content896 merge trains feature is available897 updates the content898 when user does not have permission899 does not update the content900 merge trains feature feature not available901 does not update the content902 when updating external classification903 updates the classification label904 when updating mirror related attributes905 updates mirror related attributes906 updates project without mirror attributes when the project is unable to set up repository mirroring907 renders an API error when mirror user is invalid908 returns 403 when the user does not have access to mirror settings909 when pull mirroring is not available910 does not update mirror related attributes911 updates mirror related attributes when user is admin912 when import_url is not a valid git endpoint913 disallows creating a project with an import_url that is not reachable914 updating approvals_before_merge attribute915 when authenticated as project owner916 updates approvals_before_merge917 POST /projects/:id/restore918 feature is available919 restores project920 returns error if project is already being deleted921 feature is not available922 returns error923 DELETE /projects/:id924 when feature is available925 delayed project deletion is enabled for group926 returns error if project cannot be marked for deletion927 behaves like marks project for deletion928 is expected to be truthy929 when delayed project deletion is disabled on the application930 behaves like deletes project immediately931 is expected to eq true932 when deletion adjourned period is 0933 behaves like deletes project immediately934 is expected to eq true935 delayed project deletion is disabled for group936 behaves like deletes project immediately937 is expected to eq true938 for projects in user namespace939 behaves like deletes project immediately940 is expected to eq true941 when feature is not available942 behaves like deletes project immediately943 is expected to eq true944 POST /projects/:id/fork945 when project namespace has prohibit_outer_forks enabled946 and target namespace is outer947 renders 404948 and target namespace is inner to project namespace949 forks the project950 POST /projects/:id/import_project_members/:project_id951 when the target project has locked their membership952 via the parent group953 returns 403954 via LDAP955 returns 403956API::Groups957 GET /groups958 when authenticated as user959 returns ldap details960 GET /groups/:id961 group_ip_restriction962 when the group_ip_restriction feature is not available963 returns 200964 when the group_ip_restriction feature is available965 returns 404 for request from ip not in the range966 returns 200 for request from ip in the range967 marked_for_deletion_on attribute968 when feature is available969 is exposed970 when feature is not available971 is not exposed972 file_template_project_id is a private project973 user has permission to private project974 returns file_template_project_id975 user does not have permission to private project976 does not return file_template_project_id977 user is not logged in978 does not return file_template_project_id979 PUT /groups/:id980 file_template_project_id981 does not update file_template_project_id if unlicensed982 updates file_template_project_id if licensed983 shared_runners_minutes_limit984 when authenticated as the group owner985 returns 200 if shared_runners_minutes_limit is not changing986 when authenticated as the admin987 updates the group for shared_runners_minutes_limit988 default_branch_protection989 authenticated as an admin990 feature_enabled: true, setting_enabled: true, default_branch_protection: 0991 updates the attribute as expected992 feature_enabled: false, setting_enabled: true, default_branch_protection: 0993 updates the attribute as expected994 feature_enabled: true, setting_enabled: false, default_branch_protection: 0995 updates the attribute as expected996 feature_enabled: false, setting_enabled: false, default_branch_protection: 0997 updates the attribute as expected998 authenticated a normal user999 feature_enabled: true, setting_enabled: true, default_branch_protection: 01000 updates the attribute as expected1001 feature_enabled: false, setting_enabled: true, default_branch_protection: 01002 updates the attribute as expected1003 feature_enabled: true, setting_enabled: false, default_branch_protection: 21004 updates the attribute as expected1005 feature_enabled: false, setting_enabled: false, default_branch_protection: 01006 updates the attribute as expected1007 prevent_forking_outside_group1008 authenticated as group owner1009 feature_enabled: false, prevent_forking_outside_group: false, result: nil1010 updates the attribute as expected1011 feature_enabled: false, prevent_forking_outside_group: true, result: nil1012 updates the attribute as expected1013 feature_enabled: true, prevent_forking_outside_group: false, result: false1014 updates the attribute as expected1015 feature_enabled: true, prevent_forking_outside_group: true, result: true1016 updates the attribute as expected1017 unique_project_download* attributes1018 when authenticated as group owner1019 when feature flag enabled and feature available1020 updates the attributes as expected1021 flag_enabled: true, feature_available: false1022 does not update the attributes1023 flag_enabled: false, feature_available: true1024 does not update the attributes1025 flag_enabled: false, feature_available: false1026 does not update the attributes1027 POST /groups1028 when authenticated as user with group permissions1029 creates an ldap_group_link if ldap_cn and ldap_access are supplied1030 when shared_runners_minutes_limit is given1031 when the current user is not an admin1032 does not create a group with shared_runners_minutes_limit1033 when the current user is an admin1034 creates a group with shared_runners_minutes_limit1035 when creating a group with `default_branch_protection` attribute1036 authenticated as an admin1037 feature_enabled: true, setting_enabled: true, default_branch_protection: 01038 creates the group with the expected `default_branch_protection` value1039 feature_enabled: false, setting_enabled: true, default_branch_protection: 01040 creates the group with the expected `default_branch_protection` value1041 feature_enabled: true, setting_enabled: false, default_branch_protection: 01042 creates the group with the expected `default_branch_protection` value1043 feature_enabled: false, setting_enabled: false, default_branch_protection: 01044 creates the group with the expected `default_branch_protection` value1045 authenticated a normal user1046 feature_enabled: true, setting_enabled: true, default_branch_protection: 01047 creates the group with the expected `default_branch_protection` value1048 feature_enabled: false, setting_enabled: true, default_branch_protection: 01049 creates the group with the expected `default_branch_protection` value1050 feature_enabled: true, setting_enabled: false, default_branch_protection: 21051 creates the group with the expected `default_branch_protection` value1052 feature_enabled: false, setting_enabled: false, default_branch_protection: 01053 creates the group with the expected `default_branch_protection` value1054 when creating group on .com1055 when top_level_group_creation_enabled feature flag is disabled1056 does not create a top-level group1057 creates a subgroup1058 when top_level_group_creation_enabled feature flag is enabled1059 creates a top-level group1060 when creating group on self-managed1061 when top_level_group_creation_enabled feature flag is disabled1062 creates a top-level group1063 creates a subgroup1064 when top_level_group_creation_enabled feature flag is enabled1065 creates a top-level group1066 POST /groups/:id/ldap_sync1067 when the ldap_group_sync feature is available1068 when authenticated as the group owner1069 returns 404 for a non existing group1070 when the group is ready to sync1071 returns 202 Accepted1072 queues a sync job1073 sets the ldap_sync state to pending1074 when the group is already pending a sync1075 returns 202 Accepted1076 does not queue a sync job1077 does not change the ldap_sync state1078 when authenticated as the admin1079 returns 202 Accepted1080 when authenticated as a non-owner user that can see the group1081 returns 4031082 when authenticated as an user that cannot see the group1083 returns 4041084 when the ldap_group_sync feature is not available1085 returns 404 (same as CE would)1086 GET /groups/:id/projects1087 when authenticated as user1088 when security dashboard is enabled for a group1089 returns only projects with security scans1090 when security dashboard is disabled for a group1091 returns all projects regardless of the security scans1092 when namespace license checks are enabled1093 when there are plans and projects1094 only loads plans once1095 when there are no projects1096 completes the request without error1097 GET group/:id/audit_events1098 behaves like inaccessable by reporter role and lower1099 for reporter1100 returns 403 response1101 for guest1102 returns 403 response1103 for anonymous1104 returns 403 response1105 when authenticated, as a member1106 returns only events authored by current user1107 when authenticated, as a group owner1108 audit events feature is not available1109 behaves like 403 response1110 returns 4031111 audit events feature is available1112 returns 200 response1113 includes the correct pagination headers1114 does not include audit events of a different group1115 parameters1116 created_before parameter1117 returns audit events created before the given parameter1118 created_after parameter1119 returns audit events created after the given parameter1120 response schema1121 matches the response schema1122 GET group/:id/audit_events/:audit_event_id1123 behaves like inaccessable by reporter role and lower1124 for reporter1125 returns 403 response1126 for guest1127 returns 403 response1128 for anonymous1129 returns 403 response1130 when authenticated, as a member1131 returns 200 response1132 existing audit event of a different user1133 behaves like 404 response1134 returns 4041135 when authenticated, as a group owner1136 audit events feature is not available1137 behaves like 403 response1138 returns 4031139 audit events feature is available1140 existent audit event1141 returns 200 response1142 response schema1143 matches the response schema1144 invalid audit_event_id1145 behaves like 400 response1146 returns 4001147 non existent audit event1148 non existent audit event of a group1149 behaves like 404 response1150 returns 4041151 existing audit event of a different group1152 behaves like 404 response1153 returns 4041154 DELETE /groups/:id1155 feature is available1156 does not mark the group for deletion when the group has a paid gitlab.com subscription1157 marks for deletion a subgroup of a group with a paid gitlab.com subscription1158 when delayed group deletion is enabled1159 success1160 marks the group for delayed deletion1161 does not immediately enqueue the job to delete the group1162 when deletion adjourned period is 01163 behaves like immediately enqueues the job to delete the group1164 is expected to respond with numeric status code accepted1165 when delayed group deletion is disabled1166 behaves like immediately enqueues the job to delete the group1167 is expected to respond with numeric status code accepted1168 when permanently_remove param is sent1169 if permanently_remove is true1170 if group is a subgroup1171 when group is already marked for deletion1172 when the full_path param is passed and it matches the full path of subgroup1173 when feature flag is enabled for the group1174 behaves like immediately enqueues the job to delete the group1175 is expected to respond with numeric status code accepted1176 when feature flag is disabled for the group1177 behaves like returns error and responds with group already marked for deletion message1178 is expected to eq "Group has been already marked for deletion"1179 when full_path param is not passed1180 behaves like returns error and responds with group already marked for deletion message1181 is expected to eq "Group has been already marked for deletion"1182 when full_path param is not equal to full_path1183 behaves like returns error and responds with group already marked for deletion message1184 is expected to eq "Group has been already marked for deletion"1185 when group is not marked for deletion1186 behaves like do not immediately enqueues the job to delete the group1187 is expected to respond with numeric status code accepted1188 if group is not a subgroup1189 behaves like do not immediately enqueues the job to delete the group1190 is expected to respond with numeric status code accepted1191 if permanently_remove is not true1192 when it is false1193 behaves like do not immediately enqueues the job to delete the group1194 is expected to respond with numeric status code accepted1195 when it is non boolean1196 behaves like do not immediately enqueues the job to delete the group1197 is expected to respond with numeric status code accepted1198 failure1199 returns error1200 feature is not available1201 does not delete the group when the group has a paid gitlab.com subscription1202 deletes a subgroup of a group with a paid gitlab.com subscription1203 behaves like immediately enqueues the job to delete the group1204 is expected to respond with numeric status code accepted1205 POST /groups/:id/restore1206 feature is available1207 authenticated as owner1208 restoring is successful1209 restores the group to original state1210 restoring fails1211 returns error1212 authenticated as user without access to the group1213 returns 4031214 feature is not available1215 returns 4041216 GET /groups/:id/provisioned_users1217 when current_user is not a group maintainer1218 returns 4031219 when current_user is a group maintainer1220 returns a list of users provisioned by the group1221 optional params1222 search param1223 filters by search1224 username param1225 filters by username1226 blocked param1227 filters by blocked1228 active param1229 filters by active status1230 created_after1231 filters by created_at1232 created_before1233 filters by created_at1234Git HTTP requests (Geo)1235 when current node is a secondary1236 GET info_refs1237 git pull1238 when the repository exists1239 but has not successfully synced1240 behaves like a Geo 302 redirect to Primary1241 valid Geo JWT token1242 returns a redirect response1243 when terms are enforced1244 behaves like a Geo 302 redirect to Primary1245 valid Geo JWT token1246 returns a redirect response1247 and has successfully synced1248 behaves like a Geo git request1249 post-dated Geo JWT token1250 is expected to respond with numeric status code unauthorized1251 expired Geo JWT token1252 is expected to respond with numeric status code unauthorized1253 invalid Geo JWT token1254 is expected to respond with numeric status code unauthorized1255 no Geo JWT token1256 is expected to respond with numeric status code unauthorized1257 Geo is unlicensed1258 is expected to respond with numeric status code forbidden1259 behaves like a Geo 200 git request1260 valid Geo JWT token1261 returns an OK response with JSON data1262 when terms are enforced1263 behaves like a Geo git request1264 post-dated Geo JWT token1265 is expected to respond with numeric status code unauthorized1266 expired Geo JWT token1267 is expected to respond with numeric status code unauthorized1268 invalid Geo JWT token1269 is expected to respond with numeric status code unauthorized1270 no Geo JWT token1271 is expected to respond with numeric status code unauthorized1272 Geo is unlicensed1273 is expected to respond with numeric status code forbidden1274 behaves like a Geo 200 git request1275 valid Geo JWT token1276 returns an OK response with JSON data1277 when the repository does not exist1278 behaves like a Geo 302 redirect to Primary1279 valid Geo JWT token1280 returns a redirect response1281 when terms are enforced1282 behaves like a Geo 302 redirect to Primary1283 valid Geo JWT token1284 returns a redirect response1285 when the project does not exist1286 behaves like a Geo 302 redirect to Primary1287 valid Geo JWT token1288 returns a redirect response1289 when terms are enforced1290 behaves like a Geo 302 redirect to Primary1291 valid Geo JWT token1292 returns a redirect response1293 git push1294 behaves like a Geo 302 redirect to Primary1295 valid Geo JWT token1296 returns a redirect response1297 POST git_upload_pack1298 when the repository exists1299 behaves like a Geo git request1300 post-dated Geo JWT token1301 is expected to respond with numeric status code unauthorized1302 expired Geo JWT token1303 is expected to respond with numeric status code unauthorized1304 invalid Geo JWT token1305 is expected to respond with numeric status code unauthorized1306 no Geo JWT token1307 is expected to respond with numeric status code unauthorized1308 Geo is unlicensed1309 is expected to respond with numeric status code forbidden1310 behaves like a Geo 200 git request1311 valid Geo JWT token1312 returns an OK response with JSON data1313 when terms are enforced1314 behaves like a Geo git request1315 post-dated Geo JWT token1316 is expected to respond with numeric status code unauthorized1317 expired Geo JWT token1318 is expected to respond with numeric status code unauthorized1319 invalid Geo JWT token1320 is expected to respond with numeric status code unauthorized1321 no Geo JWT token1322 is expected to respond with numeric status code unauthorized1323 Geo is unlicensed1324 is expected to respond with numeric status code forbidden1325 behaves like a Geo 200 git request1326 valid Geo JWT token1327 returns an OK response with JSON data1328 when the repository does not exist1329 behaves like a Geo 302 redirect to Primary1330 valid Geo JWT token1331 returns a redirect response1332 when terms are enforced1333 behaves like a Geo 302 redirect to Primary1334 valid Geo JWT token1335 returns a redirect response1336 git-lfs1337 Batch API1338 POST /namespace/repo.git/info/lfs/objects/batch1339 operation upload1340 with a valid git-lfs version1341 behaves like a Geo 302 redirect to Primary1342 valid Geo JWT token1343 returns a redirect response1344 with an invalid git-lfs version1345 description: "outdated", version: "git-lfs/2.4.1"1346 that is description: "outdated", version: "git-lfs/2.4.1"1347 is forbidden1348 description: "unknown", version: "git-lfs"1349 that is description: "unknown", version: "git-lfs"1350 is forbidden1351 operation download1352 when the repository exists1353 is handled by the secondary1354 when the repository does not exist1355 behaves like a Geo 302 redirect to Primary1356 valid Geo JWT token1357 returns a redirect response1358 description: "outdated", version: "git-lfs/2.4.1"1359 with an description: "outdated", version: "git-lfs/2.4.1" git-lfs version1360 is handled by the secondary1361 description: "unknown", version: "git-lfs"1362 with an description: "unknown", version: "git-lfs" git-lfs version1363 is handled by the secondary1364 Transfer API1365 GET /namespace/repo.git/gitlab-lfs/objects/<oid>1366 when the repository exists1367 behaves like a Geo 200 git-lfs request1368 valid Geo JWT token1369 returns an OK response with binary data1370 when the repository does not exist1371 behaves like a Geo 302 redirect to Primary1372 valid Geo JWT token1373 returns a redirect response1374 Locks API1375 description: "create", path: "info/lfs/locks", args: {}1376 POST description: "create", path: "info/lfs/locks", args: {}1377 behaves like a Geo 302 redirect to Primary1378 valid Geo JWT token1379 returns a redirect response1380 description: "verify", path: "info/lfs/locks/verify", args: {}1381 POST description: "verify", path: "info/lfs/locks/verify", args: {}1382 behaves like a Geo 302 redirect to Primary1383 valid Geo JWT token1384 returns a redirect response1385 description: "unlock", path: "info/lfs/locks/1/unlock", args: {:id=>1}1386 POST description: "unlock", path: "info/lfs/locks/1/unlock", args: {:id=>1}1387 behaves like a Geo 302 redirect to Primary1388 valid Geo JWT token1389 returns a redirect response1390 when current node is the primary1391 POST git_receive_pack1392 when HTTP redirected from a secondary node1393 stores the secondary node ID so the internal API post_receive request can generate the replication lag message1394 when proxying an SSH request from a secondary node1395 when gl_id is provided in JWT token1396 but is invalid1397 geo_gl_id: "key-999"1398 returns a 4031399 geo_gl_id: "key-1"1400 returns a 4031401 geo_gl_id: "key-999"1402 returns a 4031403 geo_gl_id: "junk"1404 returns a 4031405 geo_gl_id: "junk-1"1406 returns a 4031407 geo_gl_id: "kkey-1"1408 returns a 4031409 and is valid1410 but the user has no access1411 returns a 4041412 but the user does not have push access1413 returns a 4031414 and the user has push access1415 returns a 2001416 repository does not exist1417 is expected to respond with numeric status code not_found1418 invalid scope1419 invalid scope of Geo JWT token1420 is expected to respond with numeric status code unauthorized1421 returns correct error1422 Geo JWT token scopes for wiki and repository are not interchangeable1423 for a repository but using a wiki scope1424 is expected to respond with numeric status code unauthorized1425 returns correct error1426 for a wiki but using a repository scope1427 is expected to respond with numeric status code unauthorized1428 returns correct error1429 IP allowed settings1430 returns unauthorized error1431 returns success response1432ProjectsController1433 GET show1434 additional repo storage by namespace1435 when automatic_purchased_storage_allocation setting is enabled1436 includes the CTA for additional purchased storage1437 when automatic_purchased_storage_allocation setting is disabled1438 does not include the CTA for additional purchased storage1439 with automatic_purchased_storage_allocation set to true1440 does not show over size limit warning when above_size_limit1441 with automatic_purchased_storage_allocation set to false1442 shows the over size limit warning message if above_size_limit1443 does not show an over size warning if not above_size_limit1444 namespace storage limit1445 behaves like namespace storage limit alert1446 does render1447 when user has dismissed already1448 does not render alert1449 behaves like seat count alert1450 when the namespace qualifies for the alert1451 sets the seat_count_data1452 when the feature flag is disabled1453 sets the seat_count_data to nil1454 when the namespace does not qualify for the alert1455 sets the seat_count_data to nil1456 GET edit1457 does not allow an auditor user to access the page1458 POST create1459 with licensed repository mirrors1460 has mirror enabled in new project1461 with unlicensed repository mirrors1462 has mirror disabled in new project1463 built in project templates1464 creates one audit event1465 custom project templates1466 when licensed1467 object storage1468/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil1469/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil1470 creates the project from project template1471 when unlicensed1472 does not create the project from project template1473 PUT #update1474 updates EE attributes1475 updates Merge Request Approvers attributes1476 updates Issuable Default Templates attributes1477 updates cve_id_request_enabled1478 when merge_pipelines_enabled param is specified1479 updates the attribute1480 when license is not sufficient1481 does not update the attribute1482 when merge_trains_enabled param is specified1483 updates the attribute1484 when license is not sufficient1485 does not update the attribute1486 when auto_rollback_enabled param is specified1487 updates the attribute1488 when license is not sufficient1489 does not update the attribute1490 repository mirrors1491 when licensed1492 updates repository mirror attributes1493 ignores mirror_user_id1494 when unlicensed1495 does not update repository mirror attributes1496 merge request approvers settings1497 :disable_overriding_approvers_per_merge_request1498 behaves like merge request approvers rules1499 can_modify: true, param_value: true, final_value: true1500 updates project if needed1501 can_modify: true, param_value: false, final_value: false1502 updates project if needed1503 can_modify: false, param_value: true, final_value: nil1504 updates project if needed1505 can_modify: false, param_value: false, final_value: nil1506 updates project if needed1507 :merge_requests_author_approval1508 behaves like merge request approvers rules1509 can_modify: true, param_value: true, final_value: true1510 updates project if needed1511 can_modify: true, param_value: false, final_value: false1512 updates project if needed1513 can_modify: false, param_value: true, final_value: nil1514 updates project if needed1515 can_modify: false, param_value: false, final_value: nil1516 updates project if needed1517 :merge_requests_disable_committers_approval1518 behaves like merge request approvers rules1519 can_modify: true, param_value: true, final_value: true1520 updates project if needed1521 can_modify: true, param_value: false, final_value: false1522 updates project if needed1523 can_modify: false, param_value: true, final_value: nil1524 updates project if needed1525 can_modify: false, param_value: false, final_value: nil1526 updates project if needed1527 compliance framework settings1528 when unlicensed1529 behaves like no compliance framework is set1530 does not change compliance framework for project1531 when licensed1532 current_user is a project owner1533 sets the compliance framework1534 #download_export1535 when project export is enabled1536 logs the audit event1537 when project export is disabled1538 does not log an audit event1539 Archive & Unarchive actions1540 POST #archive1541 for a user with the ability to archive a project1542 logs the audit event1543 for a user that does not have the ability to archive a project1544 does not log the audit event1545 POST #unarchive1546 for a user with the ability to unarchive a project1547 logs the audit event1548 for a user that does not have the ability to unarchive a project1549 does not log the audit event1550 DELETE #destroy1551 feature is available1552 when feature is enabled for group1553 does not mark project for deletion because of error1554 behaves like marks project for deletion1555 is expected to redirect to "/group143/project226-deleted-244"1556 when instance setting is set to 0 days1557 deletes project right away1558 when project is already marked for deletion1559 when permanently_delete param is set1560 deletes project right away1561 when permanently_delete param is not set1562 does nothing1563 when feature is disabled for group1564 behaves like deletes project right away1565 is expected to redirect to "/dashboard/projects"1566 when feature is not available for the project1567 behaves like marks free project for deletion1568 is expected to redirect to "/dashboard/projects"1569 for projects in user namespace1570 when feature is enabled at instance level1571 behaves like marks project for deletion1572 is expected to redirect to "/user458/project232-deleted-250"1573 when feature is not enabled at instance level1574 behaves like deletes project right away1575 is expected to redirect to "/dashboard/projects"1576 feature is not available1577 behaves like deletes project right away1578 is expected to redirect to "/dashboard/projects"1579 POST #restore1580 restores project deletion1581 does not restore project because of error1582API::Releases1583 POST /projects/:id/releases1584 updates the AuditEvent1585 without milestone1586 with milestone1587 is expected to eq "New release"1588 with a group milestone1589 succesfully adds a group milestone1590 adds the milestone1591 fails to add a group milestone if project does not belong to this group1592 returns a 400 error as milestone not found1593 when valid group and project milestones are passed1594 adds the milestone1595 with a supergroup milestone1596 returns a 400 error as milestone not found1597 PUT /projects/:id/releases/:tag_name1598 creates an AuditEvent when a release is updated1599 with milestones1600 no existing milestones1601 add single milestone1602 behaves like update with milestones1603 is expected to eq "Milestones associated with release changed to v1.0"1604 add multiple milestones1605 behaves like update with milestones1606 is expected to eq "Milestones associated with release changed to v1.0, v2.0"1607 existing milestone1608 add milestone1609 behaves like update with milestones1610 is expected to eq "Milestones associated with release changed to v0.1, v1.0"1611 replace milestone1612 behaves like update with milestones1613 is expected to eq "Milestones associated with release changed to v1.0"1614 remove all milestones1615 behaves like update with milestones1616 is expected to eq "Milestones associated with release changed to [none]"1617 with group milestones1618 when a group milestone is passed1619 when there is no project milestone1620 adds the group milestone1621 when there is an existing project milestone1622 replaces the project milestone with the group milestone1623 POST /projects/:id/releases/:tag_name/evidence1624 accepts the request1625 accepts the request when using JOB-TOKEN auth1626 creates the Evidence1627 when tag_name is invalid1628 returns a 4041629 when user is a reporter1630 forbids the request1631 when user is a developer1632 accepts the request1633 when user is not a project member1634 forbids the request1635 when project is public1636 forbids the request1637API::MergeRequestApprovalRules1638 GET /projects/:id/merge_requests/:merge_request_iid/approval_rules/:approval_rule_id1639 behaves like getting approval rule/s1640 user cannot read merge request1641 responds with 4031642 use can read merge request1643 matches the response schema1644 groups contain private groups1645 current_user cannot see private group1646 hides private group1647 current_user can see private group1648 shows private group1649 has existing merge request rule that overrides a project-level rule1650 includes source_rule1651 GET /projects/:id/merge_requests/:merge_request_iid/approval_rules1652 behaves like getting approval rule/s1653 user cannot read merge request1654 responds with 4031655 use can read merge request1656 matches the response schema1657 groups contain private groups1658 current_user cannot see private group1659 hides private group1660 current_user can see private group1661 shows private group1662 has existing merge request rule that overrides a project-level rule1663 includes source_rule1664 use can read merge request1665 returns the correct amount of rules1666 when pagination FF is off1667 does not support pagination1668 POST /projects/:id/merge_requests/:merge_request_iid/approval_rules1669 behaves like a protected API endpoint for merge request approval rule action1670 disable_overriding_approvers_per_merge_request is set to true1671 responds with 4031672 disable_overriding_approvers_per_merge_request is set to false1673 user cannot update merge request1674 responds with 4031675 when user can update merge request and approval rules can be overridden1676 matches the response schema1677 users are passed1678 includes users1679 groups are passed1680 includes groups1681 approval_project_rule_id is passed1682 with blank approver params1683 copies the attributes from the project rule except approvers1684 with omitted approver params1685 copies the attributes from the project rule except approvals_required1686 PUT /projects/:id/merge_requests/:merge_request_iid/approval_rules/:approval_rule_id1687 behaves like a protected API endpoint for merge request approval rule action1688 disable_overriding_approvers_per_merge_request is set to true1689 responds with 4031690 disable_overriding_approvers_per_merge_request is set to false1691 user cannot update merge request1692 responds with 4031693 when user can update merge request and approval rules can be overridden1694 matches the response schema1695 behaves like a protected API endpoint that only allows action on regular merge request approval rule1696 approval rule is not a regular type1697 responds with 4031698 users are passed1699 changes users1700 groups are passed1701 changes groups1702 remove_hidden_groups is passed1703 when set to true1704 removes the existing private group1705 when set to false1706 does not remove the existing private group1707 DELETE /projects/:id/merge_requests/:merge_request_iid/approval_rules/:approval_rule_id1708 behaves like a protected API endpoint for merge request approval rule action1709 disable_overriding_approvers_per_merge_request is set to true1710 responds with 4031711 disable_overriding_approvers_per_merge_request is set to false1712 user cannot update merge request1713 responds with 4031714 when user can update merge request and approval rules can be overridden1715 responds with 2041716 behaves like a protected API endpoint that only allows action on regular merge request approval rule1717 approval rule is not a regular type1718 responds with 4031719API::EpicIssues1720 GET /groups/:id/epics/:epic_iid/issues1721 when epics feature is disabled1722 returns 403 forbidden error1723 when epics feature is enabled1724 when an error occurs1725 returns 401 unauthorized error for non authenticated user1726 returns 404 not found error for a user without permissions to see the group1727 when the request is correct1728 responds 200 and matches the response schema1729 accepts pagination params1730 returns multiple issues without performing N + 11731 returns multiple issues without performing N + 11732 POST /groups/:id/epics/:epic_iid/issues1733 when epics feature is disabled1734 returns 403 forbidden error1735 when epics feature is enabled1736 when an error occurs1737 returns 401 unauthorized error for non authenticated user1738 returns 404 not found error for a user without permissions to see the group1739 without permissions to admin the issue1740 returns 403 forbidden error1741 without permissions to read the epic1742 returns 403 forbidden error1743 when issue project is not under the epic group1744 returns an error1745 when the request is correct1746 returns 201 status1747 matches the response schema1748 assigns the issue to the epic1749 DELETE /groups/:id/epics/:epic_iid/issues/:epic_issue_id"1750 when epics feature is disabled1751 returns 403 forbidden error1752 when epics feature is enabled1753 when an error occurs1754 returns 401 unauthorized error for non authenticated user1755 returns 404 not found error for a user without permissions to see the group1756 With user without permissions to admin the issue1757 returns 403 forbidden error1758 without permissions to read the epic1759 returns 403 forbidden error1760 when epic_issue association does not include the epic in the url1761 returns 404 not found error1762 when the request is correct1763 returns 200 status1764 matches the response schema1765 removes the association1766 PUT /groups/:id/epics/:epic_iid/issues/:epic_issue_id1767 when epics feature is disabled1768 returns 403 forbidden error1769 when epics feature is enabled1770 when an error occurs1771 returns 401 unauthorized error for non authenticated user1772 returns 404 not found error for a user without permissions to see the group1773 returns 403 forbidden error for a user who can not move the issue1774 returns 404 not found error for the link of another epic1775 when the request is correct1776 returns 200 status1777 updates the positions values1778 matches the response schema1779API::LdapGroupLinks1780 GET /groups/:id/ldap_group_links1781 when unauthenticated1782 returns authentication error1783 when a less priviledged user1784 returns forbidden1785 when owner of the group1786 returns ldap group links1787 returns error if no ldap group links found1788 POST /groups/:id/ldap_group_links1789 adding a group link via CN1790 behaves like creates LDAP group link1791 when unauthenticated1792 returns authentication error1793 when a less priviledged user1794 does not allow less priviledged user to add LDAP group link1795 when owner of the group1796 returns ok and add ldap group link1797 returns error if LDAP group link already exists1798 returns a 400 error when CN or filter is not given1799 returns a 400 error when group access is not given1800 returns a 422 error when group access is not valid1801 adding a group link via filter1802 feature is available1803 behaves like creates LDAP group link1804 when unauthenticated1805 returns authentication error1806 when a less priviledged user1807 does not allow less priviledged user to add LDAP group link1808 when owner of the group1809 returns ok and add ldap group link1810 returns error if LDAP group link already exists1811 returns a 400 error when CN or filter is not given1812 returns a 400 error when group access is not given1813 returns a 422 error when group access is not valid1814 feature is not available1815 returns 4041816 DELETE /groups/:id/ldap_group_links/:cn1817 when unauthenticated1818 returns authentication error1819 when a less priviledged user1820 does not remove the LDAP group link1821 when owner of the group1822 removes ldap group link1823 returns 404 if LDAP group cn not used for a LDAP group link1824 DELETE /groups/:id/ldap_group_links/:provider/:cn1825 when unauthenticated1826 returns authentication error1827 when a less priviledged user1828 does not remove the LDAP group link1829 when owner of the group1830 returns 404 if LDAP group cn not used for a LDAP group link for the specified provider1831 removes ldap group link1832 DELETE /groups/:id/ldap_group_links1833 deleting a group link via CN and provider1834 behaves like deletes LDAP group link1835 when unauthenticated1836 returns authentication error1837 when a less priviledged user1838 does not remove the LDAP group link1839 when owner of the group1840 removes ldap group link1841 behaves like group link is not found1842 when owner of the group1843 returns 404 if LDAP input not used for a LDAP group link1844 deleting a group link via filter and provider1845 feature is available1846 behaves like deletes LDAP group link1847 when unauthenticated1848 returns authentication error1849 when a less priviledged user1850 does not remove the LDAP group link1851 when owner of the group1852 removes ldap group link1853 behaves like group link is not found1854 when owner of the group1855 returns 404 if LDAP input not used for a LDAP group link1856 feature is not available1857 returns 4041858API::Discussions1859 when noteable is an Epic1860 behaves like discussions API1861 GET /groups/:id/epics/:noteable_id/discussions1862 returns an array of discussions1863 returns a 404 error when noteable id not found1864 returns 404 when not authorized1865 GET /groups/:id/epics/:noteable_id/discussions/:discussion_id1866 returns a discussion by id1867 returns a 404 error if discussion not found1868 POST /groups/:id/epics/:noteable_id/discussions1869 creates a new note1870 returns a 400 bad request error if body not given1871 returns a 401 unauthorized error if user not authenticated1872 tracks a Notes::CreateService event1873 with notes_create_service_tracking feature flag disabled1874 does not track Notes::CreateService events1875 when an admin or owner makes the request1876 accepts the creation date to be set1877 when user does not have access to read the discussion1878 responds with 4041879 when a project is public with private repo access1880 when user is not a team member of private repo1881 creating a new note1882 raises 404 error1883 fetching a discussion1884 raises 404 error1885 POST /groups/:id/epics/:noteable_id/discussions/:discussion_id/notes1886 adds a new note to the discussion1887 returns a 400 bad request error if body not given1888 when the discussion is an individual note1889 creates a new discussion1890 PUT /groups/:id/epics/:noteable_id/discussions/:discussion_id/notes/:note_id1891 returns modified note1892 returns a 404 error when note id not found1893 returns a 400 bad request error if body not given1894 DELETE /groups/:id/epics/:noteable_id/discussions/:discussion_id/notes/:note_id1895 deletes a note1896 returns a 404 error when note id not found1897 behaves like 412 response1898 for a modified ressource1899 returns 412 with a JSON error1900 for an unmodified ressource1901 returns 204 with an empty body1902API::GroupPushRule GroupPushRule1903 GET /groups/:id/push_rule1904 when unlicensed1905 behaves like not found when feature is unavailable1906 is expected to respond with numeric status code not_found1907 authorized user1908 when licensed1909 returns attributes as expected1910 matches response schema1911 when reject_unsigned_commits is unavailable1912 is expected not to have key "reject_unsigned_commits"1913 when commit_committer_check is unavailable1914 is expected not to have key "commit_committer_check"1915 permissions1916 behaves like allow access to api based on role1917 is expected to be allowed for :admin1918 is expected to be allowed for :owner1919 is expected to be denied for :developer1920 is expected to be denied for :reporter1921 is expected to be denied for :guest1922 is expected to be denied for :anonymous1923 when push rule does not exist1924 returns not found1925 POST /groups/:id/push_rule1926 when unlicensed1927 behaves like not found when feature is unavailable1928 is expected to respond with numeric status code not_found1929 authorized user1930 when licensed1931 is expected to respond with numeric status code created1932 is expected to change `PushRule.count` by 11933 creates record with appropriate attributes1934 when push rule exists1935 is expected to eq "Group push rule exists, try updating"1936 permissions1937 behaves like allow access to api based on role1938 is expected to be allowed for :admin1939 is expected to be allowed for :owner1940 is expected to be denied for :developer1941 is expected to be denied for :reporter1942 is expected to be denied for :guest1943 is expected to be denied for :anonymous1944 when no rule is specified1945 is expected to include "at least one parameter must be provided"1946 when reject_unsigned_commits is unavailable1947 returns forbidden1948 and reject_unsigned_commits is not set1949 returns created1950 when commit_committer_check is unavailable1951 is expected to respond with numeric status code forbidden1952 and commit_committer_check is not set1953 returns created1954 PUT /groups/:id/push_rule1955 when unlicensed1956 behaves like not found when feature is unavailable1957 is expected to respond with numeric status code not_found1958 authorized user1959 when licensed1960 is expected to respond with numeric status code ok1961 updates attributes as expected1962 when push rule does not exist for group1963 returns not found1964 permissions1965 behaves like allow access to api based on role1966 is expected to be allowed for :admin1967 is expected to be allowed for :owner1968 is expected to be denied for :developer1969 is expected to be denied for :reporter1970 is expected to be denied for :guest1971 is expected to be denied for :anonymous1972 when no rule is specified1973 is expected to include "at least one parameter must be provided"1974 when reject_unsigned_commits is unavailable1975 returns forbidden1976 and reject_unsigned_commits is not set1977 returns status ok1978 when commit_committer_check is unavailable1979 is expected to respond with numeric status code forbidden1980 and commit_committer_check is not set1981 returns status ok1982 DELETE /groups/:id/push_rule1983 authorized user1984 when licensed1985 with group push rule1986 is expected to equal nil1987 when push rule does not exist1988 returns not found1989 when unlicensed1990 behaves like not found when feature is unavailable1991 is expected to respond with numeric status code not_found1992 permissions1993 behaves like allow access to api based on role1994 is expected to be allowed for :admin1995 is expected to be allowed for :owner1996 is expected to be denied for :developer1997 is expected to be denied for :reporter1998 is expected to be denied for :guest1999 is expected to be denied for :anonymous2000Groups::EpicIssuesController2001 GET #index2002 behaves like unlicensed epics action2003 returns 403 status2004 when epics feature is enabled2005 when user has access to epic2006 returns status 2002007 returns the correct json2008 when user does not have access to epic2009 returns 404 status2010 POST #create2011 behaves like unlicensed epics action2012 returns 403 status2013 when epics feature is enabled2014 when user has permissions to create requested association2015 returns correct response for the correct issue reference2016 creates a new EpicIssue record2017 when user does not have permissions to create requested association2018 returns correct response for the correct issue reference2019 does not create a new EpicIssue record2020 DELETE #destroy2021 behaves like unlicensed epics action2022 returns 403 status2023 when epics feature is enabled2024 when user has permissions to delete the link2025 returns status 2002026 destroys the link2027 when user does not have permissions to delete the link2028 returns status 4032029 does not destroy the link2030 when the epic from the association does not equal epic from the path2031 returns status 4042032 does not destroy the link2033 when the epic_issue record does not exists2034 returns status 4042035 PUT #update2036 behaves like unlicensed epics action2037 returns 403 status2038 when epics feature is enabled2039 when user has permissions to admin the epic2040 returns status 2002041 updates the issue position value2042 when user does not have permissions to admin the epic2043 returns status 4032044 when the epic from the association does not equal epic from the path2045 returns status 4042046 when the epic_issue record does not exists2047 returns status 4042048GroupsController2049 PUT update2050 setting ip_restriction2051 top-level group2052 when ip_restriction does not exist2053 valid param2054 single IP subnet2055 behaves like creates ip restrictions2056 creates ip restrictions2057 multiple IP subnets2058 behaves like creates ip restrictions2059 creates ip restrictions2060 invalid param2061 adds error message2062 when ip_restriction already exists2063 ip restriction param set2064 valid param2065 single subnet2066 behaves like updates ip restrictions2067 updates ip restrictions2068 multiple subnets2069 a new subnet along with the existing one2070 behaves like updates ip restrictions2071 updates ip restrictions2072 completely new range of subnets2073 behaves like updates ip restrictions2074 updates ip restrictions2075 invalid param2076 not a valid subnet2077 behaves like does not update existing ip restrictions2078 does not change ip restriction records2079 adds error message2080 multiple IP subnets2081 any one of them being not a valid2082 behaves like does not update existing ip restrictions2083 does not change ip restriction records2084 adds error message2085 empty ip restriction param2086 deletes ip restriction2087 subgroup2088 does not create ip restriction2089 with empty ip restriction param2090 updates group setting2091 does not create ip restriction2092 feature is disabled2093 does not create ip restriction2094 setting email domain restrictions2095 top-level group2096 when email domain restriction does not exist2097 valid param2098 single domain2099 behaves like creates email domain restrictions2100 creates email domain restrictions2101 multiple domains2102 behaves like creates email domain restrictions2103 creates email domain restrictions2104 invalid param2105 adds error message2106 when email domain restrictions already exists2107 allowed email domain param set2108 valid param2109 single domain2110 behaves like updates allowed email domain restrictions2111 updates allowed email domain restrictions2112 multiple domains2113 a new domain along with the existing one2114 behaves like updates allowed email domain restrictions2115 updates allowed email domain restrictions2116 completely new set of domains2117 behaves like updates allowed email domain restrictions2118 updates allowed email domain restrictions2119 invalid param2120 not a valid domain2121 behaves like does not update existing email domain restrictions2122 does not change allowed_email_domains records2123 adds error message2124 multiple domains2125 any one of them being not a valid2126 behaves like does not update existing email domain restrictions2127 does not change allowed_email_domains records2128 adds error message2129 empty param2130 deletes all email domain restrictions2131 subgroup2132 does not create email domain restriction2133 feature is disabled2134 does not create email domain restrictions2135 PUT #transfer2136 does not transfer a group with a gitlab saas subscription2137 transfers a subgroup with a parent group with a gitlab saas subscription2138 DELETE #destroy2139 does not delete a group with a gitlab.com subscription2140 deletes a subgroup with a parent group with a gitlab.com subscription2141API::Internal::Base2142 POST /internal/post_receive2143 when the push was redirected from a Geo secondary to the primary2144 includes a message advising a redirection occurred2145 POST /internal/allowed2146 project alias2147 without premium license2148 project matches a project alias2149 does not allow access because project can't be found2150 with premium license2151 project matches a project alias2152 allows access2153 project doesn't match a project alias2154 does not allow access because project can't be found2155 smartcard session required2156 user with a smartcard session2157 allows access2158 user without a smartcard session2159 does not allow access2160 with the setting off2161 allows access2162 ip restriction2163 with or without check_ip parameter2164 check_ip_present: false, ip: nil, status: 2002165 modifies access2166 check_ip_present: true, ip: "150.168.0.1", status: 2002167 modifies access2168 check_ip_present: true, ip: "150.168.0.2", status: 4042169 modifies access2170 maintenance mode enabled2171 when action is git push2172 returns forbidden2173 when action is not git push2174 returns success2175 with Deploy Key authentication2176 passes the deploy key to the auditor context2177 when audit_event_streaming_git_operations_deploy_key_event feature flag is disabled2178 passes the user who created the deploy key to the auditor context2179 git audit streaming event2180 behaves like sends git audit streaming event2181 for public groups and projects2182 when user not logged in2183 sends the audit streaming event2184 for private groups and projects2185 when user logged in2186 sends the audit streaming event2187 with a namespace storage size limit2188 with a project2189 requests without changes2190 returns ok when the size limit has been exceeded2191 returns ok when the size is under the limit2192 requests with changes2193 rejects git push when the size limit has been exceeded2194 rejects git push when the push size would exceed the limit2195 accepts git push when the size is under the limit2196 with a snippet2197 rejects git push when the size limit has been exceeded2198 with a wiki2199 rejects git push when the size limit has been exceeded2200 POST /internal/lfs_authenticate2201 for a secondary node2202 returns the repository_http_path at the primary node2203 POST /internal/personal_access_token2204 with a max token lifetime on the instance2205 returns an error message when the expiry date exceeds the max token lifetime2206 returns a valid token when the expiry date does not exceed the max token lifetime2207 POST /internal/two_factor_otp_check2208 behaves like actor key validations2209 key does not exist2210 returns an error message2211 key without user2212 returns an error message2213 when the key is a deploy key2214 returns an error message2215 when the two factor is enabled2216 when the OTP is valid2217 registers a new OTP session and returns success2218 when the OTP is invalid2219 is not success2220 when the two factor is disabled2221 returns an error message2222 feature flag is disabled2223 when two-factor is enabled for the user2224 returns user two factor config2225 licensed feature is not available2226 when two-factor is enabled for the user2227 returns user two factor config2228 POST /internal/two_factor_manual_otp_check2229 behaves like actor key validations2230 key does not exist2231 returns an error message2232 key without user2233 returns an error message2234 when the key is a deploy key2235 returns an error message2236 when the two factor is enabled2237 when the OTP is valid2238 registers a new OTP session and returns success2239 when the OTP is invalid2240 is not success2241 locks the user out after maximum attempts is reached2242 logs the failure2243 behaves like an auditable failed authentication2244 log an audit event2245 when the two factor is disabled2246 returns an error message2247 feature flag is disabled2248 when two-factor is enabled for the user2249 returns user two factor config2250 licensed feature is not available2251 when two-factor is enabled for the user2252 returns user two factor config2253 POST /internal/two_factor_push_otp_check2254 behaves like actor key validations2255 key does not exist2256 returns an error message2257 key without user2258 returns an error message2259 when the key is a deploy key2260 returns an error message2261 when the two factor is enabled2262 when the OTP is valid2263 registers a new OTP session and returns success2264 when the OTP is invalid2265 is not success2266 when the two factor is disabled2267 returns an error message2268 feature flag is disabled2269 when two-factor is enabled for the user2270 returns user two factor config2271 licensed feature is not available2272 when two-factor is enabled for the user2273 returns user two factor config2274Groups::Analytics::CycleAnalytics::SummaryController2275 GET "show"2276 passes the date filter to the query class2277 behaves like summary endpoint2278 succeeds2279 when valid parameters are given2280 succeeds2281 accepts optional `project_ids` array2282 succeeds2283 when `created_before` is missing2284 succeeds2285 when `created_after` is missing2286 succeeds2287 when `created_after` is invalid, falls back to default date2288 is expected to respond with numeric status code success2289 when `created_before` is invalid2290 renders `unprocessable_entity`2291 when `created_after` is later than `created_before`2292 renders `unprocessable_entity`2293 when the date range exceeds 180 days2294 renders `unprocessable_entity`2295 when `group_id` is not found2296 renders `not_found` when group is missing2297 when user has no lower access level than `reporter`2298 renders `forbidden` response2299 when feature is not available for the group2300 renders `forbidden` response2301 GET "time_summary"2302 passes the group to RequestParams2303 uses the aggregated VSA data collector2304 behaves like summary endpoint2305 succeeds2306 when valid parameters are given2307 succeeds2308 accepts optional `project_ids` array2309 succeeds2310 when `created_before` is missing2311 succeeds2312 when `created_after` is missing2313 succeeds2314 when `created_after` is invalid, falls back to default date2315 is expected to respond with numeric status code success2316 when `created_before` is invalid2317 renders `unprocessable_entity`2318 when `created_after` is later than `created_before`2319 renders `unprocessable_entity`2320 when the date range exceeds 180 days2321 renders `unprocessable_entity`2322 when `group_id` is not found2323 renders `not_found` when group is missing2324 when user has no lower access level than `reporter`2325 renders `forbidden` response2326 when feature is not available for the group2327 renders `forbidden` response2328 time series endpoints2329 GET "lead_times"2330 returns the daily average durations2331 behaves like summary endpoint2332 succeeds2333 when valid parameters are given2334 succeeds2335 accepts optional `project_ids` array2336 succeeds2337 when `created_before` is missing2338 succeeds2339 when `created_after` is missing2340 succeeds2341 when `created_after` is invalid, falls back to default date2342 is expected to respond with numeric status code success2343 when `created_before` is invalid2344 renders `unprocessable_entity`2345 when `created_after` is later than `created_before`2346 renders `unprocessable_entity`2347 when the date range exceeds 180 days2348 renders `unprocessable_entity`2349 when `group_id` is not found2350 renders `not_found` when group is missing2351 when user has no lower access level than `reporter`2352 renders `forbidden` response2353 when feature is not available for the group2354 renders `forbidden` response2355 GET "cycle_times"2356 returns the daily average durations2357 behaves like summary endpoint2358 succeeds2359 when valid parameters are given2360 succeeds2361 accepts optional `project_ids` array2362 succeeds2363 when `created_before` is missing2364 succeeds2365 when `created_after` is missing2366 succeeds2367 when `created_after` is invalid, falls back to default date2368 is expected to respond with numeric status code success2369 when `created_before` is invalid2370 renders `unprocessable_entity`2371 when `created_after` is later than `created_before`2372 renders `unprocessable_entity`2373 when the date range exceeds 180 days2374 renders `unprocessable_entity`2375 when `group_id` is not found2376 renders `not_found` when group is missing2377 when user has no lower access level than `reporter`2378 renders `forbidden` response2379 when feature is not available for the group2380 renders `forbidden` response2381Projects::Settings::AccessTokensController2382 GET /:namespace/:project/-/settings/access_tokens2383 behaves like feature unavailable2384 with a free plan2385 is expected to respond with numeric status code not_found2386 when user is not a maintainer with a paid group plan2387 is expected to respond with numeric status code not_found2388 behaves like GET resource access tokens available2389 retrieves active resource access tokens2390 retrieves inactive resource access tokens2391 lists all available scopes2392 retrieves newly created personal access token value2393 POST /:namespace/:project/-/settings/access_tokens2394 behaves like feature unavailable2395 with a free plan2396 is expected to respond with numeric status code not_found2397 when user is not a maintainer with a paid group plan2398 is expected to respond with numeric status code not_found2399 behaves like POST resource access tokens available2400 returns success message2401 creates resource access token2402 creates project bot user2403 stores newly created token redis store2404 is expected to change `User.count` by 12405 is expected to change `PersonalAccessToken.count` by 12406 when unsuccessful2407 does not create the token2408 does not add the project bot as a member2409 does not create the project bot user2410 shows a failure alert2411 PUT /:namespace/:project/-/settings/access_tokens/:id2412 behaves like feature unavailable2413 with a free plan2414 is expected to respond with numeric status code not_found2415 when user is not a maintainer with a paid group plan2416 is expected to respond with numeric status code not_found2417 behaves like PUT resource access tokens available2418 calls delete user worker2419 removes membership of bot user2420 converts issuables of the bot user to ghost user2421 deletes project bot user2422 when unsuccessful2423 shows a failure alert2424API::ProjectApprovalRules2425 GET /projects/:id/approval_rules/:approval_rule_id2426 when the request is correct2427 matches the response schema2428 when the user is not authorized2429 does not display rule information2430 GET /projects/:id/approval_rules2431 when the request is correct2432 matches the response schema2433 when pagination FF is off2434 does not support pagination2435 private group filtering2436 excludes private groups if user has no access2437 includes private groups if user has access2438 report_approver rules2439 includes report_approver rules2440 when project is archived2441 when user has normal permissions2442 returns 4032443 when user has project admin permissions2444 allows access2445 POST /projects/:id/approval_rules2446 behaves like an API endpoint for creating project approval rule2447 when missing parameters2448 returns 400 status2449 when user is without access2450 returns 4032451 when the request is correct2452 returns 201 status2453 changes settings properly2454 when protected_branch_ids param is present2455 creates approval rule associated to specified protected branches2456 when applies_to_all_protected_branches param is present2457 returns a list of project protected branches in the response2458 with rule_type set to report_approver2459 without report_type2460 returns a error http status2461 when creating a approval rule for each report_type2462 rule_name: "License-Check", report_type: :license_scanning2463 specifies `report_rule` and `report_type`2464 rule_name: "Coverage-Check", report_type: :code_coverage2465 specifies `report_rule` and `report_type`2466 with valid scanners2467 returns 201 status2468 with valid severity_levels2469 returns 201 status2470 with vulnerabilities_allowed2471 returns 201 status2472 PUT /projects/:id/approval_rules/:approval_rule_id2473 behaves like an API endpoint for updating project approval rule2474 as a project admin2475 behaves like a user with access2476 sets approvers2477 when applies_to_all_protected_branches param is present2478 returns a list of project protected branches in the response2479 when protected_branch_ids param is present2480 associates approval rule to specified protected branches2481 with valid scanners2482 returns 200 status2483 with valid severity_levels2484 returns 200 status2485 when approver already exists2486 when sending json data2487 removes all approvers if empty params are given2488 with vulnerabilities_allowed2489 returns 200 status2490 as a global admin2491 behaves like a user with access2492 sets approvers2493 when applies_to_all_protected_branches param is present2494 returns a list of project protected branches in the response2495 when protected_branch_ids param is present2496 associates approval rule to specified protected branches2497 with valid scanners2498 returns 200 status2499 with valid severity_levels2500 returns 200 status2501 when approver already exists2502 when sending json data2503 removes all approvers if empty params are given2504 with vulnerabilities_allowed2505 returns 200 status2506 as a random user2507 returns 4032508 DELETE /projects/:id/approval_rules/:approval_rule_id2509 behaves like an API endpoint for deleting project approval rule2510 destroys2511 when approval rule not found2512 returns not found2513 when user is not eligible to delete2514 returns forbidden2515API::GroupBoards2516 behaves like group and project boards2517 avoids N+1 queries2518 GET /groups/:id/boards2519 when unauthenticated2520 returns authentication error2521 when authenticated2522 returns the issue boards2523 GET /groups/:id/boards/:board_id2524 get a single board by id2525 PUT /groups/:id/boards/:board_id2526 updates the board name2527 updates the issue board booleans2528 GET /groups/:id/boards/:board_id/lists2529 returns issue board lists2530 returns 404 if board not found2531 GET /groups/:id/boards/:board_id/lists/:list_id2532 returns a list2533 returns 404 if list not found2534 POST /groups/:id/boards/lists2535 creates a new issue board list for labels2536 returns 400 when creating a new list if label_id is invalid2537 returns 403 for members with guest role2538 PUT /groups/:id/boards/:board_id/lists/:list_id to update only position2539 updates a list2540 returns 404 error if list id not found2541 returns 403 for members with guest role2542 DELETE /groups/:id/boards/lists/:list_id2543 rejects a non member from deleting a list2544 rejects a user with guest role from deleting a list2545 returns 404 error if list id not found2546 when the user is parent owner2547 deletes the list if an admin requests it2548 behaves like 412 response2549 for a modified ressource2550 returns 412 with a JSON error2551 for an unmodified ressource2552 returns 204 with an empty body2553 behaves like multiple and scoped issue boards2554 multiple issue boards2555 POST /groups/:id/boards2556 creates a board2557 PUT /groups/:id/boards/:board_id2558 updates a board2559 does not remove missing attributes from the board2560 allows removing optional attributes2561 DELETE /groups/:id/boards/:board_id2562 deletes a board2563 with the scoped_issue_board-feature available2564 returns the milestone when the `scoped_issue_board` feature is enabled2565 hides the milestone when the `scoped_issue_board` feature is disabled2566 POST /groups/:id/boards/:board_id/lists2567 behaves like milestone board list2568 when milestone_id is sent2569 returns 400 if milestone is not found2570 returns 400 if milestone list feature is not available2571 creates a milestone list if milestone is found2572 behaves like assignee board list2573 when assignee_id is sent2574 returns 400 if user is not found2575 returns 400 if assignee list feature is not available2576 creates an assignee list if user is found2577 behaves like iteration board list2578 when iteration_id is sent2579 returns 400 if iteration is not found2580 returns 400 if not licensed2581 creates an iteration list if iteration is found2582getting the compliance violations for a group2583 when the user is unauthorized2584 returns nil2585 when the user is authorized2586 without any filters or sorting2587 finds all the compliance violations2588 filtering the results2589 when given an array of project IDs2590 finds all the compliance violations2591 when given merged at dates2592 merged_params: {"mergedBefore"=>"2022-07-30"}, result: lazy { violation_output }2593 finds all the compliance violations2594 merged_params: {"mergedAfter"=>"2022-07-30"}, result: lazy { violation2_output }2595 finds all the compliance violations2596 merged_params: {"mergedBefore"=>"2022-08-01", "mergedAfter"=>"2022-07-30"}, result: lazy { violation2_output }2597 finds all the compliance violations2598 sorting and pagination2599 sort_param: :SEVERITY_LEVEL_ASC, all_records: violation_ids_asc2600 behaves like sorted paginated query2601 behaves like requires variables2602 shared example requires variables to be set2604 when sorting2605 sorts correctly2606 when paginating2607 paginates correctly2608 sort_param: :SEVERITY_LEVEL_DESC, all_records: violation_ids_desc2609 behaves like sorted paginated query2610 behaves like requires variables2611 shared example requires variables to be set2613 when sorting2614 sorts correctly2615 when paginating2616 paginates correctly2617 sort_param: :VIOLATION_REASON_ASC, all_records: violation_ids_asc2618 behaves like sorted paginated query2619 behaves like requires variables2620 shared example requires variables to be set2622 when sorting2623 sorts correctly2624 when paginating2625 paginates correctly2626 sort_param: :VIOLATION_REASON_DESC, all_records: violation_ids_desc2627 behaves like sorted paginated query2628 behaves like requires variables2629 shared example requires variables to be set2631 when sorting2632 sorts correctly2633 when paginating2634 paginates correctly2635 sort_param: :MERGE_REQUEST_TITLE_ASC, all_records: violation_ids_asc2636 behaves like sorted paginated query2637 behaves like requires variables2638 shared example requires variables to be set2640 when sorting2641 sorts correctly2642 when paginating2643 paginates correctly2644 sort_param: :MERGE_REQUEST_TITLE_DESC, all_records: violation_ids_desc2645 behaves like sorted paginated query2646 behaves like requires variables2647 shared example requires variables to be set2649 when sorting2650 sorts correctly2651 when paginating2652 paginates correctly2653 sort_param: :MERGED_AT_ASC, all_records: violation_ids_asc2654 behaves like sorted paginated query2655 behaves like requires variables2656 shared example requires variables to be set2658 when sorting2659 sorts correctly2660 when paginating2661 paginates correctly2662 sort_param: :MERGED_AT_DESC, all_records: violation_ids_desc2663 behaves like sorted paginated query2664 behaves like requires variables2665 shared example requires variables to be set2667 when sorting2668 sorts correctly2669 when paginating2670 paginates correctly2671Groups::AuditEventsController2672 GET #index2673 when authorized owner2675 behaves like when audit_events feature is available2676 renders index with 200 status code2677 tracks search event2678 invokes AuditEventFinder with correct arguments2679 behaves like AuditEventFinder params2680 has the correct params2681 author2682 when no author entity type is specified2683 behaves like AuditEventFinder params2684 has the correct params2685 when the author entity type is specified2686 behaves like AuditEventFinder params2687 has the correct params2688 ordering2689 when no sort order is specified2690 behaves like orders by id descending2691 orders by id descending2692 when sorting by latest events first2693 behaves like orders by id descending2694 orders by id descending2695 when sorting by oldest events first2696 orders by id ascending2697 when sorting by an unsupported sort order2698 behaves like orders by id descending2699 orders by id descending2700 pagination2701 sets instance variables2702 paginates audit events, without casting a count query2703 when invalid date2704 created_before: "invalid-date", created_after: nil2705 returns an error2706 created_before: nil, created_after: true2707 returns an error2708 created_before: "2021-13-10", created_after: nil2709 returns an error2710 created_before: nil, created_after: "2021-02-31"2711 returns an error2712 created_before: "2021-03-31", created_after: "2021-02-31"2713 returns an error2714 when date range is greater than limit2715 behaves like a date range error is returned2716 created_after: "2021-01-01", created_before: "2021-02-02"2717 returns an error2718 created_after: "2022-01-31", created_before: nil2719 returns an error2720 behaves like tracking unique visits2721 tracks unique visit if the format is HTML2722 tracks unique visit if DNT is not enabled2723 does not track unique visit if DNT is enabled2724 does not track unique visit if the format is JSON2725 when authorized auditor2727 behaves like when audit_events feature is available2728 renders index with 200 status code2729 tracks search event2730 invokes AuditEventFinder with correct arguments2731 behaves like AuditEventFinder params2732 has the correct params2733 author2734 when no author entity type is specified2735 behaves like AuditEventFinder params2736 has the correct params2737 when the author entity type is specified2738 behaves like AuditEventFinder params2739 has the correct params2740 ordering2741 when no sort order is specified2742 behaves like orders by id descending2743 orders by id descending2744 when sorting by latest events first2745 behaves like orders by id descending2746 orders by id descending2747 when sorting by oldest events first2748 orders by id ascending2749 when sorting by an unsupported sort order2750 behaves like orders by id descending2751 orders by id descending2752 pagination2753 sets instance variables2754 paginates audit events, without casting a count query2755 when invalid date2756 created_before: "invalid-date", created_after: nil2757 returns an error2758 created_before: nil, created_after: true2759 returns an error2760 created_before: "2021-13-10", created_after: nil2761 returns an error2762 created_before: nil, created_after: "2021-02-31"2763 returns an error2764 created_before: "2021-03-31", created_after: "2021-02-31"2765 returns an error2766 when date range is greater than limit2767 behaves like a date range error is returned2768 created_after: "2021-01-01", created_before: "2021-02-02"2769 returns an error2770 created_after: "2022-01-31", created_before: nil2771 returns an error2772 behaves like tracking unique visits2773 tracks unique visit if the format is HTML2774 tracks unique visit if DNT is not enabled2775 does not track unique visit if DNT is enabled2776 does not track unique visit if the format is JSON2777 authorized as user without admin group permission2778 returns only events by current user2779 unauthorized2780 renders 4042781getting group information2782 Query group(fullPath)2783 when Group SSO is enforced2784 returns null data when not authorized2785 allows access via session2786 allows access via bearer token2787 when loading vulnerabilityGrades alongside with Vulnerability.userNotesCount2788 finds vulnerability grades for only projects that were added to instance security dashboard2789 returns a successful response2790 when loading multiple epics2791 can lookahead to eliminate N+1 queries2792 when loading release statistics2793 when the group is private2794 behaves like correct access to release statistics2795 when the user is not logged in2796 behaves like no access to release statistics2797 returns data about release utilization within the group2798 when the user is not a member of the group2799 behaves like no access to release statistics2800 returns data about release utilization within the group2801 when the user is at least a guest2802 behaves like full access to release statistics2803 when there are no releases2804 returns 0 for both statistics2805 when there are some releases2806 returns data about release utilization within the group2807 when the group is public2808 behaves like correct access to release statistics2809 when the user is not logged in2810 behaves like no access to release statistics2811 returns data about release utilization within the group2812 when the user is not a member of the group2813 behaves like no access to release statistics2814 returns data about release utilization within the group2815 when the user is at least a guest2816 behaves like full access to release statistics2817 when there are no releases2818 returns 0 for both statistics2819 when there are some releases2820 returns data about release utilization within the group2821 pagination2822 when default sorting2823 behaves like sorted paginated query2824 behaves like requires variables2825 shared example requires variables to be set2827 when sorting2828 sorts correctly2829 when paginating2830 paginates correctly2831Registrations::ProjectsController2832 GET #new2833 with an unauthenticated user2834 is expected to respond with numeric status code redirect2835 is expected to redirect to "/users/sign_in"2836 with an authenticated user2837 when on .com2838 is expected to respond with numeric status code not_found2839 with a namespace in the URL2840 is expected to respond with numeric status code not_found2841 with sufficient access2842 is expected to respond with numeric status code ok2843 is expected to render template new2844 when not on .com2845 is expected to respond with numeric status code not_found2846 POST #create2847 behaves like Registrations::ProjectsController POST #create2848 with an unauthenticated user2849 is expected to respond with numeric status code redirect2850 is expected to redirect to "/users/sign_in"2851 with an authenticated user2852DEPRECATION WARNING: publish_to_database is deprecated and should not be used for reporting anymore (called from block in registration_verification_enabled? at /builds/gitlab-org/gitlab/ee/app/helpers/ee/registrations_helper.rb:16)2853 creates a new project, a "Learn GitLab" project, sets a cookie and redirects to the success_path2854 when the `registration_verification` experiment is enabled2855DEPRECATION WARNING: publish_to_database is deprecated and should not be used for reporting anymore (called from block in registration_verification_enabled? at /builds/gitlab-org/gitlab/ee/app/helpers/ee/registrations_helper.rb:16)2856 is expected to redirect to the verification page2857 learn gitlab project2858 trial: false, project_name: "Learn GitLab", template: "learn_gitlab_ultimate.tar.gz"2859DEPRECATION WARNING: publish_to_database is deprecated and should not be used for reporting anymore (called from block in registration_verification_enabled? at /builds/gitlab-org/gitlab/ee/app/helpers/ee/registrations_helper.rb:16)2860 is expected to receive execute(*(any args)) 1 time2861 trial: true, project_name: "Learn GitLab - Ultimate trial", template: "learn_gitlab_ultimate.tar.gz"2862DEPRECATION WARNING: publish_to_database is deprecated and should not be used for reporting anymore (called from block in registration_verification_enabled? at /builds/gitlab-org/gitlab/ee/app/helpers/ee/registrations_helper.rb:16)2863 is expected to receive execute(*(any args)) 1 time2864 when the trial onboarding is active2865/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil2866DEPRECATION WARNING: publish_to_database is deprecated and should not be used for reporting anymore (called from block in registration_verification_enabled? at /builds/gitlab-org/gitlab/ee/app/helpers/ee/registrations_helper.rb:16)2867 creates a new project, a "Learn GitLab - Ultimate trial" project, does not set a cookie2868DEPRECATION WARNING: publish_to_database is deprecated and should not be used for reporting anymore (called from block in registration_verification_enabled? at /builds/gitlab-org/gitlab/ee/app/helpers/ee/registrations_helper.rb:16)2869 records context and redirects to the success page2870 when the `registration_verification` experiment is enabled2871DEPRECATION WARNING: publish_to_database is deprecated and should not be used for reporting anymore (called from block in registration_verification_enabled? at /builds/gitlab-org/gitlab/ee/app/helpers/ee/registrations_helper.rb:16)2872 is expected to redirect to the verification page2873 when the project cannot be saved2874 does not create a project2875 is expected to respond with numeric status code ok2876 is expected to render template new2877 with signup onboarding not enabled2878 is expected to respond with numeric status code not_found2879API::Internal::Kubernetes2880 PUT /internal/kubernetes/modules/starboard_vulnerability2881 returns 401 if Authorization header not sent2882 returns 401 if Authorization is for non-existent agent2883 not authenticated2884 returns 4012885 kubernetes_agent_internal_api feature flag disabled2886 returns 4042887 is authenticated for an agent2888 returns ok when a vulnerability is created2889 accepts the same payload twice2890 responds with the created vulnerability's UUID2891 when payload is invalid2892 returns bad request2893 when required parameters are missing2894 missing_param: :vulnerability2895 returns bad request2896 missing_param: :scanner2897 returns bad request2898 when feature is not available2899 returns forbidden for non licensed project2900 POST /internal/kubernetes/modules/starboard_vulnerability/scan_result2901 returns 401 if Authorization header not sent2902 returns 401 if Authorization is for non-existent agent2903 not authenticated2904 returns 4012905 kubernetes_agent_internal_api feature flag disabled2906 returns 4042907 is authenticated for an agent2908 returns ok2909 resolves undetected vulnerabilities2910 marks undetected vulnerabilities as resolved on default branch2911 does not resolve vulnerabilities with other report types2912 does not resolve other projects' vulnerabilities2913 when payload is invalid2914 returns bad request2915 when feature is not available2916 returns forbidden for non licensed project2917 GET /internal/kubernetes/modules/starboard_vulnerability/scan_execution_policies2918 returns 401 if Authorization header not sent2919 returns 401 if Authorization is for non-existent agent2920 not authenticated2921 returns 4012922 kubernetes_agent_internal_api feature flag disabled2923 returns 4042924 when security_orchestration_policies is not licensed2925 returns 4042926 when security_orchestration_policies is licensed2927 when policies are present2928 returns expected data2929 when policies are empty2930 returns empty array2931API::ProtectedBranches2932 GET /projects/:id/protected_branches/:branch2933 when authenticated as a maintainer2934 behaves like protected branch2935 returns the protected branch2936 with per user/group access levels2937 returns access level details2938 when protected branch contains a wildcard2939 behaves like protected branch2940 returns the protected branch2941 with per user/group access levels2942 returns access level details2943 when protected branch contains a period2944 behaves like protected branch2945 returns the protected branch2946 with per user/group access levels2947 returns access level details2948 when authenticated as a guest2949 behaves like 403 response2950 returns 4032951 PATCH /projects/:id/protected_branches/:branch2952 when authenticated as a maintainer2953 when the feature is enabled2954 updates the protected branch2955 when the feature is disabled2956 does not change the protected branch2957 when authenticated as a guest2958 returns a 403 response2959 POST /projects/:id/protected_branches2960 when authenticated as a maintainer2961 protects a single branch2962 protects a single branch and only admins can unprotect2963 code_owner_approval_required2964 when feature is enabled2965 sets :code_owner_approval_required to true when the param is true2966 sets :code_owner_approval_required to false when the param is false2967 when feature is not enabled2968 sets :code_owner_approval_required to false when the param is false2969 with granular access2970 can protect a branch while allowing an individual user to push2971 can protect a branch while allowing an individual user to merge2972 can protect a branch while allowing an individual user to unprotect2973 can protect a branch while allowing a group to push2974 can protect a branch while allowing a group to merge2975 can protect a branch while allowing a group to unprotect2976 fails if users don't all have access to the project2977 fails if groups aren't all invited to the project2978 avoids creating default access levels unless necessary2979 when protected_refs_for_users feature is not available2980 cannot protect a branch for a user or group only2981getting epics information2982 query for epics which start with an iid2983 when a valid iidStartsWith query is provided2984 returns the expected epics2985 when invalid iidStartsWith query is provided2986 fails with negative number2987 fails with string2988 fails if query contains line breaks2989 query for epics by created_at and updated_at2990 filters by createdBefore2991 filters by createdAfter2992 filters by updatedBefore2993 filters by updatedAfter2994 filters by a combination of created parameters provided2995 filters by a combination of created/updated parameters provided2996 returns nothing for impossible parameters2997 query for epics by time frame2998 when start_date and end_date are present2999 returns epics within timeframe3000 when only start_date is present3001 raises error3002 when only end_date is present3003 raises error3004 query for epics with events3005 can lookahead to prevent N+1 queries3006 query for epics with ancestors3007 returns the ancestors3008 N+1 query checks3009 when requesting `award_emoji`3010 prevents N+1 queries3011API::ProjectAliases3012 without premium license3013 GET /project_aliases3014 returns 4033015 GET /project_aliases/:name3016 returns 4033017 POST /project_aliases3018 returns 4033019 DELETE /project_aliases/:name3020 returns 4033021 with premium license3022 GET /project_aliases3023 behaves like GitLab administrator only API endpoint3024 anonymous user3025 returns 4013026 regular user3027 returns 4033028 admin3029 returns the project aliases list3030 GET /project_aliases/:name3031 behaves like GitLab administrator only API endpoint3032 anonymous user3033 returns 4013034 regular user3035 returns 4033036 admin3037 existing project alias3038 returns the project alias3039 non-existent project alias3040 returns 4043041 POST /project_aliases3042 behaves like GitLab administrator only API endpoint3043 anonymous user3044 returns 4013045 regular user3046 returns 4033047 admin3048 existing project alias3049 returns 4003050 non-existent project alias3051 returns 2003052 DELETE /project_aliases/:name3053 behaves like GitLab administrator only API endpoint3054 anonymous user3055 returns 4013056 regular user3057 returns 4033058 admin3059 existing project alias3060 returns 2043061 non-existent project alias3062 returns 4043063Query.project(fullPath).vulnerabilitySeveritiesCount3064 returns counts for each severity of the project's detected or confirmed vulnerabilities3065 with hasIssues filter3066 when counting vulnerabilities without issues3067 counts vulnerabilities with issues3068 when counting vulnerabilities with issues3069 counts vulnerabilities with issues3070 with hasResolution filter3071 when counting vulnerabilities without resolution3072 counts vulnerabilities with resolution3073 when counting vulnerabilities with resolution3074 counts vulnerabilities with resolution3075 with scannerId filter3076 counts vulnerabilities with issues3077SmartcardController3078 #auth3079 with smartcard_auth enabled3080 redirects to extract certificate3081 with provider param3082 forwards the provider param3083 with smartcard_auth disabled3084 renders 4043085 #extract_certificate3086 with smartcard_auth enabled3087 redirects to verify certificate3088 with provider param3089 forwards the provider param3090 missing NGINX client certificate header3091 renders unauthorized3092 request from different host / port3093 renders 4043094 with smartcard_auth disabled3095 renders 4043096 #verify_certificate3097 Smartcard::Certificate3098 behaves like a client certificate authentication3099 with smartcard_auth enabled3100 allows sign in3101 redirects to root3102 logs audit event3103 stores active session3104 user does not exist3105 signup allowed3106 creates user3107 signup disabled3108 renders 4013109 missing client certificate param3110 renders unauthorized3111 with smartcard_auth disabled3112 renders 4043113 user already exists3114 finds existing user3115 certificate header formats from NGINX3116 escaped format3117 behaves like valid certificate header3118 authenticates user3119 deprecated format3120 behaves like valid certificate header3121 authenticates user3122 Smartcard::LdapCertificate3123 sets correct parameters for LDAP search3124 behaves like a client certificate authentication3125 with smartcard_auth enabled3126 allows sign in3127 redirects to root3128 logs audit event3129 stores active session3130 user does not exist3131 signup allowed3132 creates user3133 signup disabled3134 renders 4013135 missing client certificate param3136 renders unauthorized3137 with smartcard_auth disabled3138 renders 4043139 user already exists3140 finds existing user3141 user has a different identity3142 doesn't login a user3143 doesn't create a new user entry either3144Projects::Security::VulnerabilitiesController3145 GET #new3146 checks if the user can create a vulnerability3147 when the "Security & Compliance" feature is disabled3148 is expected to respond with numeric status code not_found3149 when user can create vulnerability3150 renders the add new finding page3151 when user can not create vulnerability3152 renders 404 page not found3153 GET #show3154 when the "Security & Compliance" feature is disabled3155 is expected to respond with numeric status code not_found3156 when there's an attached pipeline3157 renders the vulnerability page3158 renders the vulnerability component3159 when there's no attached pipeline3160 renders the vulnerability page3161 GET #discussions3162 renders discussions3163 when the "Security & Compliance" feature is disabled3164 is expected to respond with numeric status code not_found3165Projects::Security::ConfigurationController3166 GET #show3167 user_role: :guest, security_dashboard_enabled: false, status: :forbidden, selector: nil3168 responds with the correct status3169 when the "Security & Compliance" feature is disabled3170 is expected to respond with numeric status code not_found3171 user_role: :guest, security_dashboard_enabled: true, status: :forbidden, selector: nil3172 responds with the correct status3173 when the "Security & Compliance" feature is disabled3174 is expected to respond with numeric status code not_found3175 user_role: :developer, security_dashboard_enabled: false, status: :ok, selector: "#js-security-configuration"3176 responds with the correct status3177 when the "Security & Compliance" feature is disabled3178 is expected to respond with numeric status code not_found3179 user_role: :developer, security_dashboard_enabled: true, status: :ok, selector: "#js-security-configuration"3180 responds with the correct status3181 when the "Security & Compliance" feature is disabled3182 is expected to respond with numeric status code not_found3183 with developer and security dashboard feature enabled3184 responds in json format when requested3185 renders data on the project's security configuration3186 when the latest pipeline used Auto DevOps3187 reports that Auto DevOps is enabled3188 POST #auto_fix3189 with feature enabled3190 with sufficient permissions3191 with setup feature param3192 processes request and updates setting3193 without setup feature param3194 processes request and updates setting3195 without processable feature3196 does not pass validation3197 without sufficient permissions3198 is expected to respond with numeric status code not_found3199 with feature disabled3200 is expected to respond with numeric status code not_found3201getting Incident Management on-call shifts3202 returns the correct properties of the on-call shifts3203 behaves like a working graphql query3204 returns a successful response3205 performance3206 for past and future shifts3207 behaves like avoids N+1 queries for additional generated shift3208 is expected not to exceed query limit #<ActiveRecord::QueryRecorder:0x00007f92d116a178 @data={"/app/models/concerns/token_authenticatable_s...@skip_cached=true, @skip_schema_queries=true, @query_recorder_debug=false, @log_file=nil, @count=19>3209 behaves like avoids N+1 queries for additional historical shift3210 is expected not to exceed query limit #<ActiveRecord::QueryRecorder:0x00007f92cb24aa08 @data={"/app/models/concerns/token_authenticatable_s...@skip_cached=true, @skip_schema_queries=true, @query_recorder_debug=false, @log_file=nil, @count=19>3211 behaves like avoids N+1 queries for additional participant3212 is expected not to exceed query limit #<ActiveRecord::QueryRecorder:0x00007f92e4b19bc0 @data={"/app/models/concerns/token_authenticatable_s...@skip_cached=true, @skip_schema_queries=true, @query_recorder_debug=false, @log_file=nil, @count=19>3213 behaves like adds only one query for each additional rotation with participants3214 is expected not to exceed query limit #<ActiveRecord::QueryRecorder:0x00007f92f2df31f8 @data={"/app/models/concerns/token_authenticatable_s...@skip_cached=true, @skip_schema_queries=true, @query_recorder_debug=false, @log_file=nil, @count=19>3215 for future shifts only3216 behaves like avoids N+1 queries for additional generated shift3217 is expected not to exceed query limit #<ActiveRecord::QueryRecorder:0x00007f92b5874278 @data={"/app/models/concerns/token_authenticatable_s...@skip_cached=true, @skip_schema_queries=true, @query_recorder_debug=false, @log_file=nil, @count=18>3218 behaves like avoids N+1 queries for additional participant3219 is expected not to exceed query limit #<ActiveRecord::QueryRecorder:0x00007f92b3ec2500 @data={"/app/models/concerns/token_authenticatable_s...@skip_cached=true, @skip_schema_queries=true, @query_recorder_debug=false, @log_file=nil, @count=18>3220 behaves like avoids N+1 queries for additional rotation with participants3221 is expected not to exceed query limit #<ActiveRecord::QueryRecorder:0x00007f92d223cd98 @data={"/app/models/concerns/token_authenticatable_s...@skip_cached=true, @skip_schema_queries=true, @query_recorder_debug=false, @log_file=nil, @count=18>3222 for past shifts only3223 behaves like avoids N+1 queries for additional historical shift3224 is expected not to exceed query limit #<ActiveRecord::QueryRecorder:0x00007f92cee19f98 @data={"/app/models/concerns/token_authenticatable_s...@skip_cached=true, @skip_schema_queries=true, @query_recorder_debug=false, @log_file=nil, @count=18>3225 behaves like avoids N+1 queries for additional participant3226 is expected not to exceed query limit #<ActiveRecord::QueryRecorder:0x00007f92d6ef3268 @data={"/app/models/concerns/token_authenticatable_s...@skip_cached=true, @skip_schema_queries=true, @query_recorder_debug=false, @log_file=nil, @count=18>3227 behaves like adds only one query for each additional rotation with participants3228 is expected not to exceed query limit #<ActiveRecord::QueryRecorder:0x00007f92e5aba318 @data={"/app/models/concerns/token_authenticatable_s...@skip_cached=true, @skip_schema_queries=true, @query_recorder_debug=false, @log_file=nil, @count=18>3229 without required argument starts_at3230 raises an exception3231 without required argument ends_at3232 raises an exception3233API::Ci::Triggers3234 POST /projects/:project_id/trigger/pipeline3235 when triggering a pipeline from a job token3236 without user3237 does not leak the presence of project when using valid token3238 for unreleated user3239 does not leak the presence of project when using valid token3240 for related user3241 with reporter permissions3242 forbids to create a pipeline3243 with developer permissions3244 creates a new pipeline3245 when project is not in the job token scope3246 forbids to create a pipeline3247 when build is complete3248 does not create a pipeline3249 when variables are defined3250 creates a new pipeline with a variable3251Projects::ApproversController3252 #destroy3253 on a merge request3254 when the user cannot update approvers because they do not have access3255 returns a 4043256 does not destroy any approvers3257 when the user cannot update approvers because of the project setting3258 returns a 4043259 does not destroy any approvers3260 when the user can update approvers3261 destroys the provided approver3262 on a project3263 when the user cannot update approvers because they do not have access3264 returns a 4043265 does not destroy any approvers3266 when the user can update approvers3267 destroys the provided approver3268Groups::SamlProvidersController3269 when per group saml is unlicensed3270 behaves like configuration is prevented3271 GET #show3272 behaves like 404 status3273 returns 404 status3274 POST #create3275 behaves like 404 status3276 returns 404 status3277 PUT #update3278 behaves like 404 status3279 returns 404 status3280 when per group saml is unconfigured3281 behaves like configuration is prevented3282 GET #show3283 behaves like 404 status3284 returns 404 status3285 POST #create3286 behaves like 404 status3287 returns 404 status3288 PUT #update3289 behaves like 404 status3290 returns 404 status3291 when per group saml feature is enabled3292 GET #show3293 shows configuration page3294 has no SCIM token URL3295 has the SCIM token URL when it exists3296 not on a top level group3297 behaves like 404 status3298 returns 404 status3299 with unauthorized user3300 responds with 4043301 PUT #update3302 updates the settings3303 enabling group managed when owner has linked identity3304 group_managed_accounts feature flag enabled3305 updates the flags3306 group_managed_accounts feature flag disabled3307 does not update the setting3308 enabling group managed when owner has not linked identity3309 does not update the flags3310Repositories::GitHttpController3311 POST #git_upload_pack3312 geo pulls a personal snippet3313 allows access3314 does not allow access if scope is wrong3315 GET #info_refs3316 smartcard session required3317 user with a smartcard session3318 allows access3319 user without a smartcard session3320 does not allow access3321 with the setting off3322 allows access3323 POST #git_receive_pack3324 when node is a primary Geo one3325 with projects3326 behaves like triggers Geo3327 executes ::Gitlab::Geo::GitPushHttp3328 returns 2003329 with a project wiki3330 behaves like triggers Geo3331 executes ::Gitlab::Geo::GitPushHttp3332 returns 2003333 with a group wiki3334 behaves like triggers Geo3335 executes ::Gitlab::Geo::GitPushHttp3336 returns 2003337 with a personal snippet3338 behaves like triggers Geo3339 executes ::Gitlab::Geo::GitPushHttp3340 returns 2003341 with a project snippet3342 behaves like triggers Geo3343 executes ::Gitlab::Geo::GitPushHttp3344 returns 2003345Destroy an external audit event destination3346 when feature is licensed3347 when current user is a group owner but destination belongs to another group3348 behaves like a mutation on an unauthorized resource3349 behaves like a mutation that returns top-level errors3350 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"3351 behaves like a mutation that does not destroy a destination3352 does not destroy the destination3353 does not audit the destruction3354 when current user is a group owner of a different group3355 behaves like a mutation on an unauthorized resource3356 behaves like a mutation that returns top-level errors3357 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"3358 behaves like a mutation that does not destroy a destination3359 does not destroy the destination3360 does not audit the destruction3361 when current user is a group owner3362 destroys the destination3363 audits the destruction3364 when current user is a group maintainer3365 behaves like a mutation that does not destroy a destination3366 does not destroy the destination3367 does not audit the destruction3368 when current user is a group developer3369 behaves like a mutation that does not destroy a destination3370 does not destroy the destination3371 does not audit the destruction3372 when current user is a group guest3373 behaves like a mutation that does not destroy a destination3374 does not destroy the destination3375 does not audit the destruction3376 when feature is unlicensed3377 behaves like a mutation on an unauthorized resource3378 behaves like a mutation that returns top-level errors3379 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"3380 behaves like a mutation that does not destroy a destination3381 does not destroy the destination3382 does not audit the destruction3383API::ResourceLabelEvents3384 when eventable is an Epic3385 behaves like resource_label_events API3386 GET /groups/:id/epics/:noteable_id/resource_label_events3387 with local label reference3388 returns an array of resource label events3389 returns a 404 error when eventable id not found3390 returns 404 when not authorized3391 with cross-project label reference3392 returns cross references accessible by user3393 does not return cross references not accessible by user3394 GET /groups/:id/epics/:noteable_id/resource_label_events/:event_id3395 with local label reference3396 returns a resource label event by id3397 returns 404 when not authorized3398 returns a 404 error if resource label event not found3399 with cross-project label reference3400 returns a 404 error if cross-reference project is not accessible3401 pagination3402 returns the second page3403API::GroupRepositoryStorageMoves3404 behaves like repository_storage_moves API3405 GET /groups/:id/repository_storage_moves3406 behaves like get container repository storage move list3407 returns container repository storage moves3408 avoids N+1 queries3409 returns the most recently created first3410 permissions3411 is expected to be allowed for :admin3412 is expected to be denied for :user3413 non-existent container3414 returns not found3415 GET /groups/:id/repository_storage_moves/:repository_storage_move_id3416 behaves like get single container repository storage move3417 returns a container repository storage move3418 non-existent container repository storage move3419 returns not found3420 permissions3421 is expected to be allowed for :admin3422 is expected to be denied for :user3423 non-existent container3424 returns not found3425 GET /group_repository_storage_moves3426 behaves like get container repository storage move list3427 returns container repository storage moves3428 avoids N+1 queries3429 returns the most recently created first3430 permissions3431 is expected to be allowed for :admin3432 is expected to be denied for :user3433 GET /group_repository_storage_moves/:repository_storage_move_id3434 behaves like get single container repository storage move3435 returns a container repository storage move3436 non-existent container repository storage move3437 returns not found3438 permissions3439 is expected to be allowed for :admin3440 is expected to be denied for :user3441 POST /groups/:id/repository_storage_moves3442 schedules a container repository storage move3443 permissions3444 is expected to be allowed for :admin3445 is expected to be denied for :user3446 destination_storage_name is missing3447 schedules a container repository storage move3448 when container does not exist3449 returns not found3450 POST /group_repository_storage_moves3451 schedules the worker3452 source_storage_name is invalid3453 gives an error3454 destination_storage_name is missing3455 schedules the worker3456 destination_storage_name is invalid3457 gives an error3458 normal user3459 is expected to be denied for :user3460Projects::Integrations::Jira::IssuesController3461 GET #index3462 renders the "index" template3463 tracks usage3464 when jira_issues_integration licensed feature is not available3465 behaves like an action that returns a 4043466 returns 4043467 when jira integration is disabled3468 behaves like an action that returns a 4043469 returns 4043470 when jira integration does not exist3471 behaves like an action that returns a 4043472 returns 4043473 behaves like unauthorized when external service denies access3474 allows access when the authorization service allows it3475 allows access when the authorization service denies it3476 when project has moved3477 redirects to the new issue tracker from the old one3478 json request3479 returns a list of serialized jira issues3480 renders bad request for IntegrationError3481 renders bad request for RequestError3482 sets pagination headers3483 when parameters are passed3484 when there are no params3485 behaves like proper parameter values3486 properly set the values3487 when pagination params3488 behaves like proper parameter values3489 properly set the values3490 when state is closed3491 behaves like proper parameter values3492 properly set the values3493 when status param3494 behaves like proper parameter values3495 properly set the values3496 when labels param3497 behaves like proper parameter values3498 properly set the values3499 when author_username param3500 behaves like proper parameter values3501 properly set the values3502 when assignee_username param3503 behaves like proper parameter values3504 properly set the values3505 when invalid params3506 behaves like proper parameter values3507 properly set the values3508 GET #show3509 when jira_issues_integration licensed feature is not available3510 returns 404 status3511 when jira_issues_integration licensed feature is available3512 renders `show` template3513 returns JSON response3514 when the JSON fetched from Jira contains HTML3515 escapes the HTML in issue titles and references3516 when issue was not found3517 returns 404 status3518 returns 404 JSON response3519get list of epics for an epic board list3520 sorting and pagination3521 behaves like sorted paginated query3522 behaves like requires variables3523 shared example requires variables to be set3525 when sorting3526 sorts correctly3527 when paginating3528 paginates correctly3529 with filters3530 finds only epics matching the filter3531 when negated3532 finds only epics matching the negated filter3533API::Geo3534 GET /geo/retrieve/:replicable_name/:replicable_id3535 valid requests3536 returns the file3537 allowed IPs3538 responds with 401 when IP is not allowed3539 responds with 200 when IP is allowed3540 invalid requests3541 responds with 401 with invalid auth header3542 responds with 401 with mismatched params in auth headers3543 responds with 404 when resource is not found3544 POST /geo/status3545 responds with 401 with invalid auth header3546 responds with 401 when the db_key_base is wrong3547 allowed IPs3548 responds with 401 when IP is not allowed3549 responds with 201 when IP is allowed3550 when requesting primary node with valid auth header3551 updates the status and responds with 2013552 ignores invalid attributes upon update3553 behaves like with terms enforced3554 responds with 2xx HTTP response code3555 /geo/proxy_git_ssh3556 POST /geo/proxy_git_ssh/info_refs_upload_pack3557 with all required params missing3558 responds with 4003559 with all required params3560 with an invalid secret_token3561 responds with 4013562 where an exception occurs3563 responds with 5003564 with a valid secret token3565 responds with 2003566 POST /geo/proxy_git_ssh/upload_pack3567 with all required params missing3568 responds with 4003569 with all required params3570 with an invalid secret_token3571 responds with 4013572 where an exception occurs3573 responds with 5003574 with a valid secret token3575 responds with 2013576 POST /geo/proxy_git_ssh/info_refs_receive_pack3577 with all required params missing3578 responds with 4003579 with all required params3580 with an invalid secret_token3581 responds with 4013582 where an exception occurs3583 responds with 5003584 with a valid secret token3585 responds with 2003586 POST /geo/proxy_git_ssh/receive_pack3587 with all required params missing3588 responds with 4003589 with all required params3590 with an invalid secret_token3591 responds with 4013592 where an exception occurs3593 responds with 5003594 with a valid secret token3595 responds with 2013596 GET /geo/proxy3597 rejects requests that bypassed gitlab-workhorse3598 with valid auth3599 when Geo is not being used3600 returns empty data3601 when this is a primary site3602 returns empty data3603 when this is a secondary site with unified URL3604 when a primary exists3605 returns the primary internal URL and extra proxy data3606 when a primary does not exist3607 returns empty data3608 when this is a secondary site with separate URLs3609 when a primary does not exist3610 returns empty data3611 when geo_secondary_proxy_separate_urls feature flag is disabled3612 returns empty data3613 when geo_secondary_proxy_separate_urls feature flag is enabled3614 returns the primary internal URL and extra proxy data3615 POST /geo/node_proxy/:id/graphql3616 denies access if not admin3617 requests the graphql endpoint with the post body and returns the output3618 returns empty output if remote fails3619 behaves like 404 response3620 returns 4043621API::Internal::AppSec::Dast::SiteValidations3622 POST /internal/dast/site_validations/:id/transition3623 when a job token header is not set3624 returns 4013625 when user token is set3626 returns 400 and a contextual error message3627 when a job token header is set3628 when user does not have access to the site validation3629 returns 4033630 when site validation does not exist3631 returns 4043632 when site validation and job are associated with different projects3633 returns 4003634 when the job project belongs to the same job token scope3635 returns 400 and a contextual error message3636 when site validation exists3637 when the licensed feature is not available3638 returns 4033639 when user has access to the site validation3640 when the state transition is unknown3641 returns 400 and a contextual error message3642 when the state transition is invalid3643 returns 400 and a contextual error message3644 when the state transition is valid3645 updates the record3646 behaves like it transitions3647 returns 200 and the new state3648 calls the underlying transition method: #start3649 behaves like it transitions3650 returns 200 and the new state3651 calls the underlying transition method: #fail_op3652 behaves like it transitions3653 returns 200 and the new state3654 calls the underlying transition method: #retry3655 behaves like it transitions3656 returns 200 and the new state3657 calls the underlying transition method: #pass3658API::Invitations EE Invitations3659 POST /groups/:id/invitations3660 behaves like member creation audit event3661 creates an audit event while creating a new member3662 does not create audit event if creating a new member fails3663 behaves like admin signup restrictions email error - denylist3664 behaves like restricted email error3665 returns an http error response and the validation message3666 when the group is restricted by admin signup restrictions3667 behaves like admin signup restrictions email error - allowlist3668 behaves like restricted email error3669 returns an http error response and the validation message3670 behaves like admin signup restrictions email error - email restrictions3671 behaves like restricted email error3672 returns an http error response and the validation message3673 when the group is restricted by group signup restriction - allowed domains for signup3674 behaves like restricted email error3675 returns an http error response and the validation message3676 POST /projects/:id/invitations3677 behaves like member creation audit event3678 creates an audit event while creating a new member3679 does not create audit event if creating a new member fails3680 with group membership locked3681 returns an error and exception message when group membership lock is enabled3682 when the project is restricted by admin signup restrictions3683 behaves like admin signup restrictions email error - denylist3684 behaves like restricted email error3685 returns an http error response and the validation message3686 when the group is restricted by admin signup restrictions3687 behaves like admin signup restrictions email error - allowlist3688 behaves like restricted email error3689 returns an http error response and the validation message3690 behaves like admin signup restrictions email error - email restrictions3691 behaves like restricted email error3692 returns an http error response and the validation message3693 group with LDAP group link3694 POST /groups/:id/invitations3695 returns a forbidden response3696 PUT /groups/:id/invitations/:email3697 returns a forbidden response3698 DELETE /groups/:id/invitations/:email3699 returns a forbidden response3700Subscriptions::GroupsController3701 GET #edit3702 with an unauthenticated user3703 is expected to respond with numeric status code redirect3704 is expected to redirect to "/users/sign_in"3705 with an authenticated user3706 is expected to respond with numeric status code ok3707 PUT #update3708 with an unauthenticated user3709 is expected to respond with numeric status code redirect3710 is expected to redirect to "/users/sign_in"3711 with an authenticated user who is not a group owner3712 is expected to respond with numeric status code ok3713 is expected to render template edit3714 does not update the name3715 with an authenticated user3716 updates the name3717 updates the path3718 updates the visibility_level3719 redirects to the group path3720 sets flash notice3721 with new_user param3722 sets flash notice3723 when the group cannot be saved3724 does not update the name3725 does not update the path3726 re-renders the edit template3727Groups::IssuesController3728 POST #bulk_update3729 when group bulk edit feature is not enabled3730 returns 404 status3731 when group bulk edit feature is enabled3732 when user has permissions to bulk update issues3733 returns status 2003734 updates issues milestone and epic3735 when params are incorrect3736 returns 422 status3737 when user does not have permissions to bulk update issues3738 returns status 4043739 does not update issues milestone or epic3740API::ResourceIterationEvents3741 when eventable is an Issue3742 behaves like resource_iteration_events API3743 GET /projects/:id/issues/:noteable_id/resource_iteration_events3744 returns an array of resource iteration events3745 returns a 404 error when eventable id not found3746 returns 404 when not authorized3747 GET /projects/:id/issues/:noteable_id/resource_iteration_events/:event_id3748 returns a resource iteration event by id3749 returns 404 when not authorized3750 returns a 404 error if resource iteration event not found3751 pagination3752 returns the second page3753Update an external audit event destination3754 when feature is licensed3755 when current user is a group owner but destination belongs to another group3756 behaves like a mutation on an unauthorized resource3757 behaves like a mutation that returns top-level errors3758 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"3759 behaves like a mutation that does not update a destination3760 does not destroy the destination3761 does not audit the update3762 when current user is a group owner of a different group3763 behaves like a mutation on an unauthorized resource3764 behaves like a mutation that returns top-level errors3765 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"3766 behaves like a mutation that does not update a destination3767 does not destroy the destination3768 does not audit the update3769 when current user is a group owner3770 updates the destination3771 audits the update3772 when current user is a group maintainer3773 behaves like a mutation that does not update a destination3774 does not destroy the destination3775 does not audit the update3776 when current user is a group developer3777 behaves like a mutation that does not update a destination3778 does not destroy the destination3779 does not audit the update3780 when current user is a group guest3781 behaves like a mutation that does not update a destination3782 does not destroy the destination3783 does not audit the update3784 when feature is unlicensed3785 does not destroy the destination3786 behaves like a mutation on an unauthorized resource3787 behaves like a mutation that returns top-level errors3788 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"3789API::ProjectImport3790 POST /projects/import3791/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil3792 overrides the classification label3793 feature is disabled3794/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil3795 uses the default the classification label and ignores override param3796API::GeoReplication3797 GET /geo_replication/designs3798 retrieves the designs if admin is logged in3799 retrieves the designs according to search term3800 denies access if not admin3801 PUT /geo_replication/designs/:id/resync3802 marks registry record for resync3803 denies access if not admin3804 POST /geo_replication/designs/resync3805 marks registry record for resync3806 denies access if not admin3807Query.instanceSecurityDashboard.projects3808 with logged in user3809 requesting projects in the dashboard3810 behaves like a working graphql query3811 returns a successful response3812 finds only projects that were added to instance security dashboard3813 when loading vulnerabilityGrades alongside with Vulnerability.userNotesCount3814 behaves like a working graphql query3815 returns a successful response3816 finds vulnerability grades for only projects that were added to instance security dashboard3817 requesting clusterAgents in the dashboard3818 behaves like a working graphql query3819 returns a successful response3820 finds only projects that were added to instance security dashboard3821 with no user3822 behaves like a working graphql query3823 returns a successful response3824 is expected to be nil3825Projects::RequirementsManagement::RequirementsController3826 POST #import_csv3827 unauthorized3828 when user is not signed in3829 behaves like response with 404 status3830 returns 4043831 with project member with a guest role3832 behaves like response with 404 status3833 returns 4043834 authorized3835 when requirements feature is available and member is a reporter3836 shows error when upload fails3837 behaves like response with success status3838 returns 200 status and success message3839 when file extension is in upper case3840 behaves like response with success status3841 returns 200 status and success message3842 when file extension is not csv3843 returns error message3844 when requirements feature is not available3845 behaves like response with 404 status3846 returns 4043847 POST #authorize3848 with authorized user3849 when requirements feature is enabled3850 behaves like handle uploads authorize request3851 POST authorize3852 authorizes workhorse header3853 rejects requests that bypassed gitlab-workhorse3854 when using remote storage3855 when direct upload is enabled3856 responds with status 200, location of file remote store and object details3857 when direct upload is disabled3858 handles as a local file3859 when requirements feature is disabled3860 behaves like response with 404 status3861 returns 4043862 with unauthorized user3863 behaves like response with 404 status3864 returns 4043865Projects::DeployKeysController3866 POST create3867 records an audit event3868 /enable/:id3869 with user with permission3870 records an audit event3871 returns 4043872 /disable/:id3873 with admin3874 records an audit event3875Security::ProjectsController3876 GET #index3877 behaves like Security::ApplicationController3878 when the user is authenticated3879 responds with success3880 and the instance does not have an Ultimate license3881 404s3882 when the user is not authenticated3883 redirects the user to the sign in page3884 with an authenticated user3885 returns the current user's security dashboard projects3886 sets a polling interval header3887 POST #create3888 behaves like Security::ApplicationController3889 when the user is authenticated3890 responds with success3891 and the instance does not have an Ultimate license3892 404s3893 when the user is not authenticated3894 redirects the user to the sign in page3895 with an authenticated user3896 adds the given projects to the current user's security dashboard3897 when given a project that is already added to the dashboard3898 does not add the same project twice and returns the duplicate IDs in the response3899 when given an invalid project ID3900 does not error and includes them in the response3901 with an authenticated auditor3902 allows them to add projects to the dashboard3903 DELETE #destroy3904 with an authenticated user3905 removes the project from the current user's security dashboard3906 and the instance does not have an Ultimate license3907 404s3908 when given a project not on the current user's security dashboard3909 does nothing and returns 2043910 when the user is not authenticated3911 redirects the user to the sign in page3912Projects::Security::DashboardController3913 when the "Security & Compliance" feature is disabled3914 is expected to respond with numeric status code not_found3915 behaves like SecurityDashboardsPermissions3916 access for all actions3917 when security dashboard feature is disabled3918 returns 4043919 when security dashboard feature is enabled3920 when user has guest access3921 denies access3922 when user has developer access3923 grants access3924 GET #index3925 when project has no vulnerabilities3926 renders empty state3927 when project has vulnerabilities3928 renders dashboard with vulnerability metadata3929Updating a Requirement3930 when the user does not have permission3931 behaves like requirement update fails3932 does not update requirement3933 behaves like a mutation that returns a top-level access error3934 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"3935 when the user has permission3936 when requirements are disabled3937 behaves like requirement update fails3938 does not update requirement3939 behaves like a mutation that returns a top-level access error3940 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"3941 when requirements are enabled3942DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3943DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3944 updates the requirement3945 when there are ActiveRecord validation errors3946DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3947DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3948 does not update the requirement3949 behaves like a mutation that returns errors in the response3950DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3951DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3952 is expected to contain exactly "Title can't be blank"3953 when there are no update params3954 behaves like a mutation that returns top-level errors3955 is expected to contain exactly "At least one of title, state, last_test_report_state, description is required"3956Creating an iteration cadence3957 when the user does not have permission3958 does not create iteration cadence3959 behaves like a mutation that returns a top-level access error3960 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"3961 when the user has permission3962 when iterations feature is disabled3963 behaves like a mutation that returns top-level errors3964 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"3965 when iterations feature is enabled3966 creates the iteration cadence for a group3967 when creating a manual iteration cadence3968 behaves like a mutation that returns errors in the response3969 is expected to contain exactly "Manual iteration cadences are deprecated. Only automatic iteration cadences are allowed."3970 when iteration_cadences feature flag is disabled3971 behaves like a mutation that returns errors in the response3972 is expected to contain exactly "Operation not allowed"3973 when there are ActiveRecord validation errors3974 does not create the iteration cadence3975 behaves like a mutation that returns errors in the response3976 is expected to contain exactly "Iterations in advance can't be blank", "Start date can't be blank", and "Title can't be blank"3977 when required arguments are missing3978 returns error about required argument3979 does not create the iteration cadence3980Query.project(fullPath).dastSiteProfiles3981 when a user does not have access to the project3982 returns a null project3983 when a user does not have access to dast_site_profiles3984 returns an empty edges array3985 when a user has access dast_site_profiles3986 returns populated edges array3987 returns a populated edges array containing a dast_site_profile associated with the project3988 avoids N+1 queries3989 when there are fewer dast_site_profiles than the page limit3990 indicates there are no more pages available3991 when there are more dast_site_profiles than the page limit3992 indicates there are more pages available3993 when on demand scan licensed feature is not available3994 returns an empty edges array3995Creating a new HTTP Integration3996 stores the custom mapping params3997 behaves like creating a new HTTP integration3998 creates a new integration3999 without required argument project_path4000 behaves like an invalid argument to the mutation4001 behaves like a mutation that returns top-level errors4002 is expected to contain exactly (include "invalid value for projectPath")4003 without required argument active4004 behaves like an invalid argument to the mutation4005 behaves like a mutation that returns top-level errors4006 is expected to contain exactly (include "invalid value for active")4007 without required argument name4008 behaves like an invalid argument to the mutation4009 behaves like a mutation that returns top-level errors4010 is expected to contain exactly (include "invalid value for name")4011 with the custom mappings feature unavailable4012 behaves like ignoring the custom mapping4013 creates integration without the custom mapping params4014 behaves like validating the payload_example4015 validates the payload_example size4016 with invalid payloadExample attribute4017 responds with errors4018 behaves like validating the payload_attribute_mappings4019 with invalid payloadAttributeMapping attribute does not contain fieldName4020 responds with errors4021 with invalid payloadAttributeMapping attribute does not contain path4022 responds with errors4023 with invalid payloadAttributeMapping attribute does not contain type4024 responds with errors4025Projects::InsightsController4026 when insights configuration project cannot be read by current user4027 GET #show.html4028 behaves like 404 status4029 returns 404 status4030 GET #show.json4031 behaves like 404 status4032 returns 404 status4033 POST #query4034 behaves like 404 status4035 returns 404 status4036 when insights configuration project can be read by current user4037 GET #show.html4038 behaves like 200 status4039 returns 200 status4040 GET #show.json4041 behaves like 200 status4042 returns 200 status4043 POST #query.json4044 behaves like 200 status4045 returns 200 status4046 when using the legacy format4047 behaves like 200 status4048 returns 200 status4049 GET #show4050 behaves like tracking unique visits4051 tracks unique visit if the format is HTML4052 tracks unique visit if DNT is not enabled4053 does not track unique visit if DNT is enabled4054 does not track unique visit if the format is JSON4055Add an issue to an Epic4056 when epics feature is disabled4057 behaves like mutation without access4058 does not add issue to the epic4059 behaves like a mutation that returns a top-level access error4060 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"4061 when epics feature is enabled4062 when the user is a group member4063 adds the issue to the epic4064 when the user is not a group member4065 behaves like mutation without access4066 does not add issue to the epic4067 behaves like a mutation that returns a top-level access error4068 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"4069Query.project(fullPath).dastScannerProfiles4070 when a user does not have access to the project4071 project response4072 is expected to be nil4073 when the user can run a dast scan4074 dast scanner profiles4075 is expected to be empty4076 when a user has access to multiple projects4077 dast scanner profiles4078 returns only the dast_scanner_profile for the requested project4079 when a user has access dast_scanner_profiles4080 dast scanner profiles4081 is expected not to be empty4082 first dast scanner profile id4083 is expected to eq "gid://gitlab/DastScannerProfile/1"4084Create a Compliance Framework4085 framework feature is unlicensed4086 behaves like a mutation that returns errors in the response4087 is expected to contain exactly "Not permitted to create framework"4088 pipeline configuration feature is unlicensed4089 behaves like a mutation that returns errors in the response4090 is expected to contain exactly "Pipeline configuration full path feature is not available"4091 feature is licensed4092 namespace is a personal namespace4093 current_user is namespace owner4094 does not create a new compliance framework4095 behaves like a mutation that returns errors in the response4096 is expected to contain exactly "Failed to create framework" and "Namespace must be a group, user namespaces are not supported."4097 namespace is a group4098 current_user is group owner4099 behaves like a mutation that creates a compliance framework4100 creates a new compliance framework4101 returns the newly created framework4102 current_user is not a group owner4103 current_user is group owner4104 does not create a new compliance framework4105 behaves like a mutation that returns errors in the response4106 is expected to contain exactly "Not permitted to create framework"4107getting Alert Management HTTP Integrations4108 with integrations4109 without project permissions4110 is expected to be nil4111 behaves like a working graphql query4112 returns a successful response4113 with developer permissions4114 is expected to eq []4115 behaves like a working graphql query4116 returns a successful response4117 with maintainer permissions4118 when no extra params given4119 is expected to eq 24120 returns the correct properties of the integrations4121 behaves like a working graphql query4122 returns a successful response4123 when HTTP Integration ID is given4124 returns the correct properties of the integration4125 behaves like a working graphql query4126 returns a successful response4127 behaves like GraphQL query with several integrations requested4128 when several HTTP integrations requested4129 returns the correct properties of the integrations4130 batches queries4131Query.vulnerabilities.description4132 when vulnerability has no description and finding has description4133 returns finding information4134 when vulnerability has description and finding has description4135 returns finding information4136Admin::Geo::ReplicablesController4137 GET /admin/geo/replicables/:replicable_name_plural4138 behaves like license required4139 without a valid license4140 is expected to respond with numeric status code forbidden4141 with a valid license4142 when Geo is not enabled4143 is expected to redirect to "/admin/geo/sites"4144 when on a Geo primary4145 is expected to redirect to "/admin/geo/sites"4146 when on a Geo secondary4147 is expected to redirect to "/admin/geo/sites/16/replication/replicable"4148 GET /admin/geo/sites/:id/replicables/:replicable_name_plural4149 behaves like license required4150 without a valid license4151 is expected to respond with numeric status code forbidden4152 with a valid license4153 current_node: nil4154 loads node data4155 is expected not to be redirect4156 includes expected current and target ids4157 current_node: where(:current_node) { [nil, lazy { primary_node }, lazy { secondary_node }] }4158 loads node data4159 is expected not to be redirect4160 includes expected current and target ids4161 current_node: where(:current_node) { [nil, lazy { primary_node }, lazy { secondary_node }] }4162 loads node data4163 is expected not to be redirect4164 includes expected current and target ids4165Projects::Quality::TestCasesController4166 GET4167 #index4168 behaves like test case action4169 with authorized user4170 when feature is available4171 renders the template4172 when feature is not available4173 returns 4044174 with unauthorized user4175 when feature is available4176 returns 4044177 with anonymous user4178 returns 3024179 #new4180 behaves like test case action4181 with authorized user4182 when feature is available4183 renders the template4184 when feature is not available4185 returns 4044186 with unauthorized user4187 when feature is available4188 returns 4044189 with anonymous user4190 returns 3024191 #show4192 behaves like test case action4193 with authorized user4194 when feature is available4195 renders the template4196 when feature is not available4197 returns 4044198 with unauthorized user4199 when feature is available4200 returns 4044201 with anonymous user4202 returns 3024203 when feature is enabled and user has access4204 assigns test case related variables4205 when test case is not found4206 returns 4044207Update a compliance framework4208 feature is unlicensed4209 behaves like a mutation that returns top-level errors4210 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"4211 feature is licensed but disabled4212 behaves like a mutation that returns top-level errors4213 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"4214 feature is licensed4215 with valid params4216 returns an empty array of errors4217 returns the updated framework4218 pipeline configuration full path4219 when compliance pipeline configuration feature is available4220 updates the pipeline configuration path attribute4221 when compliance pipeline configuration feature is not available4222 returns an error4223 current_user is not permitted to update framework4224 behaves like a mutation that returns top-level errors4225 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"4226 with invalid params4227 returns an array of errors4228 does not update the framework4229CredentialsInventoryMailer4230 #personal_access_token_revoked_email4231 is expected to have subject of "Your Personal Access Token was revoked"4232 is expected to have body including "The following Personal Access Token was revoked by an administrator, Revoker"4233 is expected to have body including "PAT 857"4234 is expected to have body including "Created on Aug 1, 2022"4235 is expected to have body including "Scopes: api, sudo"4236 is expected to be delivered to ["user1886@example.org"]4237 is expected to have body including "Last used 21 days ago"4238 #ssh_key_deleted_email4239 is expected to have subject of "Your SSH key was deleted"4240 is expected to have body including "The following SSH key was deleted by an administrator, Revoker"4241 is expected to be delivered to ["user1887@example.org"]4242 is expected to have body including "My title 685"4243 is expected to have body including "Created on Aug 1, 2022"4244 is expected to have body including "Last used 21 days ago"4245API::Iterations4246 GET /groups/:id/iterations4247 excludes ancestor iterations when include_ancestors is set to false4248 behaves like iterations list4249 when user does not have access4250 returns 4044251 when user has access4252 returns a list of iterations4253 returns iterations filtered by title4254 returns 400 when param is invalid4255 filter by iteration state4256 returns `closed` state iterations4257 returns `current` state iterations4258 returns `current` state iterations4259 GET /projects/:id/iterations4260 return direct parent group iterations when include_ancestors is set to false4261 behaves like iterations list4262 when user does not have access4263 returns 4044264 when user has access4265 returns a list of iterations4266 returns iterations filtered by title4267 returns 400 when param is invalid4268 filter by iteration state4269 returns `closed` state iterations4270 returns `current` state iterations4271 returns `current` state iterations4272Admin::Licenses::UsageExportsController4273 GET show4274 with no current license4275 redirects the user4276 does not update the license usage data exported flag4277 does not attempt to create the CSV4278 with a current license4279 returns a csv file in response4280 returns the expected response body4281 when current license is an offline cloud license4282 updates the license usage data exported flag4283 when current license is an online cloud license4284 does not update the license usage data exported flag4285 when current license is a legacy license4286 does not update the license usage data exported flag4287 when data export fails4288 does not update the license usage data exported flag4289Destroy an epic board list4290 behaves like board lists destroy request4291 when the user does not have permission4292 does not destroy the list4293 returns an error4294 when the user has permission4295 when given id is not for a list4296 returns an error4297 when list does not exist4298 returns a top level error4299 when everything is ok4300 destroys the list4301 returns an empty list4302 when the list is not destroyable4303 behaves like does not destroy the list and returns an error4304 does not destroy the list4305 returns an error and not nil list4306Query.project(fullPath).dastSiteValidations4307 when a user does not have access to the project4308 returns a null project4309 when a user does not have access to dast_site_validations4310 returns an empty nodes array4311 when a user has access to dast_site_validations4312 avoids N+1 queries4313 behaves like sorted paginated query4314 behaves like requires variables4315 shared example requires variables to be set4317 when sorting4318 sorts correctly4319 when paginating4320 paginates correctly4321Emails::AdminNotification4322 user_auto_banned_email4323 is sent to the administrator4324 has the correct subject4325 includes the name of the user4326 includes the scope of the ban4327 includes the reason4328 includes a link to unban the user4329 includes a link to change the settings4330 includes the email reason4331 behaves like an email sent from GitLab4332 has the characteristics of an email sent from GitLab4333 behaves like it should not have Gmail Actions links4334 is expected not to have body including "ViewAction"4335 behaves like a user cannot unsubscribe through footer link4336 does not have a List-Unsubscribe header or a body link4337 behaves like appearance header and footer enabled4338 contains header and footer4339 behaves like appearance header and footer not enabled4340 does not contain header and footer4341 when scoped to a group4342 includes the scope of the ban4343 includes a link to unban the user4344 includes a link to change the settings4345Projects::BranchesController4346 GET #index4347 for mirrored projects with diverged branch4348 renders the diverged from upstream partial4349Setting assignees of a merge request4350 adds the assignees to the merge request4351 with assignees already assigned4352 removes assignees not in the list4353 when passing append as true4354 does not remove users not in the list4355 performance4356 is scalable4357Creating a DAST Scanner Profile4358 behaves like an on-demand scan mutation when user cannot run an on-demand scan4359 when a user does not have access to the project4360 behaves like a mutation that returns a top-level access error4361 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"4362 when a user does not have access to run a dast scan on the project4363 behaves like a mutation that returns a top-level access error4364 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"4365 behaves like an on-demand scan mutation when user can run an on-demand scan4366 returns an empty errors array4367 returns the dast_scanner_profile id4368 sets default values of omitted properties4369 when on demand scan licensed feature is not available4370 behaves like a mutation that returns a top-level access error4371 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"4372 when dast_scanner_profile exists4373 returns errors4374Admin::Geo::NodesController4375 #index4376 with valid license4377 does not show license alert4378 without valid license4379 does show license alert4380 does not redirects to the 403 page4381 #create4382 without add-on license4383 behaves like unlicensed geo action4384 redirects to the 403 page4385 with add-on license4386 delegates the create of the Geo node to Geo::NodeCreateService4387 #update4388 without add-on license4389 behaves like unlicensed geo action4390 redirects to the 403 page4391 with add-on license4392 updates the node4393 delegates the update of the Geo node to Geo::NodeUpdateService4394Setting weight of an issue4395 returns an error if the user is not allowed to update the issue4396 when weight is a number4397 updates the issue weight4398 when weight is null4399 updates the issue weight4400 when weight is not an integer4401 raises invalid value error4402Query.project(fullPath).dastSiteProfile4403 when a user does not have access to the project4404 returns a null project4405 when a user does not have access to dast_site_profiles4406 returns a null dast_site_profile4407 when a user has access to dast_site_profiles4408 returns a dast_site_profile4409 when the wrong type of global id is supplied4410 returns a null dast_site_profile4411 when on demand scan licensed feature is not available4412 returns a null dast_site_profile4413 when there is no associated dast_site_validation4414 returns a none validation status4415Projects::Settings::IntegrationsController4416 sets correct services list4417 enables SlackSlashCommands and disables GitlabSlackApplication4418 enables GitlabSlackApplication and disables SlackSlashCommands4419 without a license key4420 behaves like endpoint with some disabled integrations4421 has some disabled integrations4422 with a license key4423 when checking if namespace plan is enabled4424 behaves like endpoint with some disabled integrations4425 has some disabled integrations4426 when checking if namespace plan is not enabled4427 behaves like endpoint without disabled integrations4428 does not have disabled integrations4429Query current user groups4430 when permission_scope is CREATE_PROJECTS4431 behaves like a working graphql query4432 returns a successful response4433 when ip_restrictions feature is enabled4434 when check_namespace_plan setting is enabled4435 behaves like no N + 1 DB queries4436 avoids N+1 queries4437 when check_namespace_plan setting is disabled4438 behaves like no N + 1 DB queries4439 avoids N+1 queries4440get list of epic boards4441 when the user does not have access to the epic board group4442 returns nil group4443 when user can access the epic board group4444 sorting and pagination4445 behaves like sorted paginated query4446 behaves like requires variables4447 shared example requires variables to be set4449 when sorting4450 sorts correctly4451 when paginating4452 paginates correctly4453 field values4454 returns the correct values for hiding board lists4455Projects::AutocompleteSourcesController4456 #epics4457 when epics feature is disabled4458 returns 404 status4459 when epics feature is enabled4460 #epics4461 returns the correct response4462 #vulnerabilities4463 when vulnerabilities feature is disabled4464 returns 404 status4465 when vulnerabilities feature is enabled4466 #vulnerabilities4467 returns the correct response4468API::ElasticsearchIndexedNamespaces4469 PUT /elasticsearch_indexed_namespaces/rollout4470 prohibits non-admin4471 invokes ElasticNamespaceRolloutWorker rollout4472 when parameters are incorrect4473 percentage: -1, plan: "ultimate"4474 errs4475 percentage: 101, plan: "ultimate"4476 errs4477 percentage: nil, plan: "ultimate"4478 errs4479 percentage: 1, plan: nil4480 errs4481 percentage: 1, plan: "foobar"4482 errs4483 PUT /elasticsearch_indexed_namespaces/rollback4484 prohibits non-admin4485 invokes ElasticNamespaceRolloutWorker rollback4486 when parameters are incorrect4487 percentage: -1, plan: "ultimate"4488 errs4489 percentage: 101, plan: "ultimate"4490 errs4491 percentage: nil, plan: "ultimate"4492 errs4493 percentage: 1, plan: nil4494 errs4495 percentage: 1, plan: "foobar"4496 errs4497Update a DAST Scanner Profile4498 behaves like an on-demand scan mutation when user cannot run an on-demand scan4499 when a user does not have access to the project4500 behaves like a mutation that returns a top-level access error4501 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"4502 when a user does not have access to run a dast scan on the project4503 behaves like a mutation that returns a top-level access error4504 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"4505 behaves like an on-demand scan mutation when user can run an on-demand scan4506 returns an empty errors array4507 returns the dast_scanner_profile4508 updates the dast_scanner_profile4509 when on demand scan licensed feature is not available4510 behaves like a mutation that returns a top-level access error4511 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"4512 when there is an issue updating the dast_scanner_profile4513 behaves like a mutation that returns errors in the response4514 is expected to contain exactly "Name has already been taken"4515 when the dast_scanner_profile does not exist4516 behaves like a mutation that returns top-level errors4517 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"4518Projects::Analytics::CycleAnalytics::SummaryController4519 GET "time_summary"4520 when cycle_analytics_for_projects feature is available4521 succeeds4522 returns correct value4523 when the use_vsa_aggregated_tables FF is off4524 returns correct value4525 when analytics_disabled features are disabled4526 renders 4044527 when user is not part of the project4528 renders 4044529 when the feature is not available4530 renders 4044531Creating a Requirement4532 when the user does not have permission4533 does not create requirement4534 behaves like a mutation that returns a top-level access error4535 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"4536 when the user has permission4537 when requirements are disabled4538 behaves like a mutation that returns top-level errors4539 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"4540 when requirements are enabled4541DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.4542DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.4543 creates the requirement4544 when there are ActiveRecord validation errors4545 does not create the requirement4546 behaves like a mutation that returns errors in the response4547 is expected to contain exactly "Title can't be blank"4548Delete a compliance framework4549 feature is unlicensed4550 does not destroy a compliance framework4551 behaves like a mutation that returns top-level errors4552 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"4553 when licensed4554 current_user is namespace owner4555 has no errors4556 destroys a compliance framework4557 current_user is not namespace owner4558 does not destroy a compliance framework4559 behaves like a mutation that returns top-level errors4560 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"4561Admin::UsersController4562 GET #index4563 eager loads obstacles to user deletion4564 POST update4565 updating name4566 when `disable_name_update_for_users` feature is available4567 when the ability to update their name is disabled for users4568 behaves like admin can update the name of a user4569 updates the name4570 when the ability to update their name is not disabled for users4571 behaves like admin can update the name of a user4572 updates the name4573 when `disable_name_update_for_users` feature is not available4574 behaves like admin can update the name of a user4575 updates the name4576 POST #reset_runner_minutes4577 when the reset is successful4578 redirects to group path4579 POST #impersonate4580 enqueues a new worker4581Adding a Note to an Epic4582 when the user does not have permission4583 behaves like a Note mutation when the user does not have permission4584 behaves like a Note mutation that does not create a Note4585 is expected not to change `Note.count`4586 behaves like a mutation that returns top-level errors4587 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"4588 when the user has permission4589 behaves like a Note mutation with confidential notes4590 returns a Note with confidentiality enabled4591 behaves like a Note mutation that creates a Note4592 is expected to change `Note.count` by 14593Create a milestone or assignee board list4594 the user is not allowed to read board lists4595 behaves like a mutation that returns a top-level access error4596 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"4597 when user has permissions to admin board lists4598 milestone list4599 creates the list4600 assignee list4601 creates the list4602Groups::Security::ComplianceDashboardsController4603 GET show4604 when compliance dashboard feature is enabled4605 and user is allowed to access group compliance dashboard4606 is expected to respond with numeric status code success4607 behaves like tracking unique visits4608 tracks unique visit if the format is HTML4609 tracks unique visit if DNT is not enabled4610 does not track unique visit if DNT is enabled4611 does not track unique visit if the format is JSON4612 when user is not allowed to access group compliance dashboard4613 is expected to respond with numeric status code not_found4614 when compliance dashboard feature is disabled4615 is expected to respond with numeric status code not_found4616Setting the epic of an issue4617 returns an error if the user is not allowed to update the issue4618 returns an error if issue can not be updated4619 promotes the issue to epic4620 when epic has to be in a different group4621 when user cannot create epic in new group4622 does not promote the issue to epic4623 when user can create epic in new group4624 promotes the issue to epic4625Update list limit metrics4626 returns an error if the list cannot be found4627 updates the list limit metrics for limit metric all_metrics4628 updates the list limit metrics for limit metric issue_count4629 updates the list limit metrics for limit metric issue_weights4630 the current_user is not allowed to update the issue4631 returns an error4632 the list_id is not a valid ListID4633 behaves like an invalid argument to the mutation4634 behaves like a mutation that returns top-level errors4635 is expected to contain exactly (include "invalid value for listId")4636NamespaceCiCdSettingsUpdate4637 when unauthorized4638 when not a namespace member4639 behaves like unauthorized4640 returns an error4641 when a non-admin namespace member4642 behaves like unauthorized4643 returns an error4644 when authorized4645 updates allow_stale_runner_pruning?4646 does not update allow_stale_runner_pruning? if not specified4647 when bad arguments are provided4648 returns the errors4649EE::Emails::MergeRequests4650 #add_merge_request_approver_email4651 when email_author_in_body is set4652 has the correct body with the name of the person who added the approver4653 when email_author_in_body is not set4654 has the correct body without the name of the person who added the approver4655Git LFS File Locking API4656 Create File Lock endpoint4657 with an exceeded namespace storage limit4658 does not create the lock4659 Listing File Locks endpoint4660 with an exceeded namespace storage limit4661 returns the list of locked files4662 List File Locks for verification endpoint4663 with an exceeded namespace storage limit4664 rejects the request4665 Delete File Lock endpoint4666 with an exceeded namespace storage limit4667 does not delete the lock4668Getting ancestors of an epic4669 when epics are enabled4670 finds ancestors from group4671 when user has access to the parent group epics4672 finds ancestors from group and parent group4673 when epics are disabled4674 does not find the epic ancestors4675Create a timelog4676 when issuable is an Epic4677 behaves like issuable does not support timelog creation mutation4678 when the user is anonymous4679 behaves like a mutation that returns a top-level access error4680 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"4681 when the user is a guest member of the namespace4682 behaves like a mutation that returns top-level errors4683 is expected to contain exactly (include "is not a valid ID for")4684 when user has permissions to create a timelog4685 behaves like a mutation that returns top-level errors4686 is expected to contain exactly (include "is not a valid ID for")4687group compliance frameworks4688 when compliance frameworks feature is unlicensed4689 GET /groups/:group/-/compliance_frameworks/new4690 returns 404 not found4691 GET /groups/:group/-/compliance_frameworks/:id/edit4692 returns 404 not found4693 when compliance frameworks feature is licensed4694 GET /groups/:group/-/compliance_frameworks/new4695 renders template4696 with unauthorized user4697 returns 404 not found4698 GET /groups/:group/-/compliance_frameworks/:id/edit4699 renders template4700 with unauthorized user4701 returns 404 not found4702getting merge request listings (EE) nested in a project4703 when requesting approval fields4704 exposes approval metadata4705Query.vulnerabilities.details4706 returns a vulnerability details4707getting iterations4708 query for iteration cadence4709 returns all group cadences4710 by global id4711 fetching cadences from group level4712 behaves like returns cadence by id4713 returns cadence4714 from a different group4715 behaves like returns cadence by id4716 returns cadence4717 fetching cadences from project level4718 behaves like returns cadence by id4719 returns cadence4720Groups::UsageQuotasController4721 GET #index4722 behaves like seat count alert4723 when the namespace qualifies for the alert4724 sets the seat_count_data4725 when the feature flag is disabled4726 sets the seat_count_data to nil4727 when the namespace does not qualify for the alert4728 sets the seat_count_data to nil4729 GET #pending_members4730 renders the pending members index4731 when user cap feature is unavailable4732 returns 4044733Query.work_item(id)4734 when the user can read the work item4735 when querying widgets4736 weight widget4737 when issuable weights is licensed4738 returns widget information4739 when issuable weights is unlicensed4740 returns without weight4741Emails::UserCap4742 #user_cap_reached4743 is expected to have subject of "Important information about usage on your GitLab instance"4744 is expected to be delivered to ["user2066@example.org"]4745 is expected to have body including "Your GitLab instance has reached the maximum allowed"4746 is expected to have body including "user cap"4747Lock/unlock project's file path4748 when the user does not have permission4749 does not create requirement4750 behaves like a mutation that returns a top-level access error4751 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"4752 when the user has permission4753 creates the path lock4754 when there are validation errors4755 behaves like a mutation that returns errors in the response4756 is expected to contain exactly "You have no permissions"4757API::Ldap4758 GET /ldap/groups4759 when unauthenticated4760 returns authentication error4761 when authenticated as user4762 returns authentication error4763 when group owners are allowed to manage LDAP4764 returns an array of ldap groups4765 when authenticated as admin4766 returns an array of ldap groups4767 GET /ldap/ldapmain/groups4768 when unauthenticated4769 returns authentication error4770 when authenticated as user4771 returns authentication error4772 when group owners are allowed to manage LDAP4773 returns an array of ldap groups4774 when authenticated as admin4775 returns an array of ldap groups4776Groups::Security::VulnerabilitiesController4777 GET index4778 when security dashboard feature is enabled4779 and user is allowed to access group security vulnerabilities4780 is expected to respond with numeric status code ok4781 when user is not allowed to access group security vulnerabilities4782 is expected to respond with numeric status code ok4783 is expected to render template unavailable4784 when security dashboard feature is disabled4785 is expected to respond with numeric status code ok4786 is expected to render template unavailable4787API::Features4788 POST /feature4789 when running on a Geo primary node4790 creates Geo cache invalidation event4791 when licensed feature name is given4792 returns bad request4793 when force=1 is set4794 allows to change state4795 DELETE /feature/:name4796 when running on a Geo primary node4797 creates Geo cache invalidation event4798Query.vulnerabilities.primaryIdentifier4799 returns a vulnerability identifiers4800ProfilesController4801 PUT update4802 updating name4803 when `disable_name_update_for_users` feature is available4804 when the ability to update thier name is not disabled for users4805 behaves like a user can update their name4806 updates their name4807 behaves like a user can update their name4808 updates their name4809 when the ability to update their name is disabled for users4810 as a regular user4811 does not update their name4812 as an admin in admin mode4813 behaves like a user can update their name4814 updates their name4815 when `disable_name_update_for_users` feature is not available4816 behaves like a user can update their name4817 updates their name4818 behaves like a user can update their name4819 updates their name4820view usage quotas4821 GET /groups/:group/-/usage_quotas4822 when storage size is over limit4823 does not display storage alert4824Groups::LdapsController4825 POST #sync4826 transitions to the pending state4827 notifies user that the group is already pending4828 returns an error if the group does not validate4829getting a compliance frameworks list for a project4830 when the project has no compliance framework assigned4831 is an empty array4832 when the project has a compliance framework assigned4833 includes its name4834API::Submodules4835 PUT /projects/:id/repository/submodule/:submodule4836 with an exceeded namespace storage limit4837 rejects the request4838API::V3::Github4839 GET /repos/:namespace/:project/pulls4840 returns status 2004841 group_ip_restriction4842 returns 404 for request from ip not in the range4843Mutations::Boards::EpicBoards::Create4844 when the user does not have permission4845 behaves like a mutation that returns a top-level access error4846 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"4847 when the user has permission4848 returns the created board4849 when create fails4850 returns an error4851callout alerts4852 new_user_signups_cap_reached4853 when cap reached4854 behaves like a visible alert4855 shows the alert4856 when cap not reached4857 behaves like a hidden alert4858 does not show the alert4859 when user is not admin4860 behaves like a hidden alert4861 does not show the alert4862Query.runners4863 Query.runners4864 with upgradeStatus argument4865 with deprecated CiRunnerUpgradeStatusType enum type4866 returns upgradeStatus for all runners4867 with new CiRunnerUpgradeStatus enum type4868 returns upgradeStatus for all runners4869Updating an escalation policy4870 updates the escalation policy4871 when rules are provided out of order4872 successfully creates the policy and reorders the rules4873Query.project(fullPath).scanResultPolicies4874 returns both user and group approvers4875Admin::SubscriptionsController4876 GET /subscriptions4877 when the user is not admin4878 responds with 4044879 when the user an admin4880 renders the Activation Form4881UploadsController4882 GET show4883 when viewing issuable metric images4884 responds with status 2004885Profiles::PreferencesController4886 PATCH update4887 when security dashboard feature enabled4888 and valid group view choice is submitted4889 changes the user's preferences4890 and an invalid group view choice is submitted4891 responds with an error message4892 when security dashboard feature is disabled4893 when security dashboard feature enabled4894 is expected not to change `user.reload.group_view_security_dashboard?`4895Removing an escalation policy4896 removes the escalation policy4897Admin::ImpersonationsController4898 DELETE destroy4899 when signed in4900 when impersonating4901 enqueues a new worker4902contribution analytics4903 redirects from -/analytics to -/analytics/value_stream_analytics4904CreateApiFuzzingCiConfiguration4905 returns a YAML snippet that can be used to configure API fuzzing scans for the project4906PasswordsController4907 #create4908 is expected to change `AuditEvent.count` by 14909Oauth::ApplicationsController4910 project members4911 POST #create4912 logs the audit event4913Knapsack report was generated. Preview:4914{4915 "ee/spec/controllers/projects/merge_requests_controller_spec.rb": 202.56319159600025,4916 "ee/spec/requests/api/projects_spec.rb": 139.6959283210008,4917 "ee/spec/requests/api/groups_spec.rb": 81.84723530800056,4918 "ee/spec/requests/git_http_geo_spec.rb": 102.64055793700027,4919 "ee/spec/controllers/projects_controller_spec.rb": 83.17163544100003,4920 "ee/spec/requests/api/releases_spec.rb": 71.04521345500052,4921 "ee/spec/requests/api/merge_request_approval_rules_spec.rb": 73.60321452799963,4922 "ee/spec/requests/api/epic_issues_spec.rb": 55.85308604999955,4923 "ee/spec/requests/api/ldap_group_links_spec.rb": 48.8444872529999,4924 "ee/spec/requests/api/discussions_spec.rb": 46.72213112699956,4925 "ee/spec/requests/api/group_push_rule_spec.rb": 29.65962811600002,4926 "ee/spec/controllers/groups/epic_issues_controller_spec.rb": 39.86276050299966,4927 "ee/spec/requests/groups_controller_spec.rb": 36.751724180000565,4928 "ee/spec/requests/api/internal/base_spec.rb": 23.190199298999687,4929 "ee/spec/controllers/groups/analytics/cycle_analytics/summary_controller_spec.rb": 24.168122425000547,4930 "ee/spec/requests/projects/settings/access_tokens_controller_spec.rb": 21.421655390000524,4931 "ee/spec/requests/api/project_approval_rules_spec.rb": 20.961404915999083,4932 "ee/spec/requests/api/group_boards_spec.rb": 18.13189696399968,4933 "ee/spec/requests/api/graphql/compliance_management/merge_requests/compliance_violations_spec.rb": 19.561077173999365,4934 "ee/spec/controllers/groups/audit_events_controller_spec.rb": 16.34820281499924,4935 "ee/spec/requests/api/graphql/group_query_spec.rb": 29.30892255800063,4936 "ee/spec/controllers/registrations/projects_controller_spec.rb": 19.69158639899979,4937 "ee/spec/requests/api/internal/kubernetes_spec.rb": 17.516395335000198,4938 "ee/spec/requests/api/protected_branches_spec.rb": 20.184984333000102,4939 "ee/spec/requests/api/graphql/epics/epic_resolver_spec.rb": 17.030847031999656,4940 "ee/spec/requests/api/project_aliases_spec.rb": 14.407247971999823,4941 "ee/spec/requests/api/graphql/project/vulnerability_severities_count_spec.rb": 17.321870181998747,4942 "ee/spec/requests/smartcard_controller_spec.rb": 6.661916409999321,4943 "ee/spec/controllers/projects/security/vulnerabilities_controller_spec.rb": 14.936927484999615,4944 "ee/spec/controllers/projects/security/configuration_controller_spec.rb": 18.958062605001032,4945 "ee/spec/requests/api/graphql/project/incident_management/oncall_shifts_spec.rb": 11.126221066000653,4946 "ee/spec/requests/api/ci/triggers_spec.rb": 16.771270588000334,4947 "ee/spec/controllers/projects/approvers_controller_spec.rb": 13.709749608999118,4948 "ee/spec/controllers/groups/saml_providers_controller_spec.rb": 11.09795991700048,4949 "ee/spec/requests/repositories/git_http_controller_spec.rb": 9.353836756999954,4950 "ee/spec/requests/api/graphql/mutations/audit_events/external_audit_event_destinations/destroy_spec.rb": 6.842609654000626,4951 "ee/spec/requests/api/resource_label_events_spec.rb": 12.316968454000744,4952 "ee/spec/requests/api/group_repository_storage_moves_spec.rb": 7.19802927100136,4953 "ee/spec/controllers/projects/integrations/jira/issues_controller_spec.rb": 7.546594088998972,4954 "ee/spec/requests/api/graphql/boards/epic_board_list_epics_query_spec.rb": 9.739516563000507,4955 "ee/spec/requests/api/geo_spec.rb": 6.940039821000028,4956 "ee/spec/requests/api/internal/app_sec/dast/site_validations_spec.rb": 5.415339063998545,4957 "ee/spec/requests/api/invitations_spec.rb": 7.669440935000239,4958 "ee/spec/controllers/subscriptions/groups_controller_spec.rb": 6.467501547000211,4959 "ee/spec/controllers/groups/issues_controller_spec.rb": 10.817565477000244,4960 "ee/spec/requests/api/resource_iteration_events_spec.rb": 8.798227015999146,4961 "ee/spec/requests/api/graphql/mutations/audit_events/external_audit_event_destinations/update_spec.rb": 9.699263524998969,4962 "ee/spec/requests/api/project_import_spec.rb": 9.265687228999013,4963 "ee/spec/requests/api/geo_replication_spec.rb": 9.059753875999377,4964 "ee/spec/requests/api/graphql/instance_security_dashboard_spec.rb": 11.56238748099895,4965 "ee/spec/requests/projects/requirements_management/requirements_controller_spec.rb": 5.32108371600043,4966 "ee/spec/controllers/projects/deploy_keys_controller_spec.rb": 7.976843624999674,4967 "ee/spec/controllers/security/projects_controller_spec.rb": 4.647683159000735,4968 "ee/spec/controllers/projects/security/dashboard_controller_spec.rb": 8.113841149999644,4969 "ee/spec/requests/api/graphql/mutations/requirements_management/update_requirement_spec.rb": 5.4690937510004005,4970 "ee/spec/requests/api/graphql/mutations/iterations/cadences/create_spec.rb": 3.9173089240011905,4971 "ee/spec/requests/api/graphql/project/dast_site_profiles_spec.rb": 6.662215409000055,4972 "ee/spec/requests/api/graphql/mutations/alert_management/http_integration/create_spec.rb": 5.347476785000254,4973 "ee/spec/controllers/projects/insights_controller_spec.rb": 4.95855223900071,4974 "ee/spec/requests/api/graphql/mutations/epics/add_issue_spec.rb": 4.312822341000356,4975 "ee/spec/requests/api/graphql/project/dast_scanner_profiles_spec.rb": 2.813979702999859,4976 "ee/spec/requests/api/graphql/mutations/compliance_management/frameworks/create_spec.rb": 3.243493967998802,4977 "ee/spec/requests/api/graphql/project/alert_management/http_integrations_spec.rb": 5.05493974500132,4978 "ee/spec/requests/api/graphql/vulnerabilities/description_spec.rb": 5.812466290000884,4979 "ee/spec/requests/admin/geo/replicables_controller_spec.rb": 4.99230304699995,4980 "ee/spec/controllers/projects/quality/test_cases_controller_spec.rb": 5.394396464000238,4981 "ee/spec/requests/api/graphql/mutations/compliance_management/frameworks/update_spec.rb": 6.723587488000703,4982 "ee/spec/mailers/credentials_inventory_mailer_spec.rb": 2.594563026999822,4983 "ee/spec/requests/api/iterations_spec.rb": 4.2354332440008875,4984 "ee/spec/controllers/admin/licenses/usage_exports_controller_spec.rb": 2.9539764929995727,4985 "ee/spec/requests/api/graphql/mutations/boards/epic_lists/destroy_spec.rb": 3.9070360510013415,4986 "ee/spec/requests/api/graphql/project/dast_site_validations_spec.rb": 4.9818606469998485,4987 "ee/spec/mailers/ee/emails/admin_notification_spec.rb": 5.046081086000413,4988 "ee/spec/controllers/projects/branches_controller_spec.rb": 6.882102154999302,4989 "ee/spec/requests/api/graphql/mutations/merge_requests/set_assignees_spec.rb": 5.931136625000363,4990 "ee/spec/requests/api/graphql/mutations/dast_scanner_profiles/create_spec.rb": 4.05944086800082,4991 "ee/spec/controllers/admin/geo/nodes_controller_spec.rb": 4.113996217000022,4992 "ee/spec/requests/api/graphql/mutations/issues/set_weight_spec.rb": 5.535233183998571,4993 "ee/spec/requests/api/graphql/project/dast_site_profile_spec.rb": 3.654225647000203,4994 "ee/spec/controllers/projects/settings/integrations_controller_spec.rb": 3.561238719999892,4995 "ee/spec/requests/api/graphql/current_user/groups_query_spec.rb": 4.843424161001167,4996 "ee/spec/requests/api/graphql/boards/epic_boards_query_spec.rb": 3.226826666999841,4997 "ee/spec/controllers/ee/projects/autocomplete_sources_controller_spec.rb": 2.8995838739992905,4998 "ee/spec/requests/api/elasticsearch_indexed_namespaces_spec.rb": 2.771313826999176,4999 "ee/spec/requests/api/graphql/mutations/dast_scanner_profiles/update_spec.rb": 4.32896490100029,5000 "ee/spec/controllers/projects/analytics/cycle_analytics/summary_controller_spec.rb": 3.7657237940002233,5001 "ee/spec/requests/api/graphql/mutations/requirements_management/create_requirement_spec.rb": 4.069671958000981,5002 "ee/spec/requests/api/graphql/mutations/compliance_management/frameworks/destroy_spec.rb": 3.4073082319991954,5003 "ee/spec/controllers/admin/users_controller_spec.rb": 3.003991240999312,5004 "ee/spec/requests/api/graphql/mutations/notes/create/note_spec.rb": 3.201630137999018,5005 "ee/spec/requests/api/graphql/mutations/boards/lists/create_spec.rb": 3.103220629000134,5006 "ee/spec/controllers/groups/security/compliance_dashboards_controller_spec.rb": 1.2653878219989565,5007 "ee/spec/requests/api/graphql/mutations/issues/promote_to_epic_spec.rb": 5.725599479999801,5008 "ee/spec/requests/api/graphql/mutations/boards/lists/update_limit_metrics_spec.rb": 3.021580131000519,5009 "ee/spec/requests/api/graphql/mutations/ci/namespace_ci_cd_settings_update_spec.rb": 3.488225010998576,5010 "ee/spec/mailers/ee/emails/merge_requests_spec.rb": 2.780826297001113,5011 "ee/spec/requests/lfs_locks_api_spec.rb": 2.6938370789994224,5012 "ee/spec/requests/api/graphql/group/epic/epic_ancestors_spec.rb": 3.2866140250007447,5013 "ee/spec/requests/api/graphql/mutations/timelogs/create_spec.rb": 2.456535134999285,5014 "ee/spec/requests/groups/compliance_frameworks_spec.rb": 2.794921386999704,5015 "ee/spec/requests/api/graphql/project/merge_requests_spec.rb": 1.7842606590002106,5016 "ee/spec/requests/api/graphql/vulnerabilities/details_spec.rb": 3.1531167779994576,5017 "ee/spec/requests/api/graphql/iterations/cadences_spec.rb": 2.393772205999994,5018 "ee/spec/controllers/groups/usage_quotas_controller_spec.rb": 2.6994884190007724,5019 "ee/spec/requests/api/graphql/work_item_spec.rb": 1.3874887879992457,5020 "ee/spec/mailers/emails/user_cap_spec.rb": 0.7059882940011448,5021 "ee/spec/requests/api/graphql/mutations/projects/lock_path_spec.rb": 2.6069607209992682,5022 "ee/spec/requests/api/ldap_spec.rb": 1.5539607949995116,5023 "ee/spec/controllers/groups/security/vulnerabilities_controller_spec.rb": 3.1127953289997095,5024 "ee/spec/requests/api/features_spec.rb": 1.630041283000537,5025 "ee/spec/requests/api/graphql/vulnerabilities/primary_identifier_spec.rb": 2.1879193700006,5026 "ee/spec/controllers/profiles_controller_spec.rb": 1.9139995770001406,5027 "ee/spec/requests/groups/usage_quotas_spec.rb": 1.8664306570008193,5028 "ee/spec/controllers/groups/ldaps_controller_spec.rb": 2.1384503110002697,5029 "ee/spec/requests/api/graphql/project/compliance_frameworks_spec.rb": 2.2184095899992826,5030 "ee/spec/requests/api/submodules_spec.rb": 2.050619982999706,5031 "ee/spec/requests/api/v3/github_spec.rb": 2.010783794999952,5032 "ee/spec/requests/api/graphql/mutations/boards/epic_boards/create_spec.rb": 1.4990940060015419,5033 "ee/spec/requests/callout_spec.rb": 2.6057838810011162,5034 "ee/spec/requests/api/graphql/ci/runners_spec.rb": 2.0898453930003598,5035 "ee/spec/requests/api/graphql/mutations/incident_management/escalation_policy/update_spec.rb": 2.0062929449995863,5036 "ee/spec/requests/api/graphql/project/security_orchestration/scan_result_policy_spec.rb": 2.088776702999894,5037 "ee/spec/requests/admin/subscriptions_controller_spec.rb": 1.0924818650000816,5038 "ee/spec/controllers/ee/uploads_controller_spec.rb": 1.3711835390004126,5039 "ee/spec/controllers/ee/profiles/preferences_controller_spec.rb": 1.2465388410000742,5040 "ee/spec/requests/api/graphql/mutations/incident_management/escalation_policy/destroy_spec.rb": 0.99664540699996,5041 "ee/spec/controllers/admin/impersonations_controller_spec.rb": 0.8869649000007485,5042 "ee/spec/requests/groups/contribution_analytics_spec.rb": 0.8017172519994347,5043 "ee/spec/requests/api/graphql/mutations/app_sec/fuzzing/api/ci_configuration/create_spec.rb": 1.1393403450001642,5044 "ee/spec/controllers/passwords_controller_spec.rb": 0.5766271470001811,5045 "ee/spec/controllers/oauth/applications_controller_spec.rb": 0.41713497999990075046}5047Knapsack global time execution for tests: 29m 52s5048Finished in 29 minutes 56 seconds (files took 1 minute 24.78 seconds to load)50491972 examples, 0 failures5050RSpec exited with 0.5051No examples to retry, congrats!5053Not uploading cache ruby-gems-debian-bullseye-ruby-2.7-14 due to policy5054Not uploading cache gitaly-ruby-gems-debian-bullseye-ruby-2.7-14 due to policy5056Uploading artifacts...5057coverage/: found 5 matching files and directories 5058crystalball/: found 2 matching files and directories 5059deprecations/: found 8 matching files and directories 5060knapsack/: found 3 matching files and directories 5061rspec/: found 8 matching files and directories 5062WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory 5063log/*.log: found 22 matching files and directories 5064WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/2799741125/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com5065WARNING: Retrying... context=artifacts-uploader error=request redirected5066Uploading artifacts as "archive" to coordinator... 201 Created id=2799741125 responseStatus=201 Created token=LygzHFfc5067Uploading artifacts...5068rspec/junit_rspec.xml: found 1 matching files and directories 5069WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/2799741125/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com5070WARNING: Retrying... context=artifacts-uploader error=request redirected5071Uploading artifacts as "junit" to coordinator... 201 Created id=2799741125 responseStatus=201 Created token=LygzHFfc5073Job succeeded