rspec-ee integration pg12 4/4
Passed Started
by
@lamportsapprentice

Hannes Moser
1Running with gitlab-runner 15.1.0~beta.20.g62206bb2 (62206bb2)2 on blue-4.shared-gitlab-org.runners-manager.gitlab.com/default 8cwZ3F433 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:ac3b8cd6a8b42e839456256bc514d6230b5a2538c738b3d522e1384a2a172b96 for postgres:12 with digest postgres@sha256:e6ffad42c91a4d5a29257a27ac4e160c3ae7196696b37bf2e80410024ed95951 ...10Starting service redis:6.0-alpine ...11Pulling docker image redis:6.0-alpine ...12Using docker image sha256:09401fed2a421bf0019f96dcec70c85f82ec7b76beb1ae589547b0dc302d6b76 for redis:6.0-alpine with digest redis@sha256:217a9db40a914cc3f6206a143a4d750da0607500cc013a147a4979e08e40beff ...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:642191311550aaa03aba1d11d8d921042ead8ee5afeb833fc7e4e3f933b7ed04 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:f0990c59018be757dd56365bb2cc6791d65f3f4bf99a431c3b26e3df08260f6a ...21Running on runner-8cwz3f43-project-278964-concurrent-0 via runner-8cwz3f43-shared-gitlab-org-1656907444-e9f6b9dc...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: 116039, done. 28remote: Counting objects: 100% (116039/116039), done. 29remote: Compressing objects: 100% (81230/81230), done. 30remote: Total 116039 (delta 48550), reused 75347 (delta 30398), pack-reused 0 31Receiving objects: 100% (116039/116039), 108.46 MiB | 22.56 MiB/s, done.32Resolving deltas: 100% (48550/48550), done.34 * [new ref] refs/pipelines/579240176 -> refs/pipelines/57924017635Checking out ad477312 as refs/merge-requests/90914/merge...36Skipping Git submodules setup37$ git remote set-url origin "${CI_REPOSITORY_URL}"39Checking cache for ruby-gems-debian-bullseye-ruby-2.7-10...40Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/ruby-gems-debian-bullseye-ruby-2.7-10 41Successfully extracted cache42Checking cache for gitaly-ruby-gems-debian-bullseye-ruby-2.7-10...43Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/gitaly-ruby-gems-debian-bullseye-ruby-2.7-10 44Successfully extracted cache46Downloading artifacts for compile-test-assets (2673682644)...47Downloading artifacts from coordinator... ok id=2673682644 responseStatus=200 OK token=kTKRACJs48Downloading artifacts for detect-tests (2673682683)...49Downloading artifacts from coordinator... ok id=2673682683 responseStatus=200 OK token=kTKRACJs50Downloading artifacts for retrieve-tests-metadata (2673682698)...51Downloading artifacts from coordinator... ok id=2673682698 responseStatus=200 OK token=kTKRACJs52Downloading artifacts for setup-test-env (2673682668)...53Downloading artifacts from coordinator... ok id=2673682668 responseStatus=200 OK token=kTKRACJs55Using docker image sha256:642191311550aaa03aba1d11d8d921042ead8ee5afeb833fc7e4e3f933b7ed04 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:f0990c59018be757dd56365bb2cc6791d65f3f4bf99a431c3b26e3df08260f6a ...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 2 seconds.84$ bundle pristine pg85Installing pg 1.3.5 with native extensions86==> 'bundle pristine pg' succeeded in 12 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 42 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 directory112Don't run Bundler as root. Bundler can ask for sudo if it is needed, and113installing your bundle as root will break this application for all non-root114users on this machine.115Using abstract_type 0.0.7116Using concurrent-ruby 1.1.10117Using i18n 1.10.0118Using minitest 5.15.0119Using tzinfo 2.0.4120Using zeitwerk 2.5.4121Using activesupport 6.1.4.7122Using builder 3.2.4123Using erubi 1.10.0124Using mini_portile2 2.8.0125Using racc 1.6.0126Using nokogiri 1.13.6 (x86_64-linux)127Using rails-dom-testing 2.0.3128Using crass 1.0.6129Using loofah 2.16.0130Using rails-html-sanitizer 1.4.2131Using actionview 6.1.4.7132Using rack 2.2.3133Using rack-test 1.1.0134Using actionpack 6.1.4.7135Using ice_nine 0.11.2136Using thread_safe 0.3.6137Using memoizable 0.4.2138Using adamantium 0.2.0139Using public_suffix 4.0.6140Using addressable 2.7.0141Using ast 2.4.2142Using binding_ninja 0.2.3143Using bundler 2.3.15144Using charlock_holmes 0.7.7145Using coderay 1.1.2146Using equalizer 0.0.11147Using concord 0.1.5148Using diff-lcs 1.3149Using dotenv 2.7.6150Using escape_utils 1.2.1151Using factory_bot 5.0.2152Using multipart-post 2.1.1153Using faraday 1.0.1154Using ffi 1.15.3155Using json 2.5.1156Using gemojione 3.3.0157Using mini_mime 1.0.2158Using rugged 1.2.0159Using github-linguist 7.12.1160Using github-markup 1.7.0161Using mime-types-data 3.2020.1104162Using mime-types 3.3.1163Using gitlab-gollum-rugged_adapter 0.4.4.4.gitlab.1164Using rouge 3.27.0165Using sanitize 6.0.0166Using stringex 2.8.5167Using gitlab-gollum-lib 4.2.7.10.gitlab.2168Using google-protobuf 3.19.1 (x86_64-linux)169Using googleapis-common-protos-types 1.3.0170Using grpc 1.42.0 (x86_64-linux)171Using opentracing 0.5.0172Using thrift 0.15.0173Using jaeger-client 1.1.0174Using pg_query 2.1.1175Using redis 4.4.0176Using gitlab-labkit 0.23.0177Using rubyzip 2.3.2178Using thor 1.1.0179Using tomlrb 2.0.1180Using with_env 1.1.0181Using rexml 3.2.5182Using xml-simple 1.1.9183Using gitlab-license_finder 6.14.2.1184Using gitlab-markup 1.7.1185Using grpc-tools 1.42.0186Using sawyer 0.8.2187Using octokit 4.20.0188Using reverse_markdown 1.4.0189Using licensee 9.14.1190Using method_source 0.9.2191Using msgpack 1.3.3192Using optimist 3.0.1193Using parallel 1.19.2194Using parser 3.0.3.2195Using procto 0.0.3196Using unparser 0.4.7197Using proc_to_ast 0.1.0198Using pry 0.12.2199Using rainbow 3.0.0200Using rbtrace 0.4.14201Using rdoc 6.3.2202Using regexp_parser 1.8.1203Using rspec-support 3.8.0204Using rspec-core 3.8.0205Using rspec-expectations 3.8.3206Using rspec-mocks 3.8.0207Using rspec 3.8.0208Using rspec-parameterized 0.4.2209Using rubocop-ast 0.2.0210Using ruby-progressbar 1.10.1211Using unicode-display_width 1.7.0212Using rubocop 0.86.0213Using sentry-raven 3.0.4214Using timecop 0.9.1215Bundle complete! 22 Gemfile dependencies, 100 gems now installed.216Gems in the groups 'production' and 'development' were not installed.217Bundled gems are installed into `/builds/gitlab-org/gitlab/vendor/gitaly-ruby`218Checking gitaly-ruby Gemfile...219Checking gitaly-ruby bundle...220The Gemfile's dependencies are satisfied221Trying to connect to gitaly: ......................................... OK222Trying to connect to gitaly2: ......................................................... OK223Starting Praefect with in-memory election strategyTrying to connect to praefect: ........ OK224==> 'scripts/gitaly-test-spawn' succeeded in 11 seconds.225$ source ./scripts/rspec_helpers.sh226$ rspec_paralellized_job "--tag ~quarantine --tag ~level:migration"227SKIP_FLAKY_TESTS_AUTOMATICALLY: true228RETRY_FAILED_TESTS_IN_NEW_PROCESS: true229KNAPSACK_GENERATE_REPORT: true230FLAKY_RSPEC_GENERATE_REPORT: true231KNAPSACK_TEST_FILE_PATTERN: {ee/}spec/{commands,controllers,mailers,requests}{,/**/}*_spec.rb232KNAPSACK_LOG_LEVEL: debug233KNAPSACK_REPORT_PATH: knapsack/rspec-ee_integration_pg12_4_4_report.json234FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json235FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec-ee_integration_pg12_4_4_report.json236NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec-ee_integration_pg12_4_4_report.json237SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec-ee_integration_pg12_4_4_report.txt238RETRIED_TESTS_REPORT_PATH: rspec/flaky/retried_tests_rspec-ee_integration_pg12_4_4_report.txt239CRYSTALBALL: 240Knapsack node specs:241ee/spec/controllers/ee/search_controller_spec.rb242ee/spec/controllers/projects/merge_requests_controller_spec.rb243ee/spec/requests/api/groups_spec.rb244ee/spec/requests/api/issues_spec.rb245ee/spec/controllers/projects/issues_controller_spec.rb246ee/spec/requests/api/notes_spec.rb247ee/spec/requests/api/namespaces_spec.rb248ee/spec/requests/api/ldap_group_links_spec.rb249ee/spec/requests/api/epic_issues_spec.rb250ee/spec/controllers/groups/epic_issues_controller_spec.rb251ee/spec/requests/api/graphql/mutations/epic_tree/reorder_spec.rb252ee/spec/requests/api/merge_request_approvals_spec.rb253ee/spec/controllers/boards/issues_controller_spec.rb254ee/spec/requests/api/epic_links_spec.rb255ee/spec/requests/api/internal/kubernetes_spec.rb256ee/spec/requests/api/status_checks_spec.rb257ee/spec/requests/git_http_spec.rb258ee/spec/requests/groups/security/credentials_controller_spec.rb259ee/spec/controllers/subscriptions_controller_spec.rb260ee/spec/requests/projects/settings/access_tokens_controller_spec.rb261ee/spec/controllers/groups/audit_events_controller_spec.rb262ee/spec/controllers/groups/sso_controller_spec.rb263ee/spec/requests/admin/credentials_controller_spec.rb264ee/spec/requests/api/graphql/iteration_spec.rb265ee/spec/requests/api/managed_licenses_spec.rb266ee/spec/controllers/groups/iterations_controller_spec.rb267ee/spec/controllers/groups/insights_controller_spec.rb268ee/spec/controllers/admin/geo/projects_controller_spec.rb269ee/spec/controllers/groups/epic_boards_controller_spec.rb270ee/spec/requests/smartcard_controller_spec.rb271ee/spec/requests/api/graphql/project/issues_spec.rb272ee/spec/controllers/groups/analytics/productivity_analytics_controller_spec.rb273ee/spec/requests/api/award_emoji_spec.rb274ee/spec/requests/projects/on_demand_scans_controller_spec.rb275ee/spec/controllers/oauth/geo_auth_controller_spec.rb276ee/spec/controllers/groups/security/policies_controller_spec.rb277ee/spec/controllers/concerns/routable_actions_spec.rb278ee/spec/controllers/groups/groups_controller_spec.rb279ee/spec/controllers/autocomplete_controller_spec.rb280ee/spec/controllers/groups/analytics/cycle_analytics_controller_spec.rb281ee/spec/requests/api/project_clusters_spec.rb282ee/spec/mailers/ci_minutes_usage_mailer_spec.rb283ee/spec/controllers/concerns/ee/routable_actions/sso_enforcement_redirect_spec.rb284ee/spec/controllers/admin/projects_controller_spec.rb285ee/spec/requests/api/internal/app_sec/dast/site_validations_spec.rb286ee/spec/controllers/ee/dashboard/projects_controller_spec.rb287ee/spec/requests/api/graphql/mutations/issues/update_spec.rb288ee/spec/controllers/projects/security/sast_configuration_controller_spec.rb289ee/spec/controllers/projects/security/dashboard_controller_spec.rb290ee/spec/requests/projects/analytics/code_reviews_controller_spec.rb291ee/spec/requests/api/dependencies_spec.rb292ee/spec/controllers/projects/security/vulnerability_report_controller_spec.rb293ee/spec/requests/api/graphql/project/requirements_management/test_reports_spec.rb294ee/spec/requests/rack_attack_spec.rb295ee/spec/controllers/groups/seat_usage_controller_spec.rb296ee/spec/requests/api/analytics/group_activity_analytics_spec.rb297ee/spec/requests/api/ci/runner_spec.rb298ee/spec/requests/projects/security/dast_scanner_profiles_controller_spec.rb299ee/spec/controllers/admin/geo/nodes_controller_spec.rb300ee/spec/requests/groups/protected_environments_controller_spec.rb301ee/spec/requests/api/graphql/project/dast_site_validations_spec.rb302ee/spec/controllers/projects/integrations/zentao/issues_controller_spec.rb303ee/spec/requests/api/graphql/project/dast_site_profiles_spec.rb304ee/spec/requests/api/license_spec.rb305ee/spec/requests/api/graphql/mutations/compliance_management/frameworks/create_spec.rb306ee/spec/requests/api/graphql/group/epic/notes_spec.rb307ee/spec/requests/api/graphql/mutations/dast_scanner_profiles/update_spec.rb308ee/spec/requests/projects/security/corpus_management_controller_spec.rb309ee/spec/controllers/projects/insights_controller_spec.rb310ee/spec/controllers/admin/dev_ops_report_controller_spec.rb311ee/spec/requests/api/graphql/mutations/boards/epic_lists/destroy_spec.rb312ee/spec/controllers/ee/projects/protected_branches_controller_spec.rb313ee/spec/requests/api/graphql/mutations/vulnerabilities/create_external_issue_link_spec.rb314ee/spec/requests/api/group_clusters_spec.rb315ee/spec/requests/api/experiments_spec.rb316ee/spec/requests/customers_dot/proxy_controller_spec.rb317ee/spec/requests/projects/security/scanned_resources_controller_spec.rb318ee/spec/controllers/groups/analytics/repository_analytics_controller_spec.rb319ee/spec/requests/api/graphql/mutations/dast/profiles/run_spec.rb320ee/spec/requests/projects/pipelines/email_campaigns_controller_spec.rb321ee/spec/mailers/credentials_inventory_mailer_spec.rb322ee/spec/controllers/repositories/git_http_controller_spec.rb323ee/spec/controllers/projects/issue_links_controller_spec.rb324ee/spec/requests/api/graphql/mutations/epics/set_subscription_spec.rb325ee/spec/controllers/projects/pages_controller_spec.rb326ee/spec/requests/api/ci/runner/jobs_trace_spec.rb327ee/spec/requests/groups/group_members_controller_spec.rb328ee/spec/requests/api/graphql/current_user/todos_query_spec.rb329ee/spec/requests/api/graphql/mutations/dast_scanner_profiles/delete_spec.rb330ee/spec/requests/api/graphql/mutations/compliance_management/frameworks/destroy_spec.rb331ee/spec/requests/groups/analytics/devops_adoption_controller_spec.rb332ee/spec/controllers/projects/settings/repository_controller_spec.rb333ee/spec/requests/api/graphql/project/incident_management/oncall_participants_spec.rb334ee/spec/controllers/admin/audit_log_reports_controller_spec.rb335ee/spec/requests/api/elasticsearch_indexed_namespaces_spec.rb336ee/spec/controllers/projects/security/scanned_resources_controller_spec.rb337ee/spec/controllers/projects/repositories_controller_spec.rb338ee/spec/requests/omniauth_kerberos_spnego_spec.rb339ee/spec/controllers/trial_registrations_controller_spec.rb340ee/spec/requests/api/graphql/project/incident_management/escalation_policy/rules_spec.rb341ee/spec/requests/api/graphql/mutations/dast_site_validations/revoke_spec.rb342ee/spec/mailers/ee/emails/issues_spec.rb343ee/spec/controllers/ee/root_controller_spec.rb344ee/spec/requests/api/graphql/vulnerabilities/scanner_spec.rb345ee/spec/controllers/boards/users_controller_spec.rb346ee/spec/controllers/groups/security/dashboard_controller_spec.rb347ee/spec/controllers/ee/groups/variables_controller_spec.rb348ee/spec/requests/api/ci/runner/jobs_put_spec.rb349ee/spec/requests/api/graphql/mutations/environments/canary_ingress/update_spec.rb350ee/spec/requests/api/graphql/mutations/boards/epic_boards/create_spec.rb351ee/spec/controllers/groups/runners_controller_spec.rb352ee/spec/requests/api/graphql/mutations/boards/epic_boards/update_spec.rb353ee/spec/requests/ee/projects/deploy_tokens_controller_spec.rb354ee/spec/requests/api/integrations_spec.rb355ee/spec/controllers/registrations/company_controller_spec.rb356ee/spec/requests/api/graphql/mutations/boards/update_epic_user_preferences_spec.rb357ee/spec/requests/ee/projects/service_desk_controller_spec.rb358ee/spec/requests/api/graphql/mutations/gitlab_subscriptions/activate_spec.rb359ee/spec/requests/admin/user_permission_exports_controller_spec.rb360ee/spec/requests/admin/users_controller_spec.rb361ee/spec/controllers/registrations/verification_controller_spec.rb362ee/spec/requests/api/graphql/project/path_locks_spec.rb363ee/spec/controllers/projects/imports_controller_spec.rb364ee/spec/requests/api/features_spec.rb365ee/spec/requests/api/api_spec.rb366ee/spec/requests/api/graphql/mutations/app_sec/fuzzing/api/ci_configuration/create_spec.rb367ee/spec/controllers/profiles/keys_controller_spec.rb368ee/spec/requests/rack_attack_global_spec.rb369ee/spec/controllers/countries_controller_spec.rb370ee/spec/mailers/emails/epics_spec.rb371Filter specs:372Running specs:373Running all node tests without filter374ee/spec/controllers/ee/search_controller_spec.rb375ee/spec/controllers/projects/merge_requests_controller_spec.rb376ee/spec/requests/api/groups_spec.rb377ee/spec/requests/api/issues_spec.rb378ee/spec/controllers/projects/issues_controller_spec.rb379ee/spec/requests/api/notes_spec.rb380ee/spec/requests/api/namespaces_spec.rb381ee/spec/requests/api/ldap_group_links_spec.rb382ee/spec/requests/api/epic_issues_spec.rb383ee/spec/controllers/groups/epic_issues_controller_spec.rbKnapsack report generator started!384DEPRECATION WARNING: /builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/activerecord-6.1.4.7/lib/active_record/connection_adapters/postgresql_adapter.rb:78: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call385/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/pg-1.3.5/lib/pg.rb:68: warning: The called method `connect' is defined here386 (called from new_client at /builds/gitlab-org/gitlab/config/initializers/00_connection_logger.rb:21)387WARNING: 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:82:in `block (3 levels) in <top (required)>'.388WARNING: 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:381:in `block (2 levels) in <top (required)>'.389Run options: exclude {:quarantine=>true, :level=>"migration"}390Test environment set up in 0.541830438 seconds391SearchController392 GET #show393 unique users tracking394 Snowplow event tracking395 is not sending events if FF is disabled396 emits all search events397 i_search_advanced398 behaves like tracking unique hll events399 tracks unique event400 i_search_paid401 on Gitlab.com402 behaves like tracking unique hll events403 tracks unique event404 self-managed instance405 does not track if there is no license available406 license is available407 behaves like tracking unique hll events408 tracks unique event409 global search410 behaves like renders the elasticsearch tabs if elasticsearch is enabled411 scope: "projects"412 when elasticsearch is enabled413 shows the elasticsearch tabs414 when elasticsearch is disabled415 does not show the elasticsearch tabs416 scope: "issues"417 when elasticsearch is enabled418 shows the elasticsearch tabs419 when elasticsearch is disabled420 does not show the elasticsearch tabs421 scope: "merge_requests"422 when elasticsearch is enabled423 shows the elasticsearch tabs424 when elasticsearch is disabled425 does not show the elasticsearch tabs426 scope: "milestones"427 when elasticsearch is enabled428 shows the elasticsearch tabs429 when elasticsearch is disabled430 does not show the elasticsearch tabs431 scope: "epics"432 when elasticsearch is enabled433 shows the elasticsearch tabs434 when elasticsearch is disabled435 does not show the elasticsearch tabs436 scope: "notes"437 when elasticsearch is enabled438 shows the elasticsearch tabs439 when elasticsearch is disabled440 does not show the elasticsearch tabs441 scope: "blobs"442 when elasticsearch is enabled443 shows the elasticsearch tabs444 when elasticsearch is disabled445 does not show the elasticsearch tabs446 scope: "commits"447 when elasticsearch is enabled448 shows the elasticsearch tabs449 when elasticsearch is disabled450 does not show the elasticsearch tabs451 scope: "wiki_blobs"452 when elasticsearch is enabled453 shows the elasticsearch tabs454 when elasticsearch is disabled455 does not show the elasticsearch tabs456 scope: "users"457 when elasticsearch is enabled458 shows the elasticsearch tabs459 when elasticsearch is disabled460 does not show the elasticsearch tabs461 scope tab order462 when elasticsearch is disabled463 behaves like search tabs displayed in consistent order464 keeps search tab order465 when elasticsearch is enabled466 behaves like search tabs displayed in consistent order467 keeps search tab order468 group search469 behaves like renders the elasticsearch tabs if elasticsearch is enabled470 scope: "projects"471 when elasticsearch is enabled472 shows the elasticsearch tabs473 when elasticsearch is disabled474 does not show the elasticsearch tabs475 scope: "issues"476 when elasticsearch is enabled477 shows the elasticsearch tabs478 when elasticsearch is disabled479 does not show the elasticsearch tabs480 scope: "merge_requests"481 when elasticsearch is enabled482 shows the elasticsearch tabs483 when elasticsearch is disabled484 does not show the elasticsearch tabs485 scope: "milestones"486 when elasticsearch is enabled487 shows the elasticsearch tabs488 when elasticsearch is disabled489 does not show the elasticsearch tabs490 scope: "epics"491 when elasticsearch is enabled492 shows the elasticsearch tabs493 when elasticsearch is disabled494 does not show the elasticsearch tabs495 scope: "notes"496 when elasticsearch is enabled497 shows the elasticsearch tabs498 when elasticsearch is disabled499 does not show the elasticsearch tabs500 scope: "blobs"501 when elasticsearch is enabled502 shows the elasticsearch tabs503 when elasticsearch is disabled504 does not show the elasticsearch tabs505 scope: "commits"506 when elasticsearch is enabled507 shows the elasticsearch tabs508 when elasticsearch is disabled509 does not show the elasticsearch tabs510 scope: "wiki_blobs"511 when elasticsearch is enabled512 shows the elasticsearch tabs513 when elasticsearch is disabled514 does not show the elasticsearch tabs515 scope: "users"516 when elasticsearch is enabled517 shows the elasticsearch tabs518 when elasticsearch is disabled519 does not show the elasticsearch tabs520 scope tab order521 when elasticsearch is disabled522 when epics are disabled523 behaves like search tabs displayed in consistent order524 keeps search tab order525 when epics are enabled526 behaves like search tabs displayed in consistent order527 keeps search tab order528 when elasticsearch is enabled529 when epics are disabled530 behaves like search tabs displayed in consistent order531 keeps search tab order532 when epics are enabled533 behaves like search tabs displayed in consistent order534 keeps search tab order535 project search536 scope tab order537 when elasticsearch is disabled538 behaves like search tabs displayed in consistent order539 keeps search tab order540 when elasticsearch is enabled541 behaves like search tabs displayed in consistent order542 keeps search tab order543Projects::MergeRequestsController544 PUT update545 when the merge request requires approval546 behaves like update invalid issuable547 when updating causes conflicts548 renders edit when format is html549 renders json error message when format is json550 when updating an invalid issuable551 renders edit when merge request is invalid552 overriding approvers per MR553 enabled554 updates approvals555 does not allow approvels before merge lower than the project setting556 creates rules557 disabled558 does not update approvals_before_merge559 does not update approver_ids560 does not update approver_group_ids561 does not create approval rules562 when the MR targets the project563 behaves like approvals_before_merge param564 approvals_before_merge not set for the existing MR565 when it is less than the one in the target project566 sets the param to the sames as the project567 updates the merge request568 when it is equal to the one in the target project569 sets the param to the same as the project570 updates the merge request571 when it is greater than the one in the target project572 saves the param in the merge request573 updates the merge request574 approvals_before_merge set for the existing MR575 when it is not set576 does not change the merge request577 updates the merge request578 when it is less than the one in the target project579 sets the param to the same as the target project580 updates the merge request581 when it is equal to the one in the target project582 sets the param to the same as the target project583 updates the merge request584 when it is greater than the one in the target project585 saves the param in the merge request586 updates the merge request587 when the project is a fork588 when the MR target upstream589 behaves like approvals_before_merge param590 approvals_before_merge not set for the existing MR591 when it is less than the one in the target project592 sets the param to the sames as the project593 updates the merge request594 when it is equal to the one in the target project595 sets the param to the same as the project596 updates the merge request597 when it is greater than the one in the target project598 saves the param in the merge request599 updates the merge request600 approvals_before_merge set for the existing MR601 when it is not set602 does not change the merge request603 updates the merge request604 when it is less than the one in the target project605 sets the param to the same as the target project606 updates the merge request607 when it is equal to the one in the target project608 sets the param to the same as the target project609 updates the merge request610 when it is greater than the one in the target project611 saves the param in the merge request612 updates the merge request613 when the MR target the fork614 behaves like approvals_before_merge param615 approvals_before_merge not set for the existing MR616 when it is less than the one in the target project617 sets the param to the sames as the project618 updates the merge request619 when it is equal to the one in the target project620 sets the param to the same as the project621 updates the merge request622 when it is greater than the one in the target project623 saves the param in the merge request624 updates the merge request625 approvals_before_merge set for the existing MR626 when it is not set627 does not change the merge request628 updates the merge request629 when it is less than the one in the target project630 sets the param to the same as the target project631 updates the merge request632 when it is equal to the one in the target project633 sets the param to the same as the target project634 updates the merge request635 when it is greater than the one in the target project636 saves the param in the merge request637 updates the merge request638 POST #rebase639 approvals pending640 returns 200641 GET #edit642 default templates643 when a merge request description has content644 does not select a default template645 when a merge request description is blank646 when a default template does not exist in the repository647 does not select a default template648 when a default template exists in the repository649 selects a default template650 GET #dependency_scanning_reports651 behaves like pending pipeline response652 when pipeline is pending653 sends polling interval654 returns 204 HTTP status655 when comparison is being processed656 sends polling interval657 returns 204 HTTP status658 when comparison is done659 does not send polling interval660 returns 200 HTTP status661 when user created corrupted vulnerability reports662 does not send polling interval663 returns 400 HTTP status664 behaves like authorize read pipeline665 public project with private builds666 restricts access to signed out users667 restricts access to other users668 GET #container_scanning_reports669 behaves like pending pipeline response670 when pipeline is pending671 sends polling interval672 returns 204 HTTP status673 when comparison is being processed674 sends polling interval675 returns 204 HTTP status676 when comparison is done677 does not send polling interval678 returns 200 HTTP status679 when user created corrupted vulnerability reports680 does not send polling interval681 returns 400 HTTP status682 behaves like authorize read pipeline683 public project with private builds684 restricts access to signed out users685 restricts access to other users686 GET #sast_reports687 behaves like pending pipeline response688 when pipeline is pending689 sends polling interval690 returns 204 HTTP status691 when comparison is being processed692 sends polling interval693 returns 204 HTTP status694 when comparison is done695 does not send polling interval696 returns 200 HTTP status697 when user created corrupted vulnerability reports698 does not send polling interval699 returns 400 HTTP status700 behaves like authorize read pipeline701 public project with private builds702 restricts access to signed out users703 restricts access to other users704 GET #coverage_fuzzing_reports705 behaves like pending pipeline response706 when pipeline is pending707 sends polling interval708 returns 204 HTTP status709 when comparison is being processed710 sends polling interval711 returns 204 HTTP status712 when comparison is done713 does not send polling interval714 returns 200 HTTP status715 when user created corrupted vulnerability reports716 does not send polling interval717 returns 400 HTTP status718 behaves like authorize read pipeline719 public project with private builds720 restricts access to signed out users721 restricts access to other users722 GET #api_fuzzing_reports723 behaves like pending pipeline response724 when pipeline is pending725 sends polling interval726 returns 204 HTTP status727 when comparison is being processed728 sends polling interval729 returns 204 HTTP status730 when comparison is done731 does not send polling interval732 returns 200 HTTP status733 when user created corrupted fuzzing reports734 does not send polling interval735 returns 400 HTTP status736 behaves like authorize read pipeline737 public project with private builds738 restricts access to signed out users739 restricts access to other users740 GET #secret_detection_reports741 behaves like pending pipeline response742 when pipeline is pending743 sends polling interval744 returns 204 HTTP status745 when comparison is being processed746 sends polling interval747 returns 204 HTTP status748 when comparison is done749 does not send polling interval750 returns 200 HTTP status751 when user created corrupted vulnerability reports752 does not send polling interval753 returns 400 HTTP status754 behaves like authorize read pipeline755 public project with private builds756 restricts access to signed out users757 restricts access to other users758 GET #dast_reports759 behaves like pending pipeline response760 when pipeline is pending761 sends polling interval762 returns 204 HTTP status763 when comparison is being processed764 sends polling interval765 returns 204 HTTP status766 when comparison is done767 does not send polling interval768 returns 200 HTTP status769 when user created corrupted vulnerability reports770 does not send polling interval771 returns 400 HTTP status772 behaves like authorize read pipeline773 public project with private builds774 restricts access to signed out users775 restricts access to other users776 GET #license_scanning_reports777 behaves like license scanning report comparison778 when the report is being parsed779 returns 204 HTTP status780 when comparison is being processed781 sends polling interval782 returns 204 HTTP status783 when comparison is done784 does not send polling interval785 returns 200 HTTP status786 when user created corrupted test reports787 does not send polling interval788 returns 400 HTTP status789 when a user is authorized to read the licenses790 returns 200 HTTP status791 when license_scanning feature is disabled792 returns 404 status793 behaves like authorize read pipeline794 public project with private builds795 restricts access to signed out users796 restricts access to other users797 GET #license_scanning_reports_collapsed798 behaves like license scanning report comparison799 when the report is being parsed800 returns 204 HTTP status801 when comparison is being processed802 sends polling interval803 returns 204 HTTP status804 when comparison is done805 does not send polling interval806 returns 200 HTTP status807 when user created corrupted test reports808 does not send polling interval809 returns 400 HTTP status810 when a user is authorized to read the licenses811 returns 200 HTTP status812 when license_scanning feature is disabled813 returns 404 status814 behaves like authorize read pipeline815 public project with private builds816 restricts access to signed out users817 restricts access to other users818 GET #metrics_reports819 when comparison is being processed820 sends polling interval821 returns 204 HTTP status822 when comparison is done823 does not send polling interval824 returns 200 HTTP status825 when user created corrupted test reports826 does not send polling interval827 returns 400 HTTP status828 behaves like authorize read pipeline829 public project with private builds830 restricts access to signed out users831 restricts access to other users832 behaves like DescriptionDiffActions834 when license is available835 GET description_diff836 returns the diff with the previous version837 returns the diff with the previous version of the specified start_version_id838 when description version is from another issuable839 returns 404840 when start_version_id is from another issuable841 returns 404842 when start_version_id is deleted843 returns 404844 when description version is deleted845 returns 404846 DELETE description_diff847 returns 200848 when start_version_id is present849 returns 200850 when version is already deleted851 returns 404852 when user cannot admin issuable853 returns 404854 when license is not available855 GET description_diff856 returns 404857 DELETE description_diff858 returns 404859API::Groups860 GET /groups861 when authenticated as user862 returns ldap details863 GET /groups/:id864 group_ip_restriction865 when the group_ip_restriction feature is not available866 returns 200867 when the group_ip_restriction feature is available868 returns 404 for request from ip not in the range869 returns 200 for request from ip in the range870 marked_for_deletion_on attribute871 when feature is available872 is exposed873 when feature is not available874 is not exposed875 file_template_project_id is a private project876 user has permission to private project877 returns file_template_project_id878 user does not have permission to private project879 does not return file_template_project_id880 user is not logged in881 does not return file_template_project_id882 PUT /groups/:id883 file_template_project_id884 does not update file_template_project_id if unlicensed885 updates file_template_project_id if licensed886 shared_runners_minutes_limit887 when authenticated as the group owner888 returns 200 if shared_runners_minutes_limit is not changing889 when authenticated as the admin890 updates the group for shared_runners_minutes_limit891 default_branch_protection892 authenticated as an admin893 feature_enabled: true, setting_enabled: true, default_branch_protection: 0894 updates the attribute as expected895 feature_enabled: false, setting_enabled: true, default_branch_protection: 0896 updates the attribute as expected897 feature_enabled: true, setting_enabled: false, default_branch_protection: 0898 updates the attribute as expected899 feature_enabled: false, setting_enabled: false, default_branch_protection: 0900 updates the attribute as expected901 authenticated a normal user902 feature_enabled: true, setting_enabled: true, default_branch_protection: 0903 updates the attribute as expected904 feature_enabled: false, setting_enabled: true, default_branch_protection: 0905 updates the attribute as expected906 feature_enabled: true, setting_enabled: false, default_branch_protection: 2907 updates the attribute as expected908 feature_enabled: false, setting_enabled: false, default_branch_protection: 0909 updates the attribute as expected910 prevent_forking_outside_group911 authenticated as group owner912 feature_enabled: false, prevent_forking_outside_group: false, result: nil913 updates the attribute as expected914 feature_enabled: false, prevent_forking_outside_group: true, result: nil915 updates the attribute as expected916 feature_enabled: true, prevent_forking_outside_group: false, result: false917 updates the attribute as expected918 feature_enabled: true, prevent_forking_outside_group: true, result: true919 updates the attribute as expected920 POST /groups921 when authenticated as user with group permissions922 creates an ldap_group_link if ldap_cn and ldap_access are supplied923 when shared_runners_minutes_limit is given924 when the current user is not an admin925 does not create a group with shared_runners_minutes_limit926 when the current user is an admin927 creates a group with shared_runners_minutes_limit928 when creating a group with `default_branch_protection` attribute929 authenticated as an admin930 feature_enabled: true, setting_enabled: true, default_branch_protection: 0931 creates the group with the expected `default_branch_protection` value932 feature_enabled: false, setting_enabled: true, default_branch_protection: 0933 creates the group with the expected `default_branch_protection` value934 feature_enabled: true, setting_enabled: false, default_branch_protection: 0935 creates the group with the expected `default_branch_protection` value936 feature_enabled: false, setting_enabled: false, default_branch_protection: 0937 creates the group with the expected `default_branch_protection` value938 authenticated a normal user939 feature_enabled: true, setting_enabled: true, default_branch_protection: 0940 creates the group with the expected `default_branch_protection` value941 feature_enabled: false, setting_enabled: true, default_branch_protection: 0942 creates the group with the expected `default_branch_protection` value943 feature_enabled: true, setting_enabled: false, default_branch_protection: 2944 creates the group with the expected `default_branch_protection` value945 feature_enabled: false, setting_enabled: false, default_branch_protection: 0946 creates the group with the expected `default_branch_protection` value947 when creating group on .com948 when top_level_group_creation_enabled feature flag is disabled949 does not create a top-level group950 creates a subgroup951 when top_level_group_creation_enabled feature flag is enabled952 creates a top-level group953 when creating group on self-managed954 when top_level_group_creation_enabled feature flag is disabled955 creates a top-level group956 creates a subgroup957 when top_level_group_creation_enabled feature flag is enabled958 creates a top-level group959 POST /groups/:id/ldap_sync960 when the ldap_group_sync feature is available961 when authenticated as the group owner962 returns 404 for a non existing group963 when the group is ready to sync964 returns 202 Accepted965 queues a sync job966 sets the ldap_sync state to pending967 when the group is already pending a sync968 returns 202 Accepted969 does not queue a sync job970 does not change the ldap_sync state971 when authenticated as the admin972 returns 202 Accepted973 when authenticated as a non-owner user that can see the group974 returns 403975 when authenticated as an user that cannot see the group976 returns 404977 when the ldap_group_sync feature is not available978 returns 404 (same as CE would)979 GET /groups/:id/projects980 when authenticated as user981 when security dashboard is enabled for a group982 returns only projects with security scans983 when security dashboard is disabled for a group984 returns all projects regardless of the security scans985 when namespace license checks are enabled986 when there are plans and projects987 only loads plans once988 when there are no projects989 completes the request without error990 GET group/:id/audit_events991 behaves like inaccessable by reporter role and lower992 for reporter993 returns 403 response994 for guest995 returns 403 response996 for anonymous997 returns 403 response998 when authenticated, as a member999 returns only events authored by current user1000 when authenticated, as a group owner1001 audit events feature is not available1002 behaves like 403 response1003 returns 4031004 audit events feature is available1005 returns 200 response1006 includes the correct pagination headers1007 does not include audit events of a different group1008 parameters1009 created_before parameter1010 returns audit events created before the given parameter1011 created_after parameter1012 returns audit events created after the given parameter1013 response schema1014 matches the response schema1015 GET group/:id/audit_events/:audit_event_id1016 behaves like inaccessable by reporter role and lower1017 for reporter1018 returns 403 response1019 for guest1020 returns 403 response1021 for anonymous1022 returns 403 response1023 when authenticated, as a member1024 returns 200 response1025 existing audit event of a different user1026 behaves like 404 response1027 returns 4041028 when authenticated, as a group owner1029 audit events feature is not available1030 behaves like 403 response1031 returns 4031032 audit events feature is available1033 existent audit event1034 returns 200 response1035 response schema1036 matches the response schema1037 invalid audit_event_id1038 behaves like 400 response1039 returns 4001040 non existent audit event1041 non existent audit event of a group1042 behaves like 404 response1043 returns 4041044 existing audit event of a different group1045 behaves like 404 response1046 returns 4041047 DELETE /groups/:id1048 feature is available1049 does not mark the group for deletion when the group has a paid gitlab.com subscription1050 marks for deletion a subgroup of a group with a paid gitlab.com subscription1051 when delayed group deletion is enabled1052 success1053 marks the group for delayed deletion1054 does not immediately enqueue the job to delete the group1055 when deletion adjourned period is 01056 behaves like immediately enqueues the job to delete the group1057 is expected to respond with numeric status code accepted1058 when delayed group deletion is disabled1059 behaves like immediately enqueues the job to delete the group1060 is expected to respond with numeric status code accepted1061 failure1062 returns error1063 feature is not available1064 does not delete the group when the group has a paid gitlab.com subscription1065 deletes a subgroup of a group with a paid gitlab.com subscription1066 behaves like immediately enqueues the job to delete the group1067 is expected to respond with numeric status code accepted1068 POST /groups/:id/restore1069 feature is available1070 authenticated as owner1071 restoring is successful1072 restores the group to original state1073 restoring fails1074 returns error1075 authenticated as user without access to the group1076 returns 4031077 feature is not available1078 returns 4041079 GET /groups/:id/provisioned_users1080 when current_user is not a group maintainer1081 returns 4031082 when current_user is a group maintainer1083 returns a list of users provisioned by the group1084 optional params1085 search param1086 filters by search1087 username param1088 filters by username1089 blocked param1090 filters by blocked1091 active param1092 filters by active status1093 created_after1094 filters by created_at1095 created_before1096 filters by created_at1097API::Issues1098 GET /issues1099 when authenticated1100 matches V4 response schema1101 blocking issues count1102 returns a blocking issues count of 0 if there are no blocking issues1103 returns a blocking issues count of 1 if there exists a blocking issue1104 filtering by weight1105 returns issues with specific weight1106 returns issues with no weight1107 returns issues with any weight1108 returns issues without specific weight1109 filtering by assignee_username1110 returns issues with multiple assignees1111 behaves like filtering by epic_id1112 returns issues without epic when epic_id is "None"1113 returns issues with any epic when epic_id is "Any"1114 returns issues with any epic when epic_id is specific1115 filtering by iteration1116 returns issues with specific iteration1117 returns issues with no iteration1118 returns issues with any iteration1119 returns no issues on user dashboard issues list1120 returns issues with a specific iteration title1121 GET /groups/:id/issues1122 avoids N+1 queries with epics1123 avoids N+1 queries with iterations1124 filtering by assignee_username1125 returns issues with multiple assignees1126 behaves like filtering by epic_id1127 returns issues without epic when epic_id is "None"1128 returns issues with any epic when epic_id is "Any"1129 returns issues with any epic when epic_id is specific1130 behaves like exposes epic1131 with epics feature1132 contains epic_iid in response1133 contains epic in response1134 and epic issue is not present1135 exposes epic as nil1136 without epics feature1137 does not contain epic_iid in response1138 does not contain epic_iid in response1139 behaves like exposes iteration1140 with iteration feature1141 contains iteration in response1142 without iterations feature1143 does not contain iteration in response1144 filtering by iteration1145 returns issues with Current iteration1146 GET /projects/:id/issues1147 filtering by assignee_username1148 returns issues with multiple assignees1149 behaves like filtering by epic_id1150 returns issues without epic when epic_id is "None"1151 returns issues with any epic when epic_id is "Any"1152 returns issues with any epic when epic_id is specific1153 on personal project1154 does not contain epic_iid in response1155 on group project1156 behaves like exposes epic1157 with epics feature1158 contains epic_iid in response1159 contains epic in response1160 and epic issue is not present1161 exposes epic as nil1162 without epics feature1163 does not contain epic_iid in response1164 does not contain epic_iid in response1165 behaves like exposes iteration1166 with iteration feature1167 contains iteration in response1168 without iterations feature1169 does not contain iteration in response1170 filtering by iteration1171 returns issues with Current iteration1172 GET /project/:id/issues/:issue_id1173 on personal project1174 does not contain epic_iid in response1175 on group project1176 behaves like exposes epic1177 with epics feature1178 contains epic_iid in response1179 contains epic in response1180 and epic issue is not present1181 exposes epic as nil1182 without epics feature1183 does not contain epic_iid in response1184 does not contain epic_iid in response1185 when specificied issue is of type task1186 returns a not found status code1187 POST /projects/:id/issues1188 creates a new project issue1189 does not allow the creation of an issue of type task1190 behaves like with epic parameter1191 for a group project1192 with epics feature1193 when user can admin epics1194 with epic_id parameter1195 sets epic on issue1196 with deprecated epic_iid parameter1197 sets epic on issue1198 when user can not edit epics1199 returns an error1200 without epics feature1201 does not set epic on issue1202 when both epic_id and epic_iid is used1203 returns an error1204 for a user project1205 does not set epic on issue1206 PUT /projects/:id/issues/:issue_iid to update weight1207 updates an issue with no weight1208 removes a weight from an issue1209 returns 400 if weight is less than minimum weight1210 creates a ResourceWeightEvent1211 does not create a system note1212 adds a note when the weight is changed1213 issuable weights unlicensed1214 ignores the update1215 PUT /projects/:id/issues/:issue_iid to update epic1216 behaves like with epic parameter1217 for a group project1218 with epics feature1219 when user can admin epics1220 with epic_id parameter1221 sets epic on issue1222 with deprecated epic_iid parameter1223 sets epic on issue1224 when user can not edit epics1225 returns an error1226 without epics feature1227 does not set epic on issue1228 when both epic_id and epic_iid is used1229 returns an error1230 for a user project1231 does not set epic on issue1232 PUT /projects/:id/issues/:issue_iid/metric_images/authorize1233 authorizes uploading with workhorse header1234 rejects requests that bypassed gitlab-workhorse1235 when using remote storage1236 when direct upload is enabled1237 responds with status 200, location of file remote store and object details1238 when direct upload is disabled1239 handles as a local file1240 POST /projects/:id/issues/:issue_iid/metric_images1241 user_role: :guest, own_issue: true, expected_status: :unauthorized_upload1242 behaves like unauthorized_upload1243 disallows the upload1244 user_role: :guest, own_issue: false, expected_status: :unauthorized_upload1245 behaves like unauthorized_upload1246 disallows the upload1247 user_role: :reporter, own_issue: true, expected_status: :can_upload_metric_image1248 behaves like can_upload_metric_image1249 creates a new metric image1250 user_role: :reporter, own_issue: false, expected_status: :can_upload_metric_image1251 behaves like can_upload_metric_image1252 creates a new metric image1253 file size too large1254 returns an error1255 object storage enabled1256 uploads to remote storage1257 behaves like can_upload_metric_image1258 creates a new metric image1259 GET /projects/:id/issues/:issue_iid/metric_images1260 user_role: :not_member, own_issue: false, issue_confidential: false, expected_status: :unauthorized_read1261 behaves like unauthorized_read1262 cannot read the metric images1263 user_role: :guest, own_issue: false, issue_confidential: true, expected_status: :unauthorized_read1264 behaves like unauthorized_read1265 cannot read the metric images1266 user_role: :guest, own_issue: true, issue_confidential: false, expected_status: :can_read_metric_image1267 behaves like can_read_metric_image1268 can read the metric images1269 user_role: :guest, own_issue: false, issue_confidential: false, expected_status: :can_read_metric_image1270 behaves like can_read_metric_image1271 can read the metric images1272 user_role: :reporter, own_issue: true, issue_confidential: false, expected_status: :can_read_metric_image1273 behaves like can_read_metric_image1274 can read the metric images1275 user_role: :reporter, own_issue: false, issue_confidential: false, expected_status: :can_read_metric_image1276 behaves like can_read_metric_image1277 can read the metric images1278 PUT /projects/:id/issues/:issue_iid/metric_images/:metric_image_id1279 user_role: :not_member, own_issue: false, issue_confidential: false, expected_status: :unauthorized_update1280 behaves like unauthorized_update1281 cannot delete the metric image1282 user_role: :not_member, own_issue: true, issue_confidential: false, expected_status: :unauthorized_update1283 behaves like unauthorized_update1284 cannot delete the metric image1285 user_role: :not_member, own_issue: true, issue_confidential: true, expected_status: :unauthorized_update1286 behaves like unauthorized_update1287 cannot delete the metric image1288 user_role: :guest, own_issue: false, issue_confidential: true, expected_status: :not_found1289 behaves like not_found1290 cannot delete the metric image1291 user_role: :guest, own_issue: false, issue_confidential: false, expected_status: :unauthorized_update1292 behaves like unauthorized_update1293 cannot delete the metric image1294 user_role: :guest, own_issue: true, issue_confidential: false, expected_status: :can_update_metric_image1295 behaves like can_update_metric_image1296 can update the metric images1297 user_role: :reporter, own_issue: true, issue_confidential: false, expected_status: :can_update_metric_image1298 behaves like can_update_metric_image1299 can update the metric images1300 user_role: :reporter, own_issue: false, issue_confidential: false, expected_status: :can_update_metric_image1301 behaves like can_update_metric_image1302 can update the metric images1303 user has access1304 metric image not found1305 returns an error1306 metric image cannot be updated1307 returns an error1308 DELETE /projects/:id/issues/:issue_iid/metric_images/:metric_image_id1309 user_role: :not_member, own_issue: false, issue_confidential: false, expected_status: :unauthorized_delete1310 behaves like unauthorized_delete1311 cannot delete the metric image1312 user_role: :not_member, own_issue: true, issue_confidential: false, expected_status: :unauthorized_delete1313 behaves like unauthorized_delete1314 cannot delete the metric image1315 user_role: :not_member, own_issue: true, issue_confidential: true, expected_status: :unauthorized_delete1316 behaves like unauthorized_delete1317 cannot delete the metric image1318 user_role: :guest, own_issue: false, issue_confidential: true, expected_status: :not_found1319 behaves like not_found1320 cannot delete the metric image1321 user_role: :guest, own_issue: false, issue_confidential: false, expected_status: :unauthorized_delete1322 behaves like unauthorized_delete1323 cannot delete the metric image1324 user_role: :guest, own_issue: true, issue_confidential: false, expected_status: :can_delete_metric_image1325 behaves like can_delete_metric_image1326 can delete the metric images1327 user_role: :reporter, own_issue: true, issue_confidential: false, expected_status: :can_delete_metric_image1328 behaves like can_delete_metric_image1329 can delete the metric images1330 user_role: :reporter, own_issue: false, issue_confidential: false, expected_status: :can_delete_metric_image1331 behaves like can_delete_metric_image1332 can delete the metric images1333 user has access1334 metric image not found1335 returns an error1336Projects::IssuesController1337 licensed features1338 licensed1339 #update1340 sets issue weight and epic1341 #new1342 when a vulnerability_id is provided1343 sets the vulnerability_id1344 sets the confidential flag to true by default1345 default templates1346 when a template has been set via project settings1347 does not select a default template1348 when a template has not been set via project settings1349 selects a default template1350 #create1351 sets issue weight and epic1352 when created from a vulnerability1353 links the issue to the vulnerability1354 creates vulnerability feedback1355 overwrites the default fields1356 does not show an error message1357 when vulnerability already has a linked issue1358 shows an error message1359 unlicensed1360 #update1361 does not set issue weight1362 #new1363 when a vulnerability_id is provided1364 does not build issue from a vulnerability1365 #create1366 does not set issue weight ane epic1367 GET #discussions1368 with a related system note1369 when authenticated1370 behaves like user can see confidential issue1371 when a user is a reporter1372 displays related notes1373 behaves like user can see confidential issue1374 when a user is a developer1375 displays related notes1376 behaves like user can see confidential issue1377 when a user is a maintainer1378 displays related notes1379 behaves like user cannot see confidential issue1380 when a user is a guest1381 redacts note related to a confidential issue1382 when unauthenticated1383 behaves like user cannot see confidential issue1384 when a user is a 01385 redacts note related to a confidential issue1386 is_gitlab_employee attribute1387 when user is a gitlab team member1388 renders the is_gitlab_employee attribute1389 when feature flag is disabled1390 behaves like non inclusion of gitlab team member badge1391 does not render the is_gitlab_employee attribute1392 when user is not a gitlab team member1393 behaves like non inclusion of gitlab team member badge1394 does not render the is_gitlab_employee attribute1395 when feature flag is disabled1396 behaves like non inclusion of gitlab team member badge1397 does not render the is_gitlab_employee attribute1398 PUT #update1399 changing the assignee1400 when the gitlab_employee_badge flag is off1401 does not expose the is_gitlab_employee attribute on the assignee1402 when the gitlab_employee_badge flag is on but we are not on gitlab.com1403 does not expose the is_gitlab_employee attribute on the assignee1404 when the gitlab_employee_badge flag is on and we are on gitlab.com1405 exposes the is_gitlab_employee attribute on the assignee1406 behaves like DescriptionDiffActions1408 when license is available1409 GET description_diff1410 returns the diff with the previous version1411 returns the diff with the previous version of the specified start_version_id1412 when description version is from another issuable1413 returns 4041414 when start_version_id is from another issuable1415 returns 4041416 when start_version_id is deleted1417 returns 4041418 when description version is deleted1419 returns 4041420 DELETE description_diff1421 returns 2001422 when start_version_id is present1423 returns 2001424 when version is already deleted1425 returns 4041426 when user cannot admin issuable1427 returns 4041428 when license is not available1429 GET description_diff1430 returns 4041431 DELETE description_diff1432 returns 4041433API::Notes1434 when noteable is an Epic1435 behaves like noteable API with confidential notes1436 behaves like noteable API1437 GET /groups/:id/epics/:noteable_id/notes1438 returns an array of notes1439 returns a 404 error when noteable id not found1440 returns 404 when not authorized1441 sorting1442 sorts by ascending order when requested1443 sorts by updated_at in descending order when requested1444 sorts by updated_at in ascending order when requested1445 without sort params1446 sorts by created_at in descending order by default1447 fetches notes using parent path as id paremeter1448 2 notes with equal created_at1449 page breaks first page correctly1450 page breaks second page correctly1451 GET /groups/:id/epics/:noteable_id/notes/:note_id1452 returns a note by id1453 returns a 404 error if note not found1454 POST /groups/:id/epics/:noteable_id/notes1455 creates a new note1456 returns a 400 bad request error if body not given1457 returns a 401 unauthorized error if user not authenticated1458 creates an activity event when a note is created1459 setting created_at1460 by an admin1461 sets the creation time on the new note1462 by a group owner1463 sets the creation time on the new note1464 by another user1465 ignores the given creation time1466 when the user is posting an award emoji on a noteable created by someone else1467 creates a new note1468 when the user is posting an award emoji on their own noteable1469 creates a new note1470 when user does not have access to read the noteable1471 responds with 4041472 when request exceeds the rate limit1473 prevents user from creating more notes1474 allows user in allow-list to create notes1475 PUT /groups/:id/epics/:noteable_id/notes/:note_id1476 returns a 404 error when note id not found1477 returns a 400 bad request error if body is empty1478 when only body param is present1479 updates the note text1480 when confidential param is present1481 does not allow to change confidentiality1482 DELETE /groups/:id/epics/:noteable_id/notes/:note_id1483 deletes a note1484 returns a 404 error when note id not found1485 behaves like 412 response1486 for a modified ressource1487 returns 412 with a JSON error1488 for an unmodified ressource1489 returns 204 with an empty body1490 POST /groups/:id/epics/:noteable_id/notes1491 creates a confidential note if confidential is set to true1492 when issue was promoted to epic1493 when user is reporter1494 returns previous issue system notes1495 when user is guest1496 does not return previous issue system notes1497API::Namespaces1498 GET /namespaces1499 when authenticated as admin1500 returns correct attributes1501 when authenticated as a regular user1502 returns correct attributes when user can admin group1503 returns correct attributes when user cannot admin group1504 when passing the requested hosted plan1505 without a requested plan1506 counts guest members1507 when requesting an invalid plan1508 counts guest members1509 when requesting bronze plan1510 counts guest members1511 when requesting premium plan1512 counts guest members1513 when requesting gold plan1514 does not count guest members1515 with gitlab subscription1516 includes max_seats_used1517 includes seats_in_use1518 avoids additional N+1 database queries1519 is expected not to exceed all query limit #<ActiveRecord::QueryRecorder:0x00007f79e7858aa0 @data={"/app/models/concerns/token_authenticatable_s...skip_cached=false, @skip_schema_queries=true, @query_recorder_debug=false, @log_file=nil, @count=56>1520 without gitlab subscription1521 does not include max_seats_used1522 does not include seats_in_use1523 PUT /namespaces/:id1524 when authenticated as admin1525 updates namespace using full_path when full_path contains dots1526 updates namespace using id1527 expires the CI minutes CachedQuota1528 when current CI minutes notification level is set1529 resets the current CI minutes notification level1530 when request has extra_shared_runners_minutes_limit param1531 updates the extra shared runners minutes limit1532 expires the CI minutes CachedQuota1533 updates pending builds data since adding extra minutes the quota is not used up anymore1534 when current CI minutes notification level is set1535 resets the current CI minutes notification level1536 when neither minutes limit params is provided1537 does not expire the CI minutes CachedQuota1538 when current CI minutes notification level is set1539 does not reset the current CI minutes notification level1540 when not authenticated as admin1541 retuns 4031542 when namespace not found1543 returns 4041544 when project namespace is passed1545 returns 4041546 when invalid params1547 attr: :shared_runners_minutes_limit1548 returns validation error for1549 attr: :additional_purchased_storage_size1550 returns validation error for1551 attr: :additional_purchased_storage_ends_on1552 returns validation error for1553 when namespace has a value for last_ci_minutes_notification_at1554 resets that value when assigning extra CI minutes1555 when namespace has a value for last_ci_minutes_usage_notification_level1556 resets that value when assigning extra CI minutes1557 when customer purchases extra CI minutes1558 ticks instance runners1559 when passing attributes for gitlab_subscription1560 creates the gitlab_subscription record1561 updates the gitlab_subscription record1562 when params are invalid1563 returns a 400 error1564 POST :id/gitlab_subscription1565 when authenticated as a regular user1566 returns an unauthorized error1567 when authenticated as an admin1568 fails when some attrs are missing1569 fails when the record is invalid1570 creates a subscription for the Group1571 sets the trial_starts_on to the start_date1572 creates a subscription using full_path when the namespace path contains dots1573 when namespace does not exist1574 creates a subscription using full_path when the namespace path contains dots1575 when creating subscription for project namespace1576 creates a subscription using full_path when the namespace path contains dots1577 GET :id/gitlab_subscription1578 with a regular user1579 returns an unauthorized error1580 with the owner of the Group1581 has access to the object1582 is successful using full_path when namespace path contains dots1583 returns data in a proper format1584 for groups inherits exclude_guests1585 returns true for Ultimate-like plans1586 when namespace is a project namespace1587 returns a 404 error1588 PUT :id/gitlab_subscription1589 when authenticated as a regular user1590 returns an unauthorized error1591 when authenticated as an admin1592 when namespace is not found1593 returns a 404 error1594 when namespace does not have a subscription1595 returns a 404 error1596 when namespace is a project namespace1597 returns a 404 error1598 when params are invalid1599 returns a 400 error1600 when params are valid1601 updates the subscription for the Group1602 is successful using full_path when namespace path contains dots1603 does not clear out existing data because of defaults1604 updates the timestamp when the attributes are the same1605 when starting a new term1606 resets the seat attributes for the subscription1607 setting the trial expiration date1608 when the attr has a future date1609 updates the trial expiration date1610API::LdapGroupLinks1611 GET /groups/:id/ldap_group_links1612 when unauthenticated1613 returns authentication error1614 when a less priviledged user1615 returns forbidden1616 when owner of the group1617 returns ldap group links1618 returns error if no ldap group links found1619 POST /groups/:id/ldap_group_links1620 adding a group link via CN1621 behaves like creates LDAP group link1622 when unauthenticated1623 returns authentication error1624 when a less priviledged user1625 does not allow less priviledged user to add LDAP group link1626 when owner of the group1627 returns ok and add ldap group link1628 returns error if LDAP group link already exists1629 returns a 400 error when CN or filter is not given1630 returns a 400 error when group access is not given1631 returns a 422 error when group access is not valid1632 adding a group link via filter1633 feature is available1634 behaves like creates LDAP group link1635 when unauthenticated1636 returns authentication error1637 when a less priviledged user1638 does not allow less priviledged user to add LDAP group link1639 when owner of the group1640 returns ok and add ldap group link1641 returns error if LDAP group link already exists1642 returns a 400 error when CN or filter is not given1643 returns a 400 error when group access is not given1644 returns a 422 error when group access is not valid1645 feature is not available1646 returns 4041647 DELETE /groups/:id/ldap_group_links/:cn1648 when unauthenticated1649 returns authentication error1650 when a less priviledged user1651 does not remove the LDAP group link1652 when owner of the group1653 removes ldap group link1654 returns 404 if LDAP group cn not used for a LDAP group link1655 DELETE /groups/:id/ldap_group_links/:provider/:cn1656 when unauthenticated1657 returns authentication error1658 when a less priviledged user1659 does not remove the LDAP group link1660 when owner of the group1661 returns 404 if LDAP group cn not used for a LDAP group link for the specified provider1662 removes ldap group link1663 DELETE /groups/:id/ldap_group_links1664 deleting a group link via CN and provider1665 behaves like deletes LDAP group link1666 when unauthenticated1667 returns authentication error1668 when a less priviledged user1669 does not remove the LDAP group link1670 when owner of the group1671 removes ldap group link1672 behaves like group link is not found1673 when owner of the group1674 returns 404 if LDAP input not used for a LDAP group link1675 deleting a group link via filter and provider1676 feature is available1677 behaves like deletes LDAP group link1678 when unauthenticated1679 returns authentication error1680 when a less priviledged user1681 does not remove the LDAP group link1682 when owner of the group1683 removes ldap group link1684 behaves like group link is not found1685 when owner of the group1686 returns 404 if LDAP input not used for a LDAP group link1687 feature is not available1688 returns 4041689API::EpicIssues1690 GET /groups/:id/epics/:epic_iid/issues1691 when epics feature is disabled1692 returns 403 forbidden error1693 when epics feature is enabled1694 when an error occurs1695 returns 401 unauthorized error for non authenticated user1696 returns 404 not found error for a user without permissions to see the group1697 when the request is correct1698 responds 200 and matches the response schema1699 accepts pagination params1700 returns multiple issues without performing N + 11701 returns multiple issues without performing N + 11702 POST /groups/:id/epics/:epic_iid/issues1703 when epics feature is disabled1704 returns 403 forbidden error1705 when epics feature is enabled1706 when an error occurs1707 returns 401 unauthorized error for non authenticated user1708 returns 404 not found error for a user without permissions to see the group1709 without permissions to admin the issue1710 returns 403 forbidden error1711 without permissions to read the epic1712 returns 403 forbidden error1713 when issue project is not under the epic group1714 returns an error1715 when the request is correct1716 returns 201 status1717 matches the response schema1718 assigns the issue to the epic1719 DELETE /groups/:id/epics/:epic_iid/issues/:epic_issue_id"1720 when epics feature is disabled1721 returns 403 forbidden error1722 when epics feature is enabled1723 when an error occurs1724 returns 401 unauthorized error for non authenticated user1725 returns 404 not found error for a user without permissions to see the group1726 With user without permissions to admin the issue1727 returns 403 forbidden error1728 without permissions to read the epic1729 returns 403 forbidden error1730 when epic_issue association does not include the epic in the url1731 returns 404 not found error1732 when the request is correct1733 returns 200 status1734 matches the response schema1735 removes the association1736 PUT /groups/:id/epics/:epic_iid/issues/:epic_issue_id1737 when epics feature is disabled1738 returns 403 forbidden error1739 when epics feature is enabled1740 when an error occurs1741 returns 401 unauthorized error for non authenticated user1742 returns 404 not found error for a user without permissions to see the group1743 returns 403 forbidden error for a user who can not move the issue1744 returns 404 not found error for the link of another epic1745 when the request is correct1746 returns 200 status1747 updates the positions values1748 matches the response schema1749Groups::EpicIssuesController1750 GET #index1751 behaves like unlicensed epics action1752 returns 403 status1753 when epics feature is enabled1754 when user has access to epic1755 returns status 2001756 returns the correct json1757 when user does not have access to epic1758 returns 404 status1759 POST #create1760 behaves like unlicensed epics action1761 returns 403 status1762 when epics feature is enabled1763 when user has permissions to create requested association1764 returns correct response for the correct issue reference1765 creates a new EpicIssue record1766 when user does not have permissions to create requested association1767 returns correct response for the correct issue reference1768 does not create a new EpicIssue record1769 DELETE #destroy1770 behaves like unlicensed epics action1771 returns 403 status1772 when epics feature is enabled1773 when user has permissions to delete the link1774 returns status 2001775 destroys the link1776 when user does not have permissions to delete the link1777 returns status 4031778 does not destroy the link1779 when the epic from the association does not equal epic from the path1780 returns status 4041781 does not destroy the link1782 when the epic_issue record does not exists1783 returns status 4041784 PUT #update1785 behaves like unlicensed epics action1786 returns 403 status1787 when epics feature is enabled1788 when user has permissions to admin the epic1789 returns status 2001790 updates the issue position value1791 when user does not have permissions to admin the epic1792 returns status 4031793 when the epic from the association does not equal epic from the path1794 returns status 4041795 when the epic_issue record does not exists1796 returns status 4041797Updating an epic tree1798 when epics and subepics features are enabled1799 when the user does not have permission1800 returns the error message1801 behaves like a mutation that does not update the tree1802 does not change relative_positions1803 when the user has permission1804 when moving an epic1805 when moving an epic is successful1806 updates the epics relative positions1807 returns nil in errors1808 when a new_parent_id is provided1809 updates the epics relative positions and updates the parent1810 returns nil in errors1811 when relative_position is invalid1812 behaves like a mutation that returns top-level errors1813 is expected to contain exactly "Variable $epicTreeReorderInput of type EpicTreeReorderInput! was provided invalid value for moved.relativePosition (Expected \"invalid\" to be one of: before, after)"1814 when object being moved is not supported type1815 returns the error message1816 when moving an epic fails due to the parents of the relative position object and the moving object mismatching1817 returns the error message1818 behaves like a mutation that does not update the tree1819 does not change relative_positions1820 when the new parent is another epic and subepics feature is disabled1821 returns the error message1822 behaves like a mutation that does not update the tree1823 does not change relative_positions1824 when moving an issue1825 updates the epics relative positions1826 returns nil in errors1827 when a new_parent_id is provided1828 updates the epic's relative positions and parent1829 returns nil in errors1830 when moving an issue fails due to the parents of the relative position object and the moving object mismatching1831 returns the error message1832 behaves like a mutation that does not update the tree1833 does not change relative_positions1834API::MergeRequestApprovals1835 GET :id/merge_requests/:merge_request_iid/approvals1836 retrieves the approval status1837 lists unapproved rule names1838 when private group approver1839 hides private group1840 when admin1841 shows all approver groups1842 when approvers are set to zero1843 returns a 2001844 when merge_status is cannot_be_merged_rechecking1845 returns `checking`1846 GET :id/merge_requests/:merge_request_iid/approval_settings1847 retrieves the approval rules details1848 behaves like an API endpoint for getting merge request approval state1849 when source rule is present1850 returns source rule details1851 when rule has groups1852 when user can view a group1853 includes group1854 when user cannot view a group included in groups1855 excludes private groups1856 when rule has a section1857 exposes the value of section when set1858 when target_branch is specified1859 filters the rules returned by target branch1860 GET :id/merge_requests/:merge_request_iid/approval_state1861 retrieves the approval state details1862 behaves like an API endpoint for getting merge request approval state1863 when source rule is present1864 returns source rule details1865 when rule has groups1866 when user can view a group1867 includes group1868 when user cannot view a group included in groups1869 excludes private groups1870 POST :id/merge_requests/:merge_request_iid/approvals1871 as a project admin1872 behaves like user allowed to override approvals_before_merge1873 when disable_overriding_approvers_per_merge_request is false on the project1874 allows you to set approvals required1875 when disable_overriding_approvers_per_merge_request is true on the project1876 does not allow you to set approvals_before_merge1877 as a global admin1878 behaves like user allowed to override approvals_before_merge1879 when disable_overriding_approvers_per_merge_request is false on the project1880 allows you to set approvals required1881 when disable_overriding_approvers_per_merge_request is true on the project1882 does not allow you to set approvals_before_merge1883 as a random user1884 does not allow you to override approvals required1885 POST :id/merge_requests/:merge_request_iid/approve1886 as the author of the merge request1887 returns a 4011888 as a valid approver1889 only shows group approvers visible to the user1890 when the sha param is not set1891 approves the merge request1892 when the sha param is correct1893 approves the merge request1894 when the sha param is incorrect1895 returns a 4091896 does not approve the merge request1897 when project requires force auth for approval1898 does not approve the merge request with no password1899 does not approve the merge request with incorrect password1900 approves the merge request with correct password1901 POST :id/merge_requests/:merge_request_iid/unapprove1902 as a user who has approved the merge request1903 unapproves the merge request1904 only shows group approvers visible to the user1905Boards::IssuesController1906 GET index1907 with invalid board id1908 returns a not found 404 response1909 when list id is present1910 with valid list id1911 returns issues that have the list label applied1912 returns blocked status for each issue where the blocking issue is still opened1913 with search param1914 returns matching issues1915 with invalid list id1916 returns a not found 404 response1917 when list id is missing1918 returns opened issues without board labels applied1919 with search param1920 returns matching issues using optimized search1921 with unauthorized user1922 returns a forbidden 403 response1923 POST create1924 with valid params1925 returns a successful 200 response1926 returns the created issue1927 with invalid params1928 when title is nil1929 returns an unprocessable entity 422 response1930 when list does not belongs to project board1931 returns a not found 404 response1932 with invalid board id1933 returns a not found 404 response1934 with invalid list id1935 returns a not found 404 response1936 with unauthorized user1937 returns a forbidden 403 response1938 PATCH update1939 with valid params1940 returns a successful 200 response1941 moves issue to the desired list1942 with invalid params1943 returns a unprocessable entity 422 response for invalid lists1944 returns a not found 404 response for invalid board id1945 returns a not found 404 response for invalid issue id1946 with unauthorized user1947 returns a forbidden 403 response1948API::EpicLinks1949 GET /groups/:id/epics/:epic_iid/epics1950 behaves like user does not have access1951 returns 403 when subepics feature is disabled1952 returns 404 not found error for a user without permissions to see the group1953 unauthenticated user1954 returns 401 unauthorized error1955 when subepics feature is enabled1956 returns 200 status1957 POST /groups/:id/epics/:epic_iid/epics/child_epic_id1958 behaves like user does not have access1959 returns 403 when subepics feature is disabled1960 returns 404 not found error for a user without permissions to see the group1961 unauthenticated user1962 returns 401 unauthorized error1963 when subepics feature is enabled1964 when user is guest1965 returns 4031966 when user is developer1967 returns 201 status1968 when target epic cannot be read1969 returns 404 status1970 POST /groups/:id/epics/:epic_iid/epics1971 behaves like user does not have access1972 returns 403 when subepics feature is disabled1973 returns 404 not found error for a user without permissions to see the group1974 unauthenticated user1975 returns 401 unauthorized error1976 when subepics feature is enabled1977 when user is guest1978 returns 4031979 when user is developer1980 returns 201 status1981 does apply the confidential parameter if set1982 when the parent epic is confidential1983 copies the confidentiality status from the parent epic1984 does not allow creating a non-confidential sub-epic1985 and epic has errors1986 returns 400 error1987 PUT /groups/:id/epics/:epic_iid/epics/:child_epic_id1988 behaves like user does not have access1989 returns 403 when subepics feature is disabled1990 returns 404 not found error for a user without permissions to see the group1991 unauthenticated user1992 returns 401 unauthorized error1993 when subepics are enabled1994 when user has permissions to reorder epics1995 returns status 2001996 when user does not have permissions to reorder epics1997 returns status 4031998 DELETE /groups/:id/epics/:epic_iid/epics1999 behaves like user does not have access2000 returns 403 when subepics feature is disabled2001 returns 404 not found error for a user without permissions to see the group2002 unauthenticated user2003 returns 401 unauthorized error2004 when epics feature is enabled2005 when user is guest2006 returns 4032007 when user is developer2008 returns 200 status2009 when epics feature is disabled2010 when user is developer2011 returns 403 status2012API::Internal::Kubernetes2013 GET /internal/kubernetes/project_info2014 returns 401 if Authorization header not sent2015 returns 401 if Authorization is for non-existent agent2016 not authenticated2017 returns 4012018 kubernetes_agent_internal_api feature flag disabled2019 returns 4042020 an agent is found2021 project is public2022 returns expected data2023 repository is for project members only2024 returns 4042025 project is private2026 returns 4042027 and agent belongs to project2028 returns 2002029 project is internal2030 returns 4042031 project does not exist2032 returns 4042033 project does not have access to the feature2034 returns 4042035 PUT /internal/kubernetes/modules/starboard_vulnerability2036 returns 401 if Authorization header not sent2037 returns 401 if Authorization is for non-existent agent2038 not authenticated2039 returns 4012040 kubernetes_agent_internal_api feature flag disabled2041 returns 4042042 is authenticated for an agent2043 returns ok when a vulnerability is created2044 accepts the same payload twice2045 responds with the created vulnerability's UUID2046 when payload is invalid2047 returns bad request2048 when required parameters are missing2049 missing_param: :vulnerability2050 returns bad request2051 missing_param: :scanner2052 returns bad request2053 when feature is not available2054 returns forbidden for non licensed project2055 POST /internal/kubernetes/modules/starboard_vulnerability/scan_result2056 returns 401 if Authorization header not sent2057 returns 401 if Authorization is for non-existent agent2058 not authenticated2059 returns 4012060 kubernetes_agent_internal_api feature flag disabled2061 returns 4042062 is authenticated for an agent2063 returns ok2064 resolves undetected vulnerabilities2065 marks undetected vulnerabilities as resolved on default branch2066 does not resolve vulnerabilities with other report types2067 does not resolve other projects' vulnerabilities2068 when payload is invalid2069 returns bad request2070 when feature is not available2071 returns forbidden for non licensed project2072 GET /internal/kubernetes/modules/starboard_vulnerability/scan_execution_policies2073 returns 401 if Authorization header not sent2074 returns 401 if Authorization is for non-existent agent2075 not authenticated2076 returns 4012077 kubernetes_agent_internal_api feature flag disabled2078 returns 4042079 when security_orchestration_policies is not licensed2080 returns 4042081 when security_orchestration_policies is licensed2082 when policies are present2083 returns expected data2084 when policies are empty2085 returns empty array2086API::StatusChecks2087 GET :id/merge_requests/:merge_request_iid/status_checks2088 when current_user has access2089 when merge request has received status check responses2090 returns a 2002091 returns the total number of status checks for the MRs project2092 has the correct status values2093 POST :id/:merge_requests/:merge_request_iid/status_check_responses2094 permissions2095 user_permissions: :maintainer, applies_to_target_project: true, expected_status: :created2096 returns the correct status2097 user_permissions: :maintainer, applies_to_target_project: false, expected_status: :not_found2098 returns the correct status2099 user_permissions: :developer, applies_to_target_project: true, expected_status: :created2100 returns the correct status2101 user_permissions: :developer, applies_to_target_project: false, expected_status: :not_found2102 returns the correct status2103 user_permissions: :guest, applies_to_target_project: true, expected_status: :forbidden2104 returns the correct status2105 user_permissions: :guest, applies_to_target_project: false, expected_status: :not_found2106 returns the correct status2107 when user has access2108 when external status check ID does not belong to the requested project2109 returns a not found status2110 when sha is not the source branch HEAD2111 does not create a new approval2112 returns a conflict error2113 when user is not authenticated2114 returns an unauthorized status2115 DELETE projects/:id/external_status_checks/:check_id2116 deletes the specified rule2117 when feature is disabled, unlicensed or user has permission2118 licensed: false, project_owner: false, status: :not_found2119 returns the correct status code2120 licensed: false, project_owner: true, status: :unauthorized2121 returns the correct status code2122 licensed: true, project_owner: false, status: :not_found2123 returns the correct status code2124 licensed: true, project_owner: true, status: :success2125 returns the correct status code2126 POST projects/:id/external_status_checks2127 successfully creating new external approval rule2128 creates a new external approval rule2129 with protected branches2130 returns expected status code2131 creates protected branch records2132 responds with expected JSON2133 when feature is disabled, unlicensed or user has permission2134 licensed: false, project_owner: false, status: :not_found2135 returns the correct status code2136 licensed: false, project_owner: true, status: :unauthorized2137 returns the correct status code2138 licensed: true, project_owner: false, status: :not_found2139 returns the correct status code2140 licensed: true, project_owner: true, status: :created2141 returns the correct status code2142 GET projects/:id/external_status_checks2143 responds with expected JSON2144 paginates correctly2145 when feature is disabled, unlicensed or user has permission2146 licensed: false, project_owner: false, status: :not_found2147 returns the correct status code2148 licensed: false, project_owner: true, status: :unauthorized2149 returns the correct status code2150 licensed: true, project_owner: false, status: :not_found2151 returns the correct status code2152 licensed: true, project_owner: true, status: :success2153 returns the correct status code2154 PUT projects/:id/external_status_checks/:check_id2155 successfully updating external approval rule2156 updates an approval rule2157 responds with correct http status2158 when referencing a protected branch outside of the project2159 is invalid2160 with protected branches2161 returns expected status code2162 creates protected branch records2163 responds with expected JSON2164 when feature is disabled, unlicensed or user has permission2165 licensed: false, project_owner: false, status: :not_found2166 returns the correct status code2167 licensed: false, project_owner: true, status: :unauthorized2168 returns the correct status code2169 licensed: true, project_owner: false, status: :not_found2170 returns the correct status code2171 licensed: true, project_owner: true, status: :success2172 returns the correct status code2173Git HTTP requests2174 User with no identities2175 when Kerberos token is provided2176 when authentication fails because of invalid Kerberos token2177 responds with status 401 Unauthorized2178 when authentication fails because of unknown Kerberos identity2179 responds with status 401 Unauthorized2180 when authentication succeeds2181 when the user has access to the project2182 complies with RFC45592183 when the user is blocked2184 responds with status 403 Forbidden2185 when the user isn't blocked2186 responds with status 200 OK2187 updates the user last activity2188 when the user doesn't have access to the project2189 responds with status 404 Not Found2190 complies with RFC45592191 when license is not provided2192 behaves like pulls are allowed2193 is expected to eq "application/vnd.gitlab-workhorse+json"2194 behaves like pushes are allowed2195 is expected to eq "application/vnd.gitlab-workhorse+json"2196 when SSO is enforced2197 behaves like pulls are allowed2198 is expected to eq "application/vnd.gitlab-workhorse+json"2199 when user cannot use password-based login2200 with feature flag switched off2201 behaves like pulls are allowed2202 is expected to eq "application/vnd.gitlab-workhorse+json"2203 behaves like pushes are allowed2204 is expected to eq "application/vnd.gitlab-workhorse+json"2205 with feature flag switched on2206 responds with status 401 Unauthorized for pull action2207 responds with status 401 Unauthorized for push action2208 when username and personal access token are provided2209 behaves like pulls are allowed2210 is expected to eq "application/vnd.gitlab-workhorse+json"2211 behaves like pushes are allowed2212 is expected to eq "application/vnd.gitlab-workhorse+json"2213 when user has 2FA enabled2214 when username and personal access token are provided2215 rejects the push attempt for read_repository scope2216 accepts the push attempt for write_repository scope2217 accepts the pull attempt for read_repository scope2218 accepts the pull attempt for api scope2219 accepts the push attempt for api scope2220 behaves like pulls are allowed2221 is expected to eq "application/vnd.gitlab-workhorse+json"2222 behaves like pushes are allowed2223 is expected to eq "application/vnd.gitlab-workhorse+json"2224 when namespace storage limits are enforced2225 behaves like pushes are allowed2226 is expected to eq "application/vnd.gitlab-workhorse+json"2227 when the limit has been exceeded2228 behaves like pushes are allowed2229 is expected to eq "application/vnd.gitlab-workhorse+json"2230Groups::Security::CredentialsController2231 GET #index2232 when `credentials_inventory` feature is enabled2233 for a group that enforces group managed accounts2234 for a user with access to view credentials inventory2235 responds with 2002236 filtering by type of credential2237 no credential type specified2238 behaves like filtering by `personal_access_tokens`2239 is expected to contain exactly #<PersonalAccessToken id: 493, user_id: 1185, name: "PAT 493", revoked: false, expires_at: "2022-07-0...expire_notification_delivered: false, last_used_at: nil, after_expiry_notification_delivered: false>, #<PersonalAccessToken id: 494, user_id: 1184, name: "PAT 494", revoked: false, expires_at: "2022-07-0...expire_notification_delivered: false, last_used_at: nil, after_expiry_notification_delivered: false>, and #<PersonalAccessToken id: 495, user_id: 1185, name: "PAT 495", revoked: false, expires_at: "2022-07-0...expire_notification_delivered: false, last_used_at: nil, after_expiry_notification_delivered: false>2240 non-existent credential type specified2241 behaves like filtering by `personal_access_tokens`2242 is expected to contain exactly #<PersonalAccessToken id: 493, user_id: 1185, name: "PAT 493", revoked: false, expires_at: "2022-07-0...expire_notification_delivered: false, last_used_at: nil, after_expiry_notification_delivered: false>, #<PersonalAccessToken id: 496, user_id: 1184, name: "PAT 496", revoked: false, expires_at: "2022-07-0...expire_notification_delivered: false, last_used_at: nil, after_expiry_notification_delivered: false>, and #<PersonalAccessToken id: 497, user_id: 1185, name: "PAT 497", revoked: false, expires_at: "2022-07-0...expire_notification_delivered: false, last_used_at: nil, after_expiry_notification_delivered: false>2243 credential type specified as `personal_access_tokens`2244 behaves like filtering by `personal_access_tokens`2245 is expected to contain exactly #<PersonalAccessToken id: 493, user_id: 1185, name: "PAT 493", revoked: false, expires_at: "2022-07-0...expire_notification_delivered: false, last_used_at: nil, after_expiry_notification_delivered: false>, #<PersonalAccessToken id: 498, user_id: 1184, name: "PAT 498", revoked: false, expires_at: "2022-07-0...expire_notification_delivered: false, last_used_at: nil, after_expiry_notification_delivered: false>, and #<PersonalAccessToken id: 499, user_id: 1185, name: "PAT 499", revoked: false, expires_at: "2022-07-0...expire_notification_delivered: false, last_used_at: nil, after_expiry_notification_delivered: false>2246 user scope2247 does not show the credentials of a user outside the group2248 credential type specified as `ssh_keys`2249 filters by ssh keys2250 for a user without access to view credentials inventory2251 responds with 4042252 for a group that does not enforce group managed accounts2253 responds with 4042254 when `credentials_inventory` feature is disabled2255 returns 4042256 DELETE #destroy2257 behaves like credentials inventory delete SSH key2258 admin user2259 when `credentials_inventory` feature is enabled2260 and the ssh_key exists2261 and it removes the key2262 renders a success message2263 notifies the key owner2264 and it fails to remove the key2265 renders a failure message2266 and the ssh_key does not exist2267 renders a not found message2268 when `credentials_inventory` feature is disabled2269 returns 4042270 non-admin user2271 returns 4042272 PUT #revoke2273 when `credentials_inventory` feature is enabled2274 for a group that enforces group managed accounts2275 for a user with access to view credentials inventory2276 non-existent personal access token specified2277 behaves like responds with 4042278 is expected to respond with numeric status code not_found2279 with an existing personal access token2280 personal access token is already revoked2281 behaves like displays the flash success message2282 is expected to start with "Revoked personal access token "2283 personal access token is already expired2284 behaves like displays the flash success message2285 is expected to start with "Revoked personal access token "2286 does not have permissions to revoke the credential2287 behaves like responds with 4042288 is expected to respond with numeric status code not_found2289 personal access token is already revoked2290 behaves like displays the flash success message2291 is expected to start with "Revoked personal access token "2292 personal access token is already expired2293 behaves like displays the flash success message2294 is expected to start with "Revoked personal access token "2295 personal access token is not revoked or expired2296 informs the token owner2297 behaves like displays the flash success message2298 is expected to start with "Revoked personal access token "2299 when credentials_inventory_revocation_emails flag is disabled2300 does not inform the token owner2301 for a user without access to view credentials inventory2302 behaves like responds with 4042303 is expected to respond with numeric status code not_found2304 for a group that does not enforce group managed accounts2305 responds with 4042306 when `credentials_inventory` feature is disabled2307 behaves like responds with 4042308 is expected to respond with numeric status code not_found2309SubscriptionsController2310 GET #new2311 behaves like unauthenticated subscription request2312 is expected to respond with numeric status code redirect2313 is expected to redirect to "/users/sign_up?redirect_from=checkout"2314 stores subscription URL for later2315 with authenticated user2316 is expected to render template layouts/minimal2317 is expected to render template new2318 when there are groups eligible for the subscription2319 assigns the eligible groups for the subscription2320 and request specify which group to use2321 assign requested group2322 request does not specify namespace2323 falls back to users namespace2324 when there are no eligible groups for the subscription2325 assigns eligible groups as an empty array if CustomerDot returns empty payload2326 assigns eligible groups as an empty array if user is not owner of any groups2327 GET #buy_minutes2328 with authenticated user2329 when the add-on plan cannot be found2330 is expected to respond with numeric status code not_found2331 when there are groups eligible for the addon2332 is expected to render template layouts/minimal2333 is expected to render template buy_minutes2334 assigns the group for the addon2335 GET #buy_storage2336 with authenticated user2337 when the add-on plan cannot be found2338 is expected to respond with numeric status code not_found2339 when there are groups eligible for the addon2340 is expected to render template layouts/minimal2341 is expected to render template buy_storage2342 assigns the group for the addon2343 GET #payment_form2344 with unauthorized user2345 is expected to respond with numeric status code redirect2346 is expected to redirect to "/users/sign_in"2347 with authorized user2348 is expected to respond with numeric status code ok2349 returns the data attribute of the client response in JSON format2350 GET #payment_method2351 with unauthorized user2352 is expected to respond with numeric status code redirect2353 is expected to redirect to "/users/sign_in"2354 with authorized user2355 is expected to respond with numeric status code ok2356 returns the data attribute of the client response in JSON format2357 GET #validate_payment_method2358 with unauthorized user2359 is expected to respond with numeric status code unauthorized2360 with authorized user2361 is expected to respond with numeric status code ok2362 is expected to be successful2363 POST #create2364 with unauthorized user2365 is expected to respond with numeric status code unauthorized2366 with authorized user2367 when setting up for a company2368 updates the setup_for_company attribute of the current user2369 creates a group based on the company2370 when not setting up for a company2371 does not update the setup_for_company attribute of the current user2372 creates a group based on the user2373 when an error occurs creating a group2374 returns the errors in json format2375 when invalid name is passed2376 returns the errors in json format2377 tracks errors2378 on successful creation of a subscription2379 is expected to respond with numeric status code ok2380 returns the group edit location in JSON format2381 on unsuccessful creation of a subscription2382 is expected to respond with numeric status code ok2383 returns the error message in JSON format2384 when selecting an existing group2385 when the selected group is eligible for a new subscription2386 does not create a group2387 returns the selected group location in JSON format2388 when having an explicit redirect2389 is expected to respond with numeric status code ok2390 returns the provided redirect path as location2391 tracks the creation of the subscriptions2392 purchasing an addon2393 tracks creation with add-on success message2394 when the selected group is ineligible for a new subscription2395 does not create a group2396 returns a 404 not found2397 when selected group is a sub group2398 is expected to respond with numeric status code not_found2399 when selecting a non existing group2400 is expected to respond with numeric status code not_found2401 when selecting a group without owner role2402 is expected to respond with numeric status code not_found2403Projects::Settings::AccessTokensController2404 GET /:namespace/:project/-/settings/access_tokens2405 behaves like feature unavailable2406 with a free plan2407 is expected to respond with numeric status code not_found2408 when user is not a maintainer with a paid group plan2409 is expected to respond with numeric status code not_found2410 behaves like GET resource access tokens available2411 retrieves active resource access tokens2412 retrieves inactive resource access tokens2413 lists all available scopes2414 retrieves newly created personal access token value2415 POST /:namespace/:project/-/settings/access_tokens2416 behaves like feature unavailable2417 with a free plan2418 is expected to respond with numeric status code not_found2419 when user is not a maintainer with a paid group plan2420 is expected to respond with numeric status code not_found2421 behaves like POST resource access tokens available2422 returns success message2423 creates resource access token2424 creates project bot user2425 stores newly created token redis store2426 is expected to change `User.count` by 12427 is expected to change `PersonalAccessToken.count` by 12428 when unsuccessful2429 does not create the token2430 does not add the project bot as a member2431 does not create the project bot user2432 shows a failure alert2433 PUT /:namespace/:project/-/settings/access_tokens/:id2434 behaves like feature unavailable2435 with a free plan2436 is expected to respond with numeric status code not_found2437 when user is not a maintainer with a paid group plan2438 is expected to respond with numeric status code not_found2439 behaves like PUT resource access tokens available2440 calls delete user worker2441 removes membership of bot user2442 converts issuables of the bot user to ghost user2443 deletes project bot user2444 when unsuccessful2445 shows a failure alert2446Groups::AuditEventsController2447 GET #index2448 when authorized owner2450 behaves like when audit_events feature is available2451 renders index with 200 status code2452 tracks search event2453 invokes AuditLogFinder with correct arguments2454 behaves like AuditLogFinder params2455 has the correct params2456 author2457 when no author entity type is specified2458 behaves like AuditLogFinder params2459 has the correct params2460 when the author entity type is specified2461 behaves like AuditLogFinder params2462 has the correct params2463 ordering2464 when no sort order is specified2465 behaves like orders by id descending2466 orders by id descending2467 when sorting by latest events first2468 behaves like orders by id descending2469 orders by id descending2470 when sorting by oldest events first2471 orders by id ascending2472 when sorting by an unsupported sort order2473 behaves like orders by id descending2474 orders by id descending2475 pagination2476 sets instance variables2477 paginates audit events, without casting a count query2478 when invalid date2479 created_before: "invalid-date", created_after: nil2480 returns an error2481 created_before: nil, created_after: true2482 returns an error2483 created_before: "2021-13-10", created_after: nil2484 returns an error2485 created_before: nil, created_after: "2021-02-31"2486 returns an error2487 created_before: "2021-03-31", created_after: "2021-02-31"2488 returns an error2489 when date range is greater than limit2490 behaves like a date range error is returned2491 created_after: "2021-01-01", created_before: "2021-02-02"2492 returns an error2493 created_after: "2022-01-31", created_before: nil2494 returns an error2495 behaves like tracking unique visits2496 tracks unique visit if the format is HTML2497 tracks unique visit if DNT is not enabled2498 does not track unique visit if DNT is enabled2499 does not track unique visit if the format is JSON2500 when authorized auditor2502 behaves like when audit_events feature is available2503 renders index with 200 status code2504 tracks search event2505 invokes AuditLogFinder with correct arguments2506 behaves like AuditLogFinder params2507 has the correct params2508 author2509 when no author entity type is specified2510 behaves like AuditLogFinder params2511 has the correct params2512 when the author entity type is specified2513 behaves like AuditLogFinder params2514 has the correct params2515 ordering2516 when no sort order is specified2517 behaves like orders by id descending2518 orders by id descending2519 when sorting by latest events first2520 behaves like orders by id descending2521 orders by id descending2522 when sorting by oldest events first2523 orders by id ascending2524 when sorting by an unsupported sort order2525 behaves like orders by id descending2526 orders by id descending2527 pagination2528 sets instance variables2529 paginates audit events, without casting a count query2530 when invalid date2531 created_before: "invalid-date", created_after: nil2532 returns an error2533 created_before: nil, created_after: true2534 returns an error2535 created_before: "2021-13-10", created_after: nil2536 returns an error2537 created_before: nil, created_after: "2021-02-31"2538 returns an error2539 created_before: "2021-03-31", created_after: "2021-02-31"2540 returns an error2541 when date range is greater than limit2542 behaves like a date range error is returned2543 created_after: "2021-01-01", created_before: "2021-02-02"2544 returns an error2545 created_after: "2022-01-31", created_before: nil2546 returns an error2547 behaves like tracking unique visits2548 tracks unique visit if the format is HTML2549 tracks unique visit if DNT is not enabled2550 does not track unique visit if DNT is enabled2551 does not track unique visit if the format is JSON2552 authorized as user without admin group permission2553 returns only events by current user2554 unauthorized2555 renders 4042556Groups::SsoController2557 SAML configured2558 has status 2002559 malicious redirect parameter falls back to group_path2560 passes group name to the view2561 unlinking user2562 allows account unlinking2563 with block_password_auth_for_saml_users feature flag switched off2564 does not sign out user provisioned by this group2565 with block_password_auth_for_saml_users feature flag switched on2566 signs out user provisioned by this group2567 when SAML is disabled for the group2568 renders 4042569 still allows account unlinking2570 when SAML trial has expired2571 DELETE /unlink still allows account unlinking2572 GET /saml renders 4042573 when user is not signed in2574 acts as route not found2575 when group has moved2576 redirects to new location2577 when current user has a SAML provider configured2578 renders `devise_empty` template2579 when current user does not have a SAML provider configured2580 renders `devise` template2581 saml_provider is unconfigured for the group2582 when user cannot configure Group SAML2583 renders 4042584 when user can admin group_saml2585 redirects to the Group SAML config page2586 sets a flash message explaining that setup is required2587 group does not exist2588 renders 4042589 when user is not signed in2590 acts as route not found2591 GET sign_up_form2592 with SAML configured2593 and group managed accounts enforced2594 renders 4042595 and oauth data available2596 has status 2002597 suggests first available username automatically2598 and belongs to different group2599 renders 4042600 and group managed accounts enforcing is disabled2601 renders 4042602 POST sign_up2603 calls for GroupSaml::SignUpService2604 when service fails2605 renders the form2606 when service succeeds2607 redirects to sign in2608 when user is already signed in2609 signs user out2610 POST authorize_managed_account2611 when user is already signed in2612 when service succeeds2613 redirects to group2614 when service fails2615 renders the form2616Admin::CredentialsController2617 GET #index2618 admin user2619 when `credentials_inventory` feature is enabled2620 responds with 2002621 filtering by type of credential2622 no credential type specified2623 behaves like filtering by `personal_access_tokens`2624 is expected to contain exactly #<PersonalAccessToken id: 527, user_id: 1253, name: "PAT 521", revoked: false, expires_at: "2022-07-0...expire_notification_delivered: false, last_used_at: nil, after_expiry_notification_delivered: false>, #<PersonalAccessToken id: 529, user_id: 1253, name: "PAT 523", revoked: false, expires_at: "2022-07-0...expire_notification_delivered: false, last_used_at: nil, after_expiry_notification_delivered: false>, and #<PersonalAccessToken id: 530, user_id: 1253, name: "PAT 524", revoked: false, expires_at: "2022-07-0...expire_notification_delivered: false, last_used_at: nil, after_expiry_notification_delivered: false>2625 non-existent credential type specified2626 behaves like filtering by `personal_access_tokens`2627 is expected to contain exactly #<PersonalAccessToken id: 527, user_id: 1253, name: "PAT 521", revoked: false, expires_at: "2022-07-0...expire_notification_delivered: false, last_used_at: nil, after_expiry_notification_delivered: false>, #<PersonalAccessToken id: 529, user_id: 1253, name: "PAT 523", revoked: false, expires_at: "2022-07-0...expire_notification_delivered: false, last_used_at: nil, after_expiry_notification_delivered: false>, and #<PersonalAccessToken id: 530, user_id: 1253, name: "PAT 524", revoked: false, expires_at: "2022-07-0...expire_notification_delivered: false, last_used_at: nil, after_expiry_notification_delivered: false>2628 credential type specified as `personal_access_tokens`2629 behaves like filtering by `personal_access_tokens`2630 is expected to contain exactly #<PersonalAccessToken id: 527, user_id: 1253, name: "PAT 521", revoked: false, expires_at: "2022-07-0...expire_notification_delivered: false, last_used_at: nil, after_expiry_notification_delivered: false>, #<PersonalAccessToken id: 529, user_id: 1253, name: "PAT 523", revoked: false, expires_at: "2022-07-0...expire_notification_delivered: false, last_used_at: nil, after_expiry_notification_delivered: false>, and #<PersonalAccessToken id: 530, user_id: 1253, name: "PAT 524", revoked: false, expires_at: "2022-07-0...expire_notification_delivered: false, last_used_at: nil, after_expiry_notification_delivered: false>2631 credential type specified as `ssh_keys`2632 filters by ssh keys2633 credential type specified as `project_access_tokens`2634 filters by project access tokens2635 credential type specified as `gpg_keys`2636 filters by gpg keys2637 avoids N+1 queries2638 when `credentials_inventory` feature is disabled2639 returns 4042640 non-admin user2641 returns 4042642 DELETE #destroy2643 behaves like credentials inventory delete SSH key2644 admin user2645 when `credentials_inventory` feature is enabled2646 and the ssh_key exists2647 and it removes the key2648 renders a success message2649 notifies the key owner2650 and it fails to remove the key2651 renders a failure message2652 and the ssh_key does not exist2653 renders a not found message2654 when `credentials_inventory` feature is disabled2655 returns 4042656 non-admin user2657 returns 4042658 PUT #revoke2659 admin user2660 when `credentials_inventory` feature is enabled2661 non-existent personal access token specified2662 behaves like responds with 4042663 is expected to respond with numeric status code not_found2664 is expected to respond with numeric status code not_found2665 with an existing personal access token2666 does not have permissions to revoke the credential2667 behaves like displays the flash error message2668 is expected to eql "Not permitted to revoke"2669 personal access token is already revoked2670 behaves like displays the flash success message2671 is expected to start with "Revoked personal access token "2672 aggregate_failures2673 personal access token is already expired2674 behaves like displays the flash success message2675 is expected to start with "Revoked personal access token "2676 aggregate_failures2677 personal access token is not revoked or expired2678 informs the token owner2679 behaves like displays the flash success message2680 is expected to start with "Revoked personal access token "2681 aggregate_failures2682 when `credentials_inventory` feature is disabled2683 behaves like responds with 4042684 is expected to respond with numeric status code not_found2685 is expected to respond with numeric status code not_found2686 non-admin user2687 behaves like responds with 4042688 is expected to respond with numeric status code not_found2689 is expected to respond with numeric status code not_found2690Admin::CredentialsController2691 behaves like tracking unique visits2692 tracks unique visit if the format is HTML2693 tracks unique visit if DNT is not enabled2694 does not track unique visit if DNT is enabled2695 does not track unique visit if the format is JSON2696Querying an Iteration2697 when the user has access to the iteration2698 is expected to include {"title" => nil}2699 behaves like a working graphql query2700 returns a successful response2701 when `report` field is included2702 when fullPath argument is not provided2703 current_user: group_member, expected_scope_count: 42704 is expected to include {"burnupTimeSeries" => [{"scopeCount" => 4}]}2705 current_user: project1_member, expected_scope_count: 42706 is expected to include {"burnupTimeSeries" => [{"scopeCount" => 4}]}2707 when fullPath argument is provided2708 when current user has authorized access to one or more projects under the namespace2709 scope: group, current_user: group_member, expected_scope_count: 42710 is expected to include {"burnupTimeSeries" => [{"scopeCount" => 4}]}2711 scope: group, current_user: project1_member, expected_scope_count: 42712 is expected to include {"burnupTimeSeries" => [{"scopeCount" => 4}]}2713 scope: project1, current_user: group_member, expected_scope_count: 22714 is expected to include {"burnupTimeSeries" => [{"scopeCount" => 2}]}2715 scope: project1, current_user: project1_member, expected_scope_count: 22716 is expected to include {"burnupTimeSeries" => [{"scopeCount" => 2}]}2717 scope: project2, current_user: project2_member, expected_scope_count: 12718 is expected to include {"burnupTimeSeries" => [{"scopeCount" => 1}]}2719 scope: project2, current_user: group_member, expected_scope_count: 12720 is expected to include {"burnupTimeSeries" => [{"scopeCount" => 1}]}2721 scope: subgroup, current_user: group_member, expected_scope_count: 12722 is expected to include {"burnupTimeSeries" => [{"scopeCount" => 1}]}2723 scope: subgroup, current_user: subgroup_member, expected_scope_count: 12724 is expected to include {"burnupTimeSeries" => [{"scopeCount" => 1}]}2725 when current user cannot access the given namespace2726 scope: other_group, current_user: group_member2727 raises an exception2728 scope: project1, current_user: subgroup_member2729 raises an exception2730 scope: project1, current_user: project2_member2731 raises an exception2732 scope: project2, current_user: project1_member2733 raises an exception2734 scope: subgroup, current_user: project1_member2735 raises an exception2736 when the user does not have access to the iteration2737 is expected to be nil2738 behaves like a working graphql query2739 returns a successful response2740 when ID argument is missing2741 raises an exception2742 scoped path2743 inside a project context2744 group-owned iteration2745 behaves like scoped path2746 is expected to include {"scopedPath" => "/group427/project360/-/iterations/11", "scopedUrl" => /\/group427\/project360\/-\/iterations\/11$/, "webPath" => "/groups/group427/-/iterations/11", "webUrl" => /\/groups\/group427\/-\/iterations\/11$/}2747 when given a raw model id (backward compatibility)2748 is expected to include {"scopedPath" => "/group427/project360/-/iterations/11", "scopedUrl" => /\/group427\/project360\/-\/iterations\/11$/, "webPath" => "/groups/group427/-/iterations/11", "webUrl" => /\/groups\/group427\/-\/iterations\/11$/}2749 inside a group context2750 group-owned iteration2751 behaves like scoped path2752 is expected to include {"scopedPath" => "/groups/group427/-/iterations/11", "scopedUrl" => /\/groups\/group427\/-\/iterations\/11$/, "webPath" => "/groups/group427/-/iterations/11", "webUrl" => /\/groups\/group427\/-\/iterations\/11$/}2753 when given a raw model id (backward compatibility)2754 is expected to include {"scopedPath" => "/groups/group427/-/iterations/11", "scopedUrl" => /\/groups\/group427\/-\/iterations\/11$/, "webPath" => "/groups/group427/-/iterations/11", "webUrl" => /\/groups\/group427\/-\/iterations\/11$/}2755 group-owned iteration2756 behaves like scoped path2757 is expected to include {"scopedPath" => "/groups/group427/group430/-/iterations/11", "scopedUrl" => /\/groups\/group427\/group430\/-\/iterations\/11$/, "webPath" => "/groups/group427/-/iterations/11", "webUrl" => /\/groups\/group427\/-\/iterations\/11$/}2758 when given a raw model id (backward compatibility)2759 is expected to include {"scopedPath" => "/groups/group427/group431/-/iterations/11", "scopedUrl" => /\/groups\/group427\/group431\/-\/iterations\/11$/, "webPath" => "/groups/group427/-/iterations/11", "webUrl" => /\/groups\/group427\/-\/iterations\/11$/}2760 root context2761 group-owned iteration2762 behaves like scoped path2763 is expected to include {"scopedPath" => "/groups/group427/-/iterations/11", "scopedUrl" => /\/groups\/group427\/-\/iterations\/11$/, "webPath" => "/groups/group427/-/iterations/11", "webUrl" => /\/groups\/group427\/-\/iterations\/11$/}2764 when given a raw model id (backward compatibility)2765 is expected to include {"scopedPath" => "/groups/group427/-/iterations/11", "scopedUrl" => /\/groups\/group427\/-\/iterations\/11$/, "webPath" => "/groups/group427/-/iterations/11", "webUrl" => /\/groups\/group427\/-\/iterations\/11$/}2766 project-owned iteration2767 behaves like scoped path2768 is expected to include {"scopedPath" => "/groups/group427/-/iterations/11", "scopedUrl" => /\/groups\/group427\/-\/iterations\/11$/, "webPath" => "/groups/group427/-/iterations/11", "webUrl" => /\/groups\/group427\/-\/iterations\/11$/}2769 when given a raw model id (backward compatibility)2770 is expected to include {"scopedPath" => "/groups/group427/-/iterations/11", "scopedUrl" => /\/groups\/group427\/-\/iterations\/11$/, "webPath" => "/groups/group427/-/iterations/11", "webUrl" => /\/groups\/group427\/-\/iterations\/11$/}2771API::ManagedLicenses2772 GET /projects/:id/managed_licenses2773 with license management not available2774 returns a forbidden status2775 with an authorized user with proper permissions2776 returns project managed licenses2777 with authorized user without read permissions2778 returns project managed licenses to users with read permissions2779 with unauthorized user2780 returns project managed licenses for public project2781 responses with 404 Not Found for not existing project2782 when project is private2783 responses with 404 Not Found2784 GET /projects/:id/managed_licenses/:managed_license_id2785 authorized user with proper permissions2786 returns project managed license details2787 returns project managed license details using the license name as key2788 responds with 404 Not Found if requesting non-existing managed license2789 authorized user with read permissions2790 returns project managed license details2791 unauthorized user2792 does not return project managed license details2793 POST /projects/:id/managed_licenses2794 authorized user with proper permissions2795 creates managed license2796 does not allow to duplicate managed license name2797 authorized user with read permissions2798 does not create managed license2799 authorized user without permissions2800 does not create managed license2801 unauthorized user2802 does not create managed license2803 PATCH /projects/:id/managed_licenses/:managed_license_id2804 authorized user with proper permissions2805 updates managed license data2806 responds with 404 Not Found if requesting non-existing managed license2807 authorized user with read permissions2808 does not update managed license2809 authorized user without permissions2810 does not update managed license2811 unauthorized user2812 does not update managed license2813 DELETE /projects/:id/managed_licenses/:managed_license_id2814 authorized user with proper permissions2815 deletes managed license2816 responds with 404 Not Found if requesting non-existing managed license2817 authorized user with read permissions2818 does not delete managed license2819 authorized user without permissions2820 does not delete managed license2821 unauthorized user2822 does not delete managed license2823Groups::IterationsController2824 index2825 iteration_license_available: false, role: :developer, status: :not_found2826 behaves like returning response status2827 returns not_found2828 iteration_license_available: true, role: :none, status: :not_found2829 behaves like returning response status2830 returns not_found2831 iteration_license_available: true, role: :guest, status: :success2832 behaves like returning response status2833 returns success2834 iteration_license_available: true, role: :developer, status: :success2835 behaves like returning response status2836 returns success2837 when iteration_cadences feature flag is enabled2838 iteration_license_available: false, role: :developer2839 behaves like returning response status2840 returns not_found2841 iteration_license_available: true, role: :none2842 behaves like returning response status2843 returns not_found2844 iteration_license_available: true, role: :guest2845 redirects to the group iteration cadence index path2846 iteration_license_available: true, role: :developer2847 redirects to the group iteration cadence index path2848 show2849 iteration_license_available: false, role: :developer, status: :not_found2850 behaves like returning response status2851 returns not_found2852 iteration_license_available: true, role: :none, status: :not_found2853 behaves like returning response status2854 returns not_found2855 iteration_license_available: true, role: :guest, status: :success2856 behaves like returning response status2857 returns success2858 iteration_license_available: true, role: :developer, status: :success2859 behaves like returning response status2860 returns success2861 when iteration_cadences feature flag is enabled2862 iteration_license_available: false, role: :developer, requested_iteration: lazy { iteration }2863 behaves like returning response status2864 returns not_found2865 iteration_license_available: true, role: :none, requested_iteration: lazy { iteration }2866 behaves like returning response status2867 returns not_found2868 iteration_license_available: true, role: :guest, requested_iteration: lazy { other_iteration }2869 behaves like returning response status2870 returns not_found2871 when current user can view the requested iteration2872 iteration_license_available: true, role: :guest2873 redirects to the corresponding iteration cadence path2874 iteration_license_available: true, role: :developer2875 redirects to the corresponding iteration cadence path2876 new2877 iteration_license_available: false, role: :developer, status: :not_found2878 behaves like returning response status2879 returns not_found2880 iteration_license_available: true, role: :none, status: :not_found2881 behaves like returning response status2882 returns not_found2883 iteration_license_available: true, role: :guest, status: :not_found2884 behaves like returning response status2885 returns not_found2886 iteration_license_available: true, role: :developer, status: :success2887 behaves like returning response status2888 returns success2889 when iteration_cadences feature flag is enabled2890 iteration_license_available: false, role: :developer2891 behaves like returning response status2892 returns not_found2893 iteration_license_available: true, role: :none2894 behaves like returning response status2895 returns not_found2896 iteration_license_available: true, role: :guest2897 behaves like returning response status2898 returns not_found2899 when role is developer2900 redirects to the group iteration cadence index path2901 edit2902 iteration_license_available: false, role: :developer, status: :not_found2903 behaves like returning response status2904 returns not_found2905 iteration_license_available: true, role: :none, status: :not_found2906 behaves like returning response status2907 returns not_found2908 iteration_license_available: true, role: :guest, status: :not_found2909 behaves like returning response status2910 returns not_found2911 iteration_license_available: true, role: :developer, status: :success2912 behaves like returning response status2913 returns success2914 when iteration_cadences feature flag is enabled2915 iteration_license_available: false, role: :developer, requested_iteration: lazy { iteration }2916 behaves like returning response status2917 returns not_found2918 iteration_license_available: true, role: :none, requested_iteration: lazy { iteration }2919 behaves like returning response status2920 returns not_found2921 iteration_license_available: true, role: :guest, requested_iteration: lazy { iteration }2922 behaves like returning response status2923 returns not_found2924 iteration_license_available: true, role: :developer, requested_iteration: lazy { other_iteration }2925 behaves like returning response status2926 returns not_found2927 when role is developer and can edit the requested iteration2928 redirects to the corresponding iteration cadence path2929Groups::InsightsController2930 when insights configuration project cannot be read by current user2931 when visiting the parent group2932 GET #show.html2933 behaves like 404 status2934 returns 404 status2935 GET #show.json2936 behaves like 404 status2937 returns 404 status2938 POST #query2939 behaves like 404 status2940 returns 404 status2941 when visiting a nested group2942 GET #show.html2943 behaves like 200 status2944 returns 200 status2945 GET #show.json2946 does return the default config2947 behaves like 200 status2948 returns 200 status2949 POST #query.json2950 behaves like 200 status2951 returns 200 status2952 when insights configuration project can be read by current user2953 when the configuration is attached to the current group2954 GET #show.html2955 behaves like 200 status2956 returns 200 status2957 GET #show.json2958 behaves like 200 status2959 returns 200 status2960 POST #query.json2961 behaves like 200 status2962 returns 200 status2963 GET #show2964 behaves like tracking unique visits2965 tracks unique visit if the format is HTML2966 tracks unique visit if DNT is not enabled2967 does not track unique visit if DNT is enabled2968 does not track unique visit if the format is JSON2969 when the configuration is attached to a nested group2970 GET #show.html2971 behaves like 200 status2972 returns 200 status2973 GET #show.json2974 behaves like 200 status2975 returns 200 status2976 POST #query.json2977 behaves like 200 status2978 returns 200 status2979Admin::Geo::ProjectsController2980 #index2981 behaves like license required2982 without a valid license2983 redirects to 403 page2984 with a valid license2985 displays a different read-only message based on skip_readonly_message2986 warns about viewing replication data2987 on a Geo primary2988 renders the warning on a primary2989 on a Geo secondary2990 does not render the warning on a secondary2991 without sync_status specified2992 renders all template when no extra get params is specified2993 with sync_status=pending2994 renders pending template2995 with sync_status=failed2996 renders failed template2997 with sync_status=synced2998 renders synced template2999 #destroy3000 behaves like license required3001 without a valid license3002 redirects to 403 page3003 with a valid license3004 with an orphaned registry3005 removes the registry3006 with a regular registry3007 removes the registry3008 #reverify3009 behaves like license required3010 without a valid license3011 redirects to 403 page3012 with a valid license3013 flags registry for reverify3014 #resync3015 behaves like license required3016 without a valid license3017 redirects to 403 page3018 with a valid license3019 flags registry for resync3020 #reverify_all3021 behaves like license required3022 without a valid license3023 redirects to 403 page3024 with a valid license3025 schedules a batch job3026 redirects back and display confirmation3027 #resync_all3028 behaves like license required3029 without a valid license3030 redirects to 403 page3031 with a valid license3032 schedules a batch job3033 redirects back and display confirmation3034 #force_redownload3035 behaves like license required3036 without a valid license3037 redirects to 403 page3038 with a valid license3039 flags registry for re-download3040Groups::EpicBoardsController3041 GET index3042 with epics disabled3043 does not create a new board when group does not have one3044 returns a not found 404 response3045 with authorized user3046 creates a new board when group does not have one3047 returns correct response3048 with multiple boards3049 redirects to latest visited board3050 with unauthorized user3051 does not create a new board when group does not have one3052 returns a not found 404 response3053 with non-logged-in user and public group3054 creates a new board when group does not have one3055 returns a 200 response3056 json request3057 is not supported3058 behaves like pushes wip limits to frontend3059 self-hosted with correct license3060 is enabled for all groups if the license is correct3061 on .com3062 for group with correct plan3063 is enabled3064 for group with incorrect or no plan3065 is not enabled3066 behaves like tracking unique hll events3067 tracks unique event3068 GET show3069 with epics disabled3070 returns a not found 404 response3071 json request3072 is not supported3073 when format is HTML3074 renders template3075 with unauthorized user3076 returns a not found 404 response3077 when group is public3078 when user is signed out3079 does not save visit3080 when user is signed in3081 saves the visit3082 when epic board does not belong to group3083 returns a not found 404 response3084 behaves like disabled when using an external authorization service3085 works when the feature is not enabled3086 renders a 404 with a message when the feature is enabled3087 behaves like tracking unique hll events3088 tracks unique event3089SmartcardController3090 #auth3091 with smartcard_auth enabled3092 redirects to extract certificate3093 with provider param3094 forwards the provider param3095 with smartcard_auth disabled3096 renders 4043097 #extract_certificate3098 with smartcard_auth enabled3099 redirects to verify certificate3100 with provider param3101 forwards the provider param3102 missing NGINX client certificate header3103 renders unauthorized3104 request from different host / port3105 renders 4043106 with smartcard_auth disabled3107 renders 4043108 #verify_certificate3109 Smartcard::Certificate3110 behaves like a client certificate authentication3111 with smartcard_auth enabled3112 allows sign in3113 redirects to root3114 logs audit event3115 stores active session3116 user does not exist3117 signup allowed3118 creates user3119 signup disabled3120 renders 4013121 missing client certificate param3122 renders unauthorized3123 with smartcard_auth disabled3124 renders 4043125 user already exists3126 finds existing user3127 certificate header formats from NGINX3128 escaped format3129 behaves like valid certificate header3130 authenticates user3131 deprecated format3132 behaves like valid certificate header3133 authenticates user3134 Smartcard::LdapCertificate3135 sets correct parameters for LDAP search3136 behaves like a client certificate authentication3137 with smartcard_auth enabled3138 allows sign in3139 redirects to root3140 logs audit event3141 stores active session3142 user does not exist3143 signup allowed3144 creates user3145 signup disabled3146 renders 4013147 missing client certificate param3148 renders unauthorized3149 with smartcard_auth disabled3150 renders 4043151 user already exists3152 finds existing user3153 user has a different identity3154 doesn't login a user3155 doesn't create a new user entry either3156getting an issue list for a project3157 sorting and pagination3158 when sorting by weight3159 when ascending3160 behaves like sorted paginated query3161 behaves like requires variables3162 shared example requires variables to be set3164 when sorting3165 sorts correctly3166 when paginating3167 paginates correctly3168 when descending3169 behaves like sorted paginated query3170 behaves like requires variables3171 shared example requires variables to be set3173 when sorting3174 sorts correctly3175 when paginating3176 paginates correctly3177 blocked3178 uses the LazyLinksAggregate service3179 working query3180 behaves like a working graphql query3181 returns a successful response3182 correct result3183 returns the correct blocked count result3184 returns the correct blocked issue detail result3185Groups::Analytics::ProductivityAnalyticsController3186 usage counter3187 increments usage counter3188 doesn't increment the usage counter when JSON request is sent3189 GET show3190 when user is not authorized to view productivity analytics3191 renders 403, forbidden error3192 when feature is not licensed3193 renders forbidden error3194 when the feature is licensed3195 behaves like tracking unique visits3196 tracks unique visit if the format is HTML3197 tracks unique visit if DNT is not enabled3198 does not track unique visit if DNT is enabled3199 does not track unique visit if the format is JSON3200 when user is an auditor3201 allows access3202 GET show.json3203 when feature is not licensed3204 renders forbidden error3205 when invalid params are given3206 returns 422, unprocessable_entity3207 without group_id specified3208 renders 403, forbidden3209 with non-existing group_id3210 renders 404, not_found3211 with non-existing project_id3212 renders 404, not_found3213 with group specified3214 for list of MRs3215 serializes whatever analytics returns with ProductivityAnalyticsMergeRequestEntity3216 sets pagination headers3217 when project from a sub-group is requested3218 succeeds3219 for scatterplot charts3220 renders whatever analytics returns for scatterplot3221 for histogram charts3222 renders whatever analytics returns for histogram3223API::AwardEmoji3224 GET /groups/:id/awardable/:awardable_id/award_emoji3225 on an epic3226 returns an array of award_emoji3227 returns a 404 error when epic id not found3228 GET /groups/:id/awardable/:awardable_id/notes/:note_id/award_emoji3229 returns an array of award emoji3230 GET /groups/:id/awardable/:awardable_id/award_emoji/:award_id3231 on an epic3232 returns the award emoji3233 returns a 404 error if the award is not found3234 GET /groups/:id/awardable/:awardable_id/notes/:note_id/award_emoji/:award_id3235 returns an award emoji3236 POST /groups/:id/awardable/:awardable_id/award_emoji3237 on an epic3238 creates a new award emoji3239 returns a 400 bad request error if the name is not given3240 returns a 404 if the user is not authenticated3241 normalizes +1 as thumbsup award3242 when the emoji already has been awarded3243 returns a 404 status code3244 POST /groups/:id/awardable/:awardable_id/notes/:note_id/award_emoji3245 creates a new award emoji3246 marks Todos on the Noteable as done3247 normalizes +1 as thumbsup award3248 when the emoji already has been awarded3249 returns a 404 status code3250 DELETE /groups/:id/awardable/:awardable_id/award_emoji/:award_id3251 when the awardable is an Epic3252 deletes the award3253 returns a 404 error when the award emoji can not be found3254 behaves like 412 response3255 for a modified ressource3256 returns 412 with a JSON error3257 for an unmodified ressource3258 returns 204 with an empty body3259 DELETE /groups/:id/awardable/:awardable_id/award_emoji/:award_emoji_id3260 deletes the award3261 behaves like 412 response3262 for a modified ressource3263 returns 412 with a JSON error3264 for an unmodified ressource3265 returns 204 with an empty body3266Projects::OnDemandScansController3267 GET #index3268 behaves like on-demand scans page3269 when the "Security & Compliance" feature is disabled3270 is expected to respond with numeric status code not_found3271 feature available3272 user authorized3273 can access page3274 user not authorized3275 sees a 404 error3276 feature not available3277 sees a 404 error if the license doesn't support the feature3278 GET #new3279 behaves like on-demand scans page3280 when the "Security & Compliance" feature is disabled3281 is expected to respond with numeric status code not_found3282 feature available3283 user authorized3284 can access page3285 user not authorized3286 sees a 404 error3287 feature not available3288 sees a 404 error if the license doesn't support the feature3289 GET #edit3290 behaves like on-demand scans page3291 when the "Security & Compliance" feature is disabled3292 is expected to respond with numeric status code not_found3293 feature available3294 user authorized3295 can access page3296 user not authorized3297 sees a 404 error3298 feature not available3299 sees a 404 error if the license doesn't support the feature3300 feature available and user can access page3301 dast_profile exists in the database3302 includes a serialized dast_profile in the response body3303 dast_profile does not exist in the database3304 sees a 404 error3305Oauth::GeoAuthController3306 GET auth3307 redirects to root_url when state is invalid3308 without a tampered header3309 behaves like a valid redirect to to primary node's oauth endpoint3310 redirects to primary node's oauth endpoint3311 with a tampered HOST header3312 behaves like a valid redirect to to primary node's oauth endpoint3313 redirects to primary node's oauth endpoint3314 with a tampered X-Forwarded-Host header3315 behaves like a valid redirect to to primary node's oauth endpoint3316 redirects to primary node's oauth endpoint3317 GET callback3318 redirection3319 redirects to login screen if state is invalid3320 with a valid state3321 does not display a flash message3322 without a tampered header3323 behaves like a valid redirect to redirect_url3324 redirects to primary node's oauth endpoint3325 with a tampered HOST header3326 behaves like a valid redirect to redirect_url3327 redirects to primary node's oauth endpoint3328 with a tampered X-Forwarded-Host header3329 behaves like a valid redirect to redirect_url3330 redirects to primary node's oauth endpoint3331 invalid credentials3332 handles invalid credentials error3333 non-existent remote user3334 handles non-existent remote user error3335 non-existent local user3336 handles non-existent local user error3337 GET logout3338 when access_token is valid3339 logs out and redirects to the root_url3340 when access_token is invalid3341 shows access token errors3342Groups::Security::PoliciesController3343 GET #edit3344 with authorized user3345 when feature is licensed3346 when feature is disabled3347 returns 4043348 when feature is enabled3349 renders the edit page3350 when type is missing3351 redirects to #index3352 when type is invalid3353 redirects to #index3354 when id does not exist3355 returns 4043356 when there is no policy configuration3357 redirects to #index3358 when policy yaml file does not exist3359 redirects to project page3360 when policy yaml is invalid3361 redirects to policy file3362 when feature is not licensed3363 returns 4043364 with unauthorized user3365 returns 4043366 with anonymous user3367 returns 4043368 GET #index3369 user_role: :reporter, license: true, feature: true, status: :not_found3370 is expected to respond with numeric status code not_found3371 user_role: :developer, license: true, feature: false, status: :not_found3372 is expected to respond with numeric status code not_found3373 user_role: :developer, license: false, feature: true, status: :not_found3374 is expected to respond with numeric status code not_found3375 user_role: :developer, license: false, feature: false, status: :not_found3376 is expected to respond with numeric status code not_found3377 user_role: :developer, license: true, feature: true, status: :ok3378 is expected to respond with numeric status code ok3379RoutableActions3380 #find_routable!3381 when SSO enforcement prevents access3382 for a group3383 redirects to group sign in page3384 does not redirect on POST requests3385 for a nested group3386 redirects to group sign in page3387 does not redirect on POST requests3388 for a project3389 redirects to group sign in page3390 does not redirect on POST requests3391 for a nested project3392 redirects to group sign in page3393 does not redirect on POST requests3394GroupsController3395 external authorization3396 with external authorization service enabled3397 PUT #update3398 no license3399 does not update the file_template_project_id successfully3400 with license3401 updates the file_template_project_id successfully3402 with insights feature3403 updates insight project_id successfully3404 removes insight successfully3405 with sso enforcement enabled3406 without SAML session3407 prevents access to group resources3408 with active SAML session3409 allows access to group resources3410 "group information content" preference behaviour3411 GET #show3412 with user having proper permissions and feature enabled3413 with group view set as default3414 renders the expected template3415 with group view set to security dashboard3416 in HTML format3417 redirects to the security dashboard3418 in Atom format3419 does not redirect to the security dashboard3420 GET #details3421 with user having proper permissions and feature enabled3422 with group view set to security dashboard3423 does not redirect to the security dashboard3424AutocompleteController3425 GET users3426 project members3427 GET #users that can push to protected branches3428 returns authorized users3429 GET #users that can push code3430 returns authorized users3431 GET #users that can push to protected branches, including the current user3432 returns authorized users3433 groups3434 while fetching all groups belonging to a project3435 returns groups invited to the project that the user can see3436 while fetching all groups belonging to a project the current user cannot access3437 is expected to be not found3438 while fetching all groups belonging to an invalid project ID3439 is expected to be not found3440 GET group_subgroups3441 returns subgroups3442 when requesting to subgroup 13443 returns grandchild3444 when requesting to subgroup 23445 returns empty3446 when user does not have an access to the group3447 returns not found3448 GET project_routes3449 as admin3450 while searching for a project by namespace3451 returns the matching routes3452 while searching for a project by path3453 returns the matching routes3454 as project owner3455 while searching for a project by namespace3456 returns the matching routes3457 while searching for a project by path3458 returns the matching routes3459 while searching for nothing3460 returns the matching routes3461 GET namespace_routes3462 as admin3463 while searching for a namespace by group path3464 returns the matching routes3465 while searching for a namespace by user path3466 returns the matching routes3467 as a user3468 while searching for a namespace by path3469 returns the matching routes3470 as group member3471 while searching for a namespace by path3472 returns the matching routes3473 while searching for nothing3474 returns the matching routes3475Groups::Analytics::CycleAnalyticsController3476 GET show3477 when the license is available3478 succeeds3479 increments usage counter3480 renders `show` template when feature flag is enabled3481 when the initial, default value stream is requested3482 renders the default in memory value stream3483 when invalid name is given3484 renders 404 error3485 tracking events3486 tracks redis hll event3487 tracks snowplow event3488 when the license is missing3489 renders 403 error3490 when non-existent group is given3491 renders 404 error3492 with group and value stream params3493 builds request params with group and value stream3494 GET use_aggregated_backend3495 when the license is not available3496 renders 403 error3497 when the license is available3498 succeeds3499 when non-existent group is given3500 renders 404 error3501 when the aggregation record is already created3502 succeeds3503API::ProjectClusters3504 POST /projects/:id/clusters/user3505 when user sets specific environment scope3506 creates a cluster with that specific environment3507 when does not set an specific environment scope3508 sets default environment3509 when another cluster exists3510 responds with 2013511 allows multiple clusters to be associated to project3512 PUT /projects/:id/clusters/:cluster_id3513 With a GCP cluster3514 updates the environment scope3515 With an user cluster3516 updates the environment scope3517CiMinutesUsageMailer3518 #notify3519 when it is a group3520 behaves like mail format3521 is expected to have subject of "Action required: There are no remaining Pipeline minutes for group493"3522 is expected to be bcc'd to ["bob@example.com", "john@example.com"]3523 is expected to have body including "/group495"3524 is expected to have body including "has run out of Shared Runner Pipeline minutes"3525 is expected to have body including "http://localhost/-/subscriptions/buy_minutes?selected_group=2381"3526 when it is a namespace3527 behaves like mail format3528 is expected to have subject of "Action required: There are no remaining Pipeline minutes for Sidney Jones1472"3529 is expected to be bcc'd to ["bob@example.com", "john@example.com"]3530 is expected to have body including "/namespace336"3531 is expected to have body including "has run out of Shared Runner Pipeline minutes"3532 is expected to have body including "http://localhost/-/subscriptions/buy_minutes?selected_group=2386"3533 #notify_limit3534 when it is a group3535 behaves like mail format3536 is expected to have subject of "Action required: Less than 30% of Pipeline minutes remain for group498"3537 is expected to be bcc'd to ["bob@example.com", "john@example.com"]3538 is expected to have body including "/group500"3539 is expected to have body including "has 30% or less Shared Runner Pipeline minutes"3540 is expected to have body including "http://localhost/-/subscriptions/buy_minutes?selected_group=2391"3541 when it is a namespace3542 behaves like mail format3543 is expected to have subject of "Action required: Less than 30% of Pipeline minutes remain for Sidney Jones1477"3544 is expected to be bcc'd to ["bob@example.com", "john@example.com"]3545 is expected to have body including "/namespace341"3546 is expected to have body including "has 30% or less Shared Runner Pipeline minutes"3547 is expected to have body including "http://localhost/-/subscriptions/buy_minutes?selected_group=2396"3548EE::RoutableActions::SsoEnforcementRedirect3549 #should_redirect_to_group_saml_sso?3550 returns false for User routables3551 returns false when routable is nil3552 with a project3553 behaves like a routable with SSO enforcement redirect3554 is false when a new sso session is not needed3555 is true when a new sso session is needed3556 with a nested project3557 behaves like a routable with SSO enforcement redirect3558 is false when a new sso session is not needed3559 is true when a new sso session is needed3560 with a project in a personal namespace3561 returns false3562 with a group3563 behaves like a routable with SSO enforcement redirect3564 is false when a new sso session is not needed3565 is true when a new sso session is needed3566 with a nested group3567 behaves like a routable with SSO enforcement redirect3568 is false when a new sso session is not needed3569 is true when a new sso session is needed3570 #sso_redirect_url3571 with a group3572 behaves like a routable SSO url3573 returns the SSO url for the root group3574 with a nested group3575 behaves like a routable SSO url3576 returns the SSO url for the root group3577 with a project3578 behaves like a routable SSO url3579 returns the SSO url for the root group3580 with a nested project3581 behaves like a routable SSO url3582 returns the SSO url for the root group3583Admin::ProjectsController3584 GET /projects/:id3585 includes Geo Status widget partial3586 when Geo is enabled and is a secondary node3587 renders Geo Status widget3588 displays a different read-only message based on skip_readonly_message3589 without Geo enabled3590 doesnt render Geo Status widget3591API::Internal::AppSec::Dast::SiteValidations3592 POST /internal/dast/site_validations/:id/transition3593 when a job token header is not set3594 returns 4013595 when user token is set3596 returns 400 and a contextual error message3597 when a job token header is set3598 when user does not have access to the site validation3599 returns 4033600 when site validation does not exist3601 returns 4043602 when site validation and job are associated with different projects3603 returns 4003604 when the job project belongs to the same job token scope3605 returns 400 and a contextual error message3606 when site validation exists3607 when the licensed feature is not available3608 returns 4033609 when user has access to the site validation3610 when the state transition is unknown3611 returns 400 and a contextual error message3612 when the state transition is invalid3613 returns 400 and a contextual error message3614 when the state transition is valid3615 updates the record3616 behaves like it transitions3617 returns 200 and the new state3618 calls the underlying transition method: #start3619 behaves like it transitions3620 returns 200 and the new state3621 calls the underlying transition method: #fail_op3622 behaves like it transitions3623 returns 200 and the new state3624 calls the underlying transition method: #retry3625 behaves like it transitions3626 returns 200 and the new state3627 calls the underlying transition method: #pass3628Dashboard::ProjectsController3629 #removed3630 when licensed3631 for admin users3632 returns success3633 paginates the records3634 returns projects marked for deletion3635 for non-admin users3636 returns success3637 paginates the records3638 for should_check_namespace_plan3639 should_check_namespace_plan: false, removed_projects_count: 33640 accounts total removable projects3641 should_check_namespace_plan: true, removed_projects_count: 23642 accounts total removable projects3643 when not licensed3644 behaves like returns not found3645 is expected to respond with numeric status code not_found3646Update of an existing issue3647 updates the issue3648 setting epic3649 sets the epic3650 the epic is not readable to the current user3651 does not set the epic3652 the epic is not an epic3653 does not set the epic3654 removing epic3655 removes the epic3656 the epic argument is not provided3657 does not remove the epic3658Projects::Security::SastConfigurationController3659 GET #show3660 when the "Security & Compliance" feature is disabled3661 is expected to respond with numeric status code not_found3662 behaves like SecurityDashboardsPermissions3663 access for all actions3664 when security dashboard feature is disabled3665 returns 4043666 when security dashboard feature is enabled3667 when user has guest access3668 denies access3669 when user has developer access3670 grants access3671 with authorized user3672 renders the show template3673 renders the side navigation with the correct submenu set as active3674 with unauthorized user3675 returns a 4033676Projects::Security::DashboardController3677 when the "Security & Compliance" feature is disabled3678 is expected to respond with numeric status code not_found3679 behaves like SecurityDashboardsPermissions3680 access for all actions3681 when security dashboard feature is disabled3682 returns 4043683 when security dashboard feature is enabled3684 when user has guest access3685 denies access3686 when user has developer access3687 grants access3688 GET #index3689 when project has no vulnerabilities3690 renders empty state3691 when project has vulnerabilities3692 renders dashboard with vulnerability metadata3693Projects::Analytics::CodeReviewsController3694 GET /*namespace_id/:project_id/analytics/code_reviews3695 for reporter+3696 with code_review_analytics included in plan3697 is success3698 without code_review_analytics in plan3699 is not found3700 for guests3701 is not found3702Projects::Analytics::CodeReviewsController3703 behaves like tracking unique visits3704 tracks unique visit if the format is HTML3705 tracks unique visit if DNT is not enabled3706 does not track unique visit if DNT is enabled3707 does not track unique visit if the format is JSON3708API::Dependencies3709 GET /projects/:id/dependencies3710 behaves like a gitlab tracking event3711 creates a gitlab tracking event view_dependencies3712 with an authorized user with proper permissions3713 returns paginated dependencies3714 returns vulnerabilities info3715 with nil package_manager3716 returns no dependencies3717 with filter options3718 returns yarn dependencies3719 with wrong key3720 returns error message3721 with pagination params3722 returns paginated dependencies3723 without permissions to see vulnerabilities3724 returns empty vulnerabilities3725 with authorized user without read permissions3726 responds with 403 Forbidden3727 with no project access3728 responds with 404 Not Found3729Projects::Security::VulnerabilityReportController3730 when the "Security & Compliance" feature is disabled3731 is expected to respond with numeric status code not_found3732 behaves like SecurityDashboardsPermissions3733 access for all actions3734 when security dashboard feature is disabled3735 returns 4043736 when security dashboard feature is enabled3737 when user has guest access3738 denies access3739 when user has developer access3740 grants access3741 GET #index3742 when project has no vulnerabilities3743 renders empty state3744 when project has vulnerabilities3745 renders dashboard with vulnerability metadata3746getting test reports of a requirement3747 when user can read requirement3748 returns test reports successfully3749 behaves like a working graphql query3750 returns a successful response3751 with pagination3752 behaves like sorted paginated query3753 behaves like requires variables3754 shared example requires variables to be set3756 when sorting3757 sorts correctly3758 when paginating3759 paginates correctly3760 behaves like sorted paginated query3761 behaves like requires variables3762 shared example requires variables to be set3764 when sorting3765 sorts correctly3766 when paginating3767 paginates correctly3768 when the user does not have access to the requirement3769 returns nil3770Rack Attack EE throttles3771 requests to prometheus alert notify endpoint with oauth token3772 behaves like incident management rate limiting3773 limits set3774 when the throttle is enabled3775 rejects requests over the rate limit3776 allows requests after throttling and then waiting for the next period3777 when the throttle is disabled3778 allows requests over the rate limit3779 requests to generic alert notify endpoint with oauth token3780 behaves like incident management rate limiting3781 limits set3782 when the throttle is enabled3783 rejects requests over the rate limit3784 allows requests after throttling and then waiting for the next period3785 when the throttle is disabled3786 allows requests over the rate limit3787 requests to AlertManagement::HttpIntegration notify endpoint with oauth token3788 behaves like incident management rate limiting3789 limits set3790 when the throttle is enabled3791 rejects requests over the rate limit3792 allows requests after throttling and then waiting for the next period3793 when the throttle is disabled3794 allows requests over the rate limit3795Groups::SeatUsageController3796 GET show3797 when authorized3798 when html format3799 redirects to /groups/%{group_id}/-/seat_usage3800 responds with 404 Not Found if the group is not top-level group3801 when csv format3802 responds with 404 Not Found if the group is not top-level group3803 when the group is a top-level group3804 when export is successful3805 streams the csv with 200 status code3806 when export fails3807 sets alert message and redirects3808 when unauthorized3809 when html format3810 renders 403 when user is not an owner3811 when csv format3812 renders 403 when user is not an owner3813API::Analytics::GroupActivityAnalytics3814 GET /group_activity/issues_count3815 behaves like GET group_activity3816 when feature is enabled for a group3817 is successful3818 is returns a count3819 when feature is not available in plan3820 is returns `forbidden`3821 when `group_path` is not specified3822 returns `bad_request`3823 when name is made of only digits3824 is successful3825 is returns a count3826 when user does not have access to a group3827 is returns `not_found`3828 GET /group_activity/merge_requests_count3829 behaves like GET group_activity3830 when feature is enabled for a group3831 is successful3832 is returns a count3833 when feature is not available in plan3834 is returns `forbidden`3835 when `group_path` is not specified3836 returns `bad_request`3837 when name is made of only digits3838 is successful3839 is returns a count3840 when user does not have access to a group3841 is returns `not_found`3842 GET /group_activity/new_members_count3843 behaves like GET group_activity3844 when feature is enabled for a group3845 is successful3846 is returns a count3847 when feature is not available in plan3848 is returns `forbidden`3849 when `group_path` is not specified3850 returns `bad_request`3851 when name is made of only digits3852 is successful3853 is returns a count3854 when user does not have access to a group3855 is returns `not_found`3856API::Ci::Runner3857 /api/v4/jobs3858 POST /api/v4/jobs/request3859 secrets management3860 when secrets management feature is available3861 when job has secrets configured3862 when runner does not support secrets3863 sets "runner_unsupported" failure reason and does not expose the build at all3864 when runner supports secrets3865 returns secrets configuration3866 job does not have secrets configured3867 doesn not return secrets configuration3868 when secrets management feature is not available3869 job has secrets configured3870 does not return secrets configuration3871 GET api/v4/jobs/:id/artifacts3872 when a job has a cross-project dependency3873 when the job is created by a user with sufficient permission in upstream project3874 behaves like successful artifact download3875 downloads artifacts3876 and the upstream project has disabled public builds3877 behaves like successful artifact download3878 downloads artifacts3879 when the job is created by a user without sufficient permission in upstream project3880 behaves like forbidden request3881 responds with forbidden3882 and the upstream project has disabled public builds3883 behaves like forbidden request3884 responds with forbidden3885 when the upstream project is public and the job user does not have permission in the project3886 behaves like successful artifact download3887 downloads artifacts3888 and the upstream project has disabled public builds3889 behaves like forbidden request3890 responds with forbidden3891Projects::Security::DastScannerProfilesController3892 GET #new3893 behaves like a GET request3894 when the "Security & Compliance" feature is disabled3895 is expected to respond with numeric status code not_found3896 feature available3897 user authorized3898 can access page3899 user not authorized3900 sees a 404 error3901 feature not available3902 sees a 404 error3903 GET #edit3904 sets scanner_profile3905 behaves like a GET request3906 when the "Security & Compliance" feature is disabled3907 is expected to respond with numeric status code not_found3908 feature available3909 user authorized3910 can access page3911 user not authorized3912 sees a 404 error3913 feature not available3914 sees a 404 error3915 record does not exist3916 sees a 404 error3917Admin::Geo::NodesController3918 #index3919 with valid license3920 does not show license alert3921 without valid license3922 does show license alert3923 does not redirects to the 403 page3924 #create3925 without add-on license3926 behaves like unlicensed geo action3927 redirects to the 403 page3928 with add-on license3929 delegates the create of the Geo node to Geo::NodeCreateService3930 #update3931 without add-on license3932 behaves like unlicensed geo action3933 redirects to the 403 page3934 with add-on license3935 updates the node3936 delegates the update of the Geo node to Geo::NodeUpdateService3937Groups::ProtectedEnvironmentsController3938 #POST create3939 with valid params3940 creates a new ProtectedEnvironment3941 sets a flash3942 redirects to CI/CD settings3943 with invalid params3944 does not create a new ProtectedEnvironment3945 redirects to CI/CD settings3946 with invalid access3947 renders 4043948 #PUT update3949 updates the protected environment3950 with invalid params3951 returns unprocessable_entity3952 when the user is not authorized3953 renders 4043954 #DELETE destroy3955 finds the requested protected environment3956 deletes the requested protected environment3957 redirects to CI/CD settings3958 when destroy failed3959 sets a flash3960 when the user is not authorized3961 renders 4043962Query.project(fullPath).dastSiteValidations3963 when a user does not have access to the project3964 returns a null project3965 when a user does not have access to dast_site_validations3966 returns an empty nodes array3967 when a user has access to dast_site_validations3968 avoids N+1 queries3969 behaves like sorted paginated query3970 behaves like requires variables3971 shared example requires variables to be set3973 when sorting3974 sorts correctly3975 when paginating3976 paginates correctly3977Projects::Integrations::Zentao::IssuesController3978 GET #index3979 renders the "index" template3980 when zentao_issues_integration licensed feature is not available3981 returns 404 status3982 behaves like unauthorized when external service denies access3983 allows access when the authorization service allows it3984 allows access when the authorization service denies it3985 json request3986 returns a list of serialized zentao issues3987 renders bad request for Error3988 GET #show3989 when zentao_issues_integration licensed feature is not available3990 returns 404 status3991 when zentao_issues_integration licensed feature is available3992 with valid request3993 renders `show` template successfully3994 returns JSON response successfully3995 with bad request3996 renders `show` template successfully3997 returns JSON response with error messages3998 when the JSON fetched from ZenTao contains HTML3999 escapes the HTML in issue4000Query.project(fullPath).dastSiteProfiles4001 when a user does not have access to the project4002 returns a null project4003 when a user does not have access to dast_site_profiles4004 returns an empty edges array4005 when a user has access dast_site_profiles4006 returns populated edges array4007 returns a populated edges array containing a dast_site_profile associated with the project4008 avoids N+1 queries4009 when there are fewer dast_site_profiles than the page limit4010 indicates there are no more pages available4011 when there are more dast_site_profiles than the page limit4012 indicates there are more pages available4013 when on demand scan licensed feature is not available4014 returns an empty edges array4015API::License4016 GET /license4017 retrieves the license information if admin is logged in4018 denies access if not admin4019 POST /license4020 adds a new license if admin is logged in4021 denies access if not admin4022 returns 400 if the license cannot be saved4023 DELETE /license/:id4024 returns an error if the license doesn't exist4025 returns 403 if the user is not an admin4026 behaves like license removal4027 destroys a license and returns 2044028 with a cloud license4029 behaves like license removal4030 destroys a license and returns 2044031 GET /licenses4032 returns a collection of licenses4033 returns an empty array if no licenses exist4034 returns 403 if the user is not an admin4035Create a Compliance Framework4036 framework feature is unlicensed4037 behaves like a mutation that returns errors in the response4038 is expected to contain exactly "Not permitted to create framework"4039 pipeline configuration feature is unlicensed4040 behaves like a mutation that returns errors in the response4041 is expected to contain exactly "Pipeline configuration full path feature is not available"4042 feature is licensed4043 namespace is a personal namespace4044 current_user is namespace owner4045 does not create a new compliance framework4046 behaves like a mutation that returns errors in the response4047 is expected to contain exactly "Failed to create framework" and "Namespace must be a group, user namespaces are not supported."4048 namespace is a group4049 current_user is group owner4050 behaves like a mutation that creates a compliance framework4051 creates a new compliance framework4052 returns the newly created framework4053 current_user is not a group owner4054 current_user is group owner4055 does not create a new compliance framework4056 behaves like a mutation that returns errors in the response4057 is expected to contain exactly "Not permitted to create framework"4058getting notes for an epic4059 behaves like exposing regular notes on a noteable in GraphQL4060 for regular notes4061 includes the note4062 behaves like a working graphql query4063 returns a successful response4064 for discussions4065 includes all discussion notes4066 behaves like a working graphql query4067 returns a successful response4068Update a DAST Scanner Profile4069 behaves like an on-demand scan mutation when user cannot run an on-demand scan4070 when a user does not have access to the project4071 behaves like a mutation that returns a top-level access error4072 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"4073 when a user does not have access to run a dast scan on the project4074 behaves like a mutation that returns a top-level access error4075 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"4076 behaves like an on-demand scan mutation when user can run an on-demand scan4077 returns an empty errors array4078 returns the dast_scanner_profile4079 updates the dast_scanner_profile4080 when on demand scan licensed feature is not available4081 behaves like a mutation that returns a top-level access error4082 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"4083 when there is an issue updating the dast_scanner_profile4084 behaves like a mutation that returns errors in the response4085 is expected to contain exactly "Name has already been taken"4086 when the dast_scanner_profile does not exist4087 behaves like a mutation that returns top-level errors4088 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"4089Projects::Security::CorpusManagementController4090 GET #show4091 when the "Security & Compliance" feature is disabled4092 is expected to respond with numeric status code not_found4093 feature available4094 user authorized4095 can access page4096 user not authorized4097 sees a 404 error4098 feature not available4099 license doesnt't support the feature4100 sees a 404 error4101Projects::InsightsController4102 when insights configuration project cannot be read by current user4103 GET #show.html4104 behaves like 404 status4105 returns 404 status4106 GET #show.json4107 behaves like 404 status4108 returns 404 status4109 POST #query4110 behaves like 404 status4111 returns 404 status4112 when insights configuration project can be read by current user4113 GET #show.html4114 behaves like 200 status4115 returns 200 status4116 GET #show.json4117 behaves like 200 status4118 returns 200 status4119 POST #query.json4120 behaves like 200 status4121 returns 200 status4122 GET #show4123 behaves like tracking unique visits4124 tracks unique visit if the format is HTML4125 tracks unique visit if DNT is not enabled4126 does not track unique visit if DNT is enabled4127 does not track unique visit if the format is JSON4128Admin::DevOpsReportController4129 show_adoption?4130 is false if license feature 'devops_adoption' is disabled4131 'devops_adoption' license feature is enabled4132 is true4133 #show4134 with devops adoption available4135 behaves like tracks usage event4136 tracks i_analytics_dev_ops_adoption usage event for4137 behaves like tracks usage event4138 tracks i_analytics_dev_ops_adoption usage event for dev4139 behaves like tracks usage event4140 tracks i_analytics_dev_ops_adoption usage event for sec4141 behaves like tracks usage event4142 tracks i_analytics_dev_ops_adoption usage event for ops4143 behaves like tracks usage event4144 tracks i_analytics_dev_ops_score usage event for devops-score4145 with devops adoption not available4146 behaves like tracks usage event4147 tracks i_analytics_dev_ops_score usage event for4148 behaves like tracks usage event4149 tracks i_analytics_dev_ops_score usage event for dev4150 behaves like tracks usage event4151 tracks i_analytics_dev_ops_score usage event for sec4152 behaves like tracks usage event4153 tracks i_analytics_dev_ops_score usage event for ops4154 behaves like tracks usage event4155 tracks i_analytics_dev_ops_score usage event for devops-score4156Destroy an epic board list4157 behaves like board lists destroy request4158 when the user does not have permission4159 does not destroy the list4160 returns an error4161 when the user has permission4162 when given id is not for a list4163 returns an error4164 when list does not exist4165 returns a top level error4166 when everything is ok4167 destroys the list4168 returns an empty list4169 when the list is not destroyable4170 behaves like does not destroy the list and returns an error4171 does not destroy the list4172 returns an error and not nil list4173Projects::ProtectedBranchesController4174 POST #create4175 when code_owner_approval_required is 'false'4176 behaves like protected branch with code owner approvals feature4177 sets code owner approvals to false when protecting the branch4178 when code_owner_approval_required is 'true'4179 when the feature is enabled4180 behaves like protected branch with code owner approvals feature4181 sets code owner approvals to true when protecting the branch4182 when the feature is not enabled4183 behaves like protected branch with code owner approvals feature4184 sets code owner approvals to false when protecting the branch4185Creating an External Issue Link4186 when the user does not have permission4187 does not create external issue link4188 behaves like a mutation that returns a top-level access error4189 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"4190 when the user has permission4191 when security_dashboard is disabled4192 behaves like a mutation that returns top-level errors4193 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"4194 when security_dashboard is enabled4195 when jira is not configured4196 responds with error4197 when jira is configured4198 when issue creation succeeds4199 and saving external issue link succeeds4200 creates the external issue link and returns nil for external issue to be fetched using query4201 and saving external issue link fails4202 creates the external issue link4203 when issue creation fails4204 does not create the external issue link4205API::GroupClusters4206 POST /groups/:id/clusters/user4207 when user sets specific environment scope4208 creates a cluster with that specific environment4209 when does not set an specific environment scope4210 sets default environment4211 PUT /groups/:id/clusters/:cluster_id4212 With a GCP cluster4213 updates the environment scope4214 With an user cluster4215 updates the environment scope4216API::Experiments4217 GET /experiments4218 when on .com4219 returns a 401 for anonymous users4220 returns a 403 for users4221 returns a 403 for non human users4222 for gitlab team members4223 returns the feature flag details4224 understands the state of the feature flag and what that means for an experiment4225 the null_hypothesis as a canary4226 runs and tracks the expected events4227 returns a 400 if experimentation seems broken4228 publishes into a collection of experiments that have been run in the request4229 when not .com4230 returns a 403 for users4231CustomersDot::ProxyController4232 POST graphql4233 with user signed in4234 behaves like customersdot proxy4235 forwards request body to customers dot4236 responds with customers dot status4237 responds with customers dot response body4238 with no user signed in4239 behaves like customersdot proxy4240 forwards request body to customers dot4241 responds with customers dot status4242 responds with customers dot response body4243Projects::Security::ScannedResourcesController4244 GET #index4245 when the "Security & Compliance" feature is disabled4246 is expected to respond with numeric status code not_found4247 user has access to view vulnerabilities4248 when DAST security scan is found4249 returns a CSV representation of the scanned resources4250 when DAST licensed feature is unavailable4251 will return a 4044252 when security_dashboard licensed feature is not available4253 will return a 4044254 when DAST security scan is not found4255 will return a 4044256 when the pipeline id exists under another project4257 will return a 4044258 when the pipeline does not exist4259 will return a 4044260 user does not have access to view vulnerabilities4261 will return a 4044262Groups::Analytics::RepositoryAnalyticsController4263 GET show4264 is expected to respond with numeric status code success4265 tracks a pageview event in snowplow4266 when requesting a redirected path4267 redirects to the canonical path4268 when license is missing4269 is expected to respond with numeric status code forbidden4270 when the user has no access to the group4271 is expected to respond with numeric status code forbidden4272 when the user is an auditor4273 is expected to respond with numeric status code success4274Running a DAST Profile4275 behaves like an on-demand scan mutation when user cannot run an on-demand scan4276 when a user does not have access to the project4277 behaves like a mutation that returns a top-level access error4278 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"4279 when a user does not have access to run a dast scan on the project4280 behaves like a mutation that returns a top-level access error4281 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"4282 behaves like an on-demand scan mutation when user can run an on-demand scan4283 returns an empty errors array4284 returns a pipeline_url containing the correct path4285 when on demand scan licensed feature is not available4286 behaves like a mutation that returns a top-level access error4287 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"4288 when pipeline creation fails4289 behaves like a mutation that returns errors in the response4290 is expected to contain exactly "full error messages"4291Projects::Pipelines::EmailCampaignsController4292 GET #validate_account4293 when user has access to the pipeline4294 emits a snowplow event4295 sets session[:start_account_validation] to true4296 redirects to the pipeline show page4297 when not in .com or dev env4298 returns 4044299 when user does not have access to the pipeline4300 returns :not_found4301 does not set session[:start_account_validation]4302CredentialsInventoryMailer4303 #personal_access_token_revoked_email4304 is expected to have subject of "Your Personal Access Token was revoked"4305 is expected to have body including "The following Personal Access Token was revoked by an administrator, Revoker"4306 is expected to have body including "PAT 750"4307 is expected to have body including "Created on Jul 4, 2022"4308 is expected to have body including "Scopes: api, sudo"4309 is expected to be delivered to ["user1761@example.org"]4310 is expected to have body including "Last used 21 days ago"4311 #ssh_key_deleted_email4312 is expected to have subject of "Your SSH key was deleted"4313 is expected to have body including "The following SSH key was deleted by an administrator, Revoker"4314 is expected to be delivered to ["user1762@example.org"]4315 is expected to have body including "My title 714"4316 is expected to have body including "Created on Jul 4, 2022"4317 is expected to have body including "Last used 21 days ago"4318Repositories::GitHttpController4319 when repository container is a group wiki4320 behaves like Repositories::GitHttpController4321 HEAD #info_refs4322 returns 4034323 GET #info_refs4324 returns 401 for unauthenticated requests to public repositories when http protocol is disabled4325 calls the right access checker class with the right object4326 with authorized user4327 returns 2004328 updates the user activity4329 adds user info to the logs4330 POST #git_upload_pack4331 returns 2004332 git audit streaming event4333 behaves like sends git audit streaming event4334 for public groups and projects4335 when user not logged in4336 sends the audit streaming event4337 for private groups and projects4338 when user logged in4339 sends the audit streaming event4340Projects::IssueLinksController4341 GET #index4342 returns success response4343 POST #create4344 returns success response4345 when blocked issues is disabled4346 returns failure response4347Set an Epic Subscription4348 when epics feature is disabled4349 does not subscribe user to the epic4350 behaves like a mutation that returns a top-level access error4351 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"4352 when epics feature is enabled4353 when a user wants to subscribe to an epic4354 subscribes the user to the epic4355 when a user wants to unsubscribe from an epic4356 unsubscribes the user from the epic4357Projects::PagesController4358 when max_pages_size param is specified4359 when user is an admin4360 when admin mode is enabled4361 updates max_pages_size4362 when admin mode is disabled4363 does not update max_pages_size4364 when user is not an admin4365 does not update max_pages_size4366API::Ci::Runner4367 PATCH /api/v4/jobs/:id/trace4368 tracks CI minutes usage of running job4369 when CI minutes usage is exceeded4370 drops the job4371 when CI minutes usage is not exceeded4372 does not drop the job4373Groups::GroupMembersController4374 PUT /groups/*group_id/-/group_members/:id4375 when group has email domain feature enabled4376 for a user with an email belonging to the allowed domain4377 returns error status4378 for a user with an un-verified email belonging to a domain different from the allowed domain4379 returns error status4380 returns error message4381getting project information4382 returns Todos for all target types4383 behaves like a working graphql query4384 returns a successful response4385Delete a DAST Scanner Profile4386 behaves like an on-demand scan mutation when user cannot run an on-demand scan4387 when a user does not have access to the project4388 behaves like a mutation that returns a top-level access error4389 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"4390 when a user does not have access to run a dast scan on the project4391 behaves like a mutation that returns a top-level access error4392 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"4393 behaves like an on-demand scan mutation when user can run an on-demand scan4394 returns an empty errors array4395 deletes the dast_scanner_profile4396 when on demand scan licensed feature is not available4397 behaves like a mutation that returns a top-level access error4398 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"4399 when the dast_scanner_profile does not exist4400 behaves like a mutation that returns top-level errors4401 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"4402Delete a compliance framework4403 feature is unlicensed4404 does not destroy a compliance framework4405 behaves like a mutation that returns top-level errors4406 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"4407 when licensed4408 current_user is namespace owner4409 has no errors4410 destroys a compliance framework4411 current_user is not namespace owner4412 does not destroy a compliance framework4413 behaves like a mutation that returns top-level errors4414 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"4415Groups::Analytics::DevopsAdoptionController4416 GET show4417 when user is not authorized to view devops adoption analytics4418 renders 403, forbidden error4419 when user is an auditor4420 allows access4421 when the user is a group maintainer4422 renders the devops adoption page4423 tracks devops_adoption usage event4424 when the feature is not available4425 renders forbidden4426Projects::Settings::RepositoryController4427 GET show4428 push rule4429 is created4430 is connected to project_settings4431 unlicensed4432 is not created4433getting Incident Management on-call shifts4434 returns the correct properties of the on-call shifts4435 behaves like a working graphql query4436 returns a successful response4437 performance4438 for additional participant4439 behaves like avoids N+1 queries4440 is expected not to exceed query limit #<ActiveRecord::QueryRecorder:0x00007f79dedba6a0 @data={"/app/models/concerns/token_authenticatable_s...@skip_cached=true, @skip_schema_queries=true, @query_recorder_debug=false, @log_file=nil, @count=15>4441 for additional rotation with participants4442 behaves like avoids N+1 queries4443 is expected not to exceed query limit #<ActiveRecord::QueryRecorder:0x00007f79eb187cb8 @data={"/app/models/concerns/token_authenticatable_s...@skip_cached=true, @skip_schema_queries=true, @query_recorder_debug=false, @log_file=nil, @count=15>4444Admin::AuditLogReportsController4445 GET index4446 when user has access4447 when licensed4448 invokes CSV export service with correct arguments4449 returns success status with correct headers4450 returns a csv file in response4451 when date range params are not provided4452 passes the default date range filter to the CSV export service4453 when invalid date params are provided4454 created_before: "invalid-date", created_after: nil4455 returns an error4456 created_before: nil, created_after: true4457 returns an error4458 created_before: "2021-13-10", created_after: nil4459 returns an error4460 created_before: nil, created_after: "2021-02-31"4461 returns an error4462 created_before: "2021-03-31", created_after: "2021-02-31"4463 returns an error4464 when unlicensed4465 is expected to respond with numeric status code not_found4466 when user does not have access4467 is expected to respond with numeric status code not_found4468API::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 errs4497Projects::Security::ScannedResourcesController4498 GET index4499 when the "Security & Compliance" feature is disabled4500 is expected to respond with numeric status code not_found4501 when DAST security scan is found4502 returns the CSV data4503 when pipeline_id is from a dangling pipeline4504 returns the CSV data4505 when the pipeline id is missing4506 raises an error when pipeline_id param is missing4507Projects::RepositoriesController4508 GET archive4509 when unauthenticated for a public project4510 behaves like logs the audit event4511 logs the audit event4512 when group sets event destination4513 behaves like sends the streaming audit event4514 sends the streaming event with audit event type4515 when authenticated as a developer4516 behaves like logs the audit event4517 logs the audit event4518 when group sets event destination4519 behaves like sends the streaming audit event4520 sends the streaming event with audit event type4521OmniAuth Kerberos SPNEGO4522 asks for an SPNEGO token4523 when an SPNEGO token is provided4524 passes the token to spnego_negotiate!4525 when the final SPNEGO token is provided4526 redirects to the omniauth callback4527 stores the users principal name in the session4528 send the final SPNEGO response4529TrialRegistrationsController4530 #new4531 a dot-com only feature4532 behaves like a dot-com only feature4533 when not on gitlab.com and not in development environment4534 is expected to respond with numeric status code not_found4535 when on gitlab.com or in dev environment4536 is expected to respond with numeric status code ok4537 when customer is not authenticated4538 is expected to render template new4539 when customer is authenticated4540 when about_your_company_registration_flow is disabled4541 is expected to redirect to "http://test.host/-/trials/new"4542 when there are additional query params4543 is expected to redirect to "http://test.host/-/trials/new?glm_content=some_content&glm_source=some_source"4544 when about_your_company_registration_flow is enabled4545 is expected to redirect to "/users/sign_up/company/new?trial=true"4546 #create4547 marks the account as unconfirmed4548 behaves like a dot-com only feature4549 when not on gitlab.com and not in development environment4550 is expected to respond with numeric status code not_found4551 when on gitlab.com or in dev environment4552 is expected to respond with numeric status code found4553 derivation of name4554 sets name from first and last name4555 applying the onboarding=true parameter4556 adds the parameter4557getting Incident Management escalation policies4558 includes expected data4559 avoids N+1 queries4560 with multiple rules4561 orders rules by time and status4562Creating a DAST Site Token4563 behaves like an on-demand scan mutation when user cannot run an on-demand scan4564 when a user does not have access to the project4565 behaves like a mutation that returns a top-level access error4566 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"4567 when a user does not have access to run a dast scan on the project4568 behaves like a mutation that returns a top-level access error4569 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"4570 behaves like an on-demand scan mutation when user can run an on-demand scan4571 returns an empty errors array4572 deletes dast_site_validations where state=passed4573 when on demand scan licensed feature is not available4574 behaves like a mutation that returns a top-level access error4575 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"4576Emails::Issues4577 iterations4578 #changed_iteration_issue_email4579 shows the iteration it was changed to4580 when iteration_cadences FF enabled4581 shows the iteration it was changed to4582 #removed_iteration_issue_email4583 says iteration was removed4584RootController4585 GET #index4586 when user is not logged in4587 on a Geo primary node4588 redirects to the sign-in page4589 when a custom home page URL is defined4590 redirects the user to the custom home page URL4591 on a Geo secondary node4592 redirects to the sign-in page4593 when a custom home page URL is defined4594 redirects to the sign-in page4595 with a user4596 who has customized their dashboard setting for operations4597 when licensed4598 redirects to operations dashboard4599 when unlicensed4600 renders the default dashboard4601Query.vulnerabilities.scanner4602 returns a vulnerability scanner4603Boards::UsersController4604 GET index4605 with authorized user4606 returns a list of all members of board parent4607 with unauthorized user4608 with private group board4609 behaves like unauthorized board user listing4610 returns a forbidden 403 response4611 with private project board4612 behaves like unauthorized board user listing4613 returns a forbidden 403 response4614Groups::Security::DashboardController4615 GET show4616 when security dashboard feature is enabled4617 and user is allowed to access group security dashboard4618 is expected to respond with numeric status code ok4619 when user is not allowed to access group security dashboard4620 is expected to respond with numeric status code ok4621 is expected to render template unavailable4622 when security dashboard feature is disabled4623 is expected to respond with numeric status code ok4624 is expected to render template unavailable4625Groups::VariablesController4626 PATCH #update4627 scoped variables are available4628 updates the environment scope4629 scoped variables are not available4630 does not update the environment scope4631API::Ci::Runner4632 PUT /api/v4/jobs/:id4633 tracks CI minutes usage of running job4634 when CI minutes usage is exceeded4635 drops the job4636 when CI minutes usage is not exceeded4637 does not drop the job4638Update Environment Canary Ingress4639 when environment is protected and allowed to be deployed by only operator4640 fails to update4641Mutations::Boards::EpicBoards::Create4642 when the user does not have permission4643 behaves like a mutation that returns a top-level access error4644 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"4645 when the user has permission4646 returns the created board4647 when create fails4648 returns an error4649Groups::RunnersController4650 #index4651 enables runner_upgrade_management_for_namespace licensed feature4652 #show4653 enables runner_upgrade_management_for_namespace licensed feature4654Mutations::Boards::EpicBoards::Update4655 when the user does not have permission4656 behaves like a mutation that returns a top-level access error4657 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"4658 when the user has permission4659 returns the updated board4660 when update fails4661 returns an error4662Projects::DeployTokensController4663 PUT /:project_path_with_namespace/-/deploy_tokens/:id/revoke4664 creates an audit event4665 behaves like sends correct event type in audit event stream4666 sends correct event type in audit event stream4667API::Integrations4668 Slack application Service4669 returns status 2004670Registrations::CompanyController4671 #new4672 behaves like user authentication4673 when not authenticated4674 is expected to redirect to "/users/sign_in"4675 when authenticated4676 is expected to respond with numeric status code ok4677 behaves like a dot-com only feature4678 when not on gitlab.com4679 is expected to respond with numeric status code not_found4680 when on gitlab.com4681 is expected to respond with numeric status code ok4682 on render4683 is expected to render template layouts/minimal4684 is expected to render template new4685 #create4686 on success4687 trial_onboarding_flow: "true", redirect_query: {:trial_onboarding_flow=>true}4688 creates trial or lead and redirects to the correct path4689 trial_onboarding_flow: "false", redirect_query: {:skip_trial=>true}4690 creates trial or lead and redirects to the correct path4691 on failure4692 trial_onboarding_flow: "true"4693 renders company page :new4694 trial_onboarding_flow: "false"4695 renders company page :new4696Update board epic user preferences4697 returns an error if user can not access the board4698 when user can access the board4699 returns an error if user can not access the epic4700 when user can access the epic4701 updates user preferences4702Projects::ServiceDeskController4703 PUT service desk properties4704 sets file_template_project_id4705Activate a subscription4706 persists license key4707Admin::UserPermissionExportsController4708 #index4709 when user is authorized4710 when successful4711 responds with :ok4712 invokes the Export Service4713 has the appropriate data4714 when Export fails4715 responds appropriately4716 when user is unauthorised4717 responds with :not_found4718Admin::UsersController4719 GET card_match4720 when not SaaS4721 responds with 4044722 when SaaS4723 when user has no credit card validation4724 redirects back to #show4725 when user has credit card validation4726 displays its own and matching card details4727Registrations::VerificationController4728 GET #new4729 with an unauthenticated user4730 is expected to respond with numeric status code redirect4731 is expected to redirect to "/users/sign_in"4732 with an authenticated user4733 when on .com4734 is expected to respond with numeric status code ok4735 is expected to render template layouts/minimal4736 is expected to render template new4737 publishes the experiment4738 when not on .com4739 is expected to respond with numeric status code not_found4740Query.project(fullPath).pathLocks4741 unlicensed feature4742 is expected to be empty4743 licensed feature4744 returns path locks4745Projects::ImportsController4746 POST #create4747 mirror user is not the current user4748 only assigns the current user4749API::Features4750 POST /feature4751 when running on a Geo primary node4752 creates Geo cache invalidation event4753 when licensed feature name is given4754 returns bad request4755 when force=1 is set4756 allows to change state4757 DELETE /feature/:name4758 when running on a Geo primary node4759 creates Geo cache invalidation event4760API::API4761 logging4762 when the method is not allowed4763 logs the route and context metadata for the client4764CreateApiFuzzingCiConfiguration4765 returns a YAML snippet that can be used to configure API fuzzing scans for the project4766Profiles::KeysController4767 #create4768 logs the audit event4769Rack Attack global throttles4770 when the request is from Geo secondary4771 allows requests over the rate limit4772CountriesController4773 GET #index4774 returns list of countries as json4775 does not include list of denied countries4776Emails::Epics4777 adds email methods to Notify4778Knapsack report was generated. Preview:4779{4780 "ee/spec/controllers/ee/search_controller_spec.rb": 170.79970874300125,4781 "ee/spec/controllers/projects/merge_requests_controller_spec.rb": 170.54764466899906,4782 "ee/spec/requests/api/groups_spec.rb": 66.49921859900132,4783 "ee/spec/requests/api/issues_spec.rb": 61.550374195001496,4784 "ee/spec/controllers/projects/issues_controller_spec.rb": 60.87751491600284,4785 "ee/spec/requests/api/notes_spec.rb": 64.88934815099856,4786 "ee/spec/requests/api/namespaces_spec.rb": 35.50549430799947,4787 "ee/spec/requests/api/ldap_group_links_spec.rb": 45.492166667001584,4788 "ee/spec/requests/api/epic_issues_spec.rb": 45.86810689900085,4789 "ee/spec/controllers/groups/epic_issues_controller_spec.rb": 33.975536284000555,4790 "ee/spec/requests/api/graphql/mutations/epic_tree/reorder_spec.rb": 36.229001923002215,4791 "ee/spec/requests/api/merge_request_approvals_spec.rb": 31.503018285002327,4792 "ee/spec/controllers/boards/issues_controller_spec.rb": 37.16782860999956,4793 "ee/spec/requests/api/epic_links_spec.rb": 24.48753669600046,4794 "ee/spec/requests/api/internal/kubernetes_spec.rb": 22.717802101000416,4795 "ee/spec/requests/api/status_checks_spec.rb": 16.140543771998637,4796 "ee/spec/requests/git_http_spec.rb": 23.81107676800093,4797 "ee/spec/requests/groups/security/credentials_controller_spec.rb": 18.518625761000294,4798 "ee/spec/controllers/subscriptions_controller_spec.rb": 10.679964807000943,4799 "ee/spec/requests/projects/settings/access_tokens_controller_spec.rb": 18.59853110399854,4800 "ee/spec/controllers/groups/audit_events_controller_spec.rb": 14.171158791999915,4801 "ee/spec/controllers/groups/sso_controller_spec.rb": 14.828137551998225,4802 "ee/spec/requests/admin/credentials_controller_spec.rb": 14.512561585001094,4803 "ee/spec/requests/api/graphql/iteration_spec.rb": 11.455633387999114,4804 "ee/spec/requests/api/managed_licenses_spec.rb": 13.483115433999046,4805 "ee/spec/controllers/groups/iterations_controller_spec.rb": 11.091754746001243,4806 "ee/spec/controllers/groups/insights_controller_spec.rb": 11.470599176998803,4807 "ee/spec/controllers/admin/geo/projects_controller_spec.rb": 11.854296618999797,4808 "ee/spec/controllers/groups/epic_boards_controller_spec.rb": 11.79821275300128,4809 "ee/spec/requests/smartcard_controller_spec.rb": 6.084007076002308,4810 "ee/spec/requests/api/graphql/project/issues_spec.rb": 10.91182387400113,4811 "ee/spec/controllers/groups/analytics/productivity_analytics_controller_spec.rb": 9.946895692999533,4812 "ee/spec/requests/api/award_emoji_spec.rb": 10.97124374300256,4813 "ee/spec/requests/projects/on_demand_scans_controller_spec.rb": 10.189336964998802,4814 "ee/spec/controllers/oauth/geo_auth_controller_spec.rb": 8.732562568999128,4815 "ee/spec/controllers/groups/security/policies_controller_spec.rb": 9.08906879099959,4816 "ee/spec/controllers/concerns/routable_actions_spec.rb": 10.51799913799914,4817 "ee/spec/controllers/groups/groups_controller_spec.rb": 8.77209486600259,4818 "ee/spec/controllers/autocomplete_controller_spec.rb": 6.582667959999526,4819 "ee/spec/controllers/groups/analytics/cycle_analytics_controller_spec.rb": 8.361903598000936,4820 "ee/spec/requests/api/project_clusters_spec.rb": 10.976317240998469,4821 "ee/spec/mailers/ci_minutes_usage_mailer_spec.rb": 5.281961751999916,4822 "ee/spec/controllers/concerns/ee/routable_actions/sso_enforcement_redirect_spec.rb": 8.129456967002625,4823 "ee/spec/controllers/admin/projects_controller_spec.rb": 6.538225023999985,4824 "ee/spec/requests/api/internal/app_sec/dast/site_validations_spec.rb": 5.287000000997068,4825 "ee/spec/controllers/ee/dashboard/projects_controller_spec.rb": 6.77780714400069,4826 "ee/spec/requests/api/graphql/mutations/issues/update_spec.rb": 7.544404513002519,4827 "ee/spec/controllers/projects/security/sast_configuration_controller_spec.rb": 8.494241196996882,4828 "ee/spec/controllers/projects/security/dashboard_controller_spec.rb": 7.6352452659994015,4829 "ee/spec/requests/projects/analytics/code_reviews_controller_spec.rb": 8.402715135001927,4830 "ee/spec/requests/api/dependencies_spec.rb": 5.810187961000338,4831 "ee/spec/controllers/projects/security/vulnerability_report_controller_spec.rb": 6.528210773001774,4832 "ee/spec/requests/api/graphql/project/requirements_management/test_reports_spec.rb": 5.104647856998781,4833 "ee/spec/requests/rack_attack_spec.rb": 4.668146130999958,4834 "ee/spec/controllers/groups/seat_usage_controller_spec.rb": 4.606572325999878,4835 "ee/spec/requests/api/analytics/group_activity_analytics_spec.rb": 6.477267237998603,4836 "ee/spec/requests/api/ci/runner_spec.rb": 6.753731615001016,4837 "ee/spec/requests/projects/security/dast_scanner_profiles_controller_spec.rb": 4.008623563000583,4838 "ee/spec/controllers/admin/geo/nodes_controller_spec.rb": 3.996866304001742,4839 "ee/spec/requests/groups/protected_environments_controller_spec.rb": 5.594554698000138,4840 "ee/spec/requests/api/graphql/project/dast_site_validations_spec.rb": 4.605865274999815,4841 "ee/spec/controllers/projects/integrations/zentao/issues_controller_spec.rb": 4.967958367000392,4842 "ee/spec/requests/api/graphql/project/dast_site_profiles_spec.rb": 5.448190649000026,4843 "ee/spec/requests/api/license_spec.rb": 4.501355653999781,4844 "ee/spec/requests/api/graphql/mutations/compliance_management/frameworks/create_spec.rb": 3.526659130999178,4845 "ee/spec/requests/api/graphql/group/epic/notes_spec.rb": 4.52148451299945,4846 "ee/spec/requests/api/graphql/mutations/dast_scanner_profiles/update_spec.rb": 4.270004482001241,4847 "ee/spec/requests/projects/security/corpus_management_controller_spec.rb": 5.15923104200192,4848 "ee/spec/controllers/projects/insights_controller_spec.rb": 3.6714891900010116,4849 "ee/spec/controllers/admin/dev_ops_report_controller_spec.rb": 2.1086814839982253,4850 "ee/spec/requests/api/graphql/mutations/boards/epic_lists/destroy_spec.rb": 4.717154447000212,4851 "ee/spec/controllers/ee/projects/protected_branches_controller_spec.rb": 3.815193308000744,4852 "ee/spec/requests/api/graphql/mutations/vulnerabilities/create_external_issue_link_spec.rb": 4.4178671299996495,4853 "ee/spec/requests/api/group_clusters_spec.rb": 4.5283656520005025,4854 "ee/spec/requests/api/experiments_spec.rb": 3.739852623999468,4855 "ee/spec/requests/customers_dot/proxy_controller_spec.rb": 2.0548286979974364,4856 "ee/spec/requests/projects/security/scanned_resources_controller_spec.rb": 3.47284472499814,4857 "ee/spec/controllers/groups/analytics/repository_analytics_controller_spec.rb": 2.582409186001314,4858 "ee/spec/requests/api/graphql/mutations/dast/profiles/run_spec.rb": 4.3404271569997945,4859 "ee/spec/requests/projects/pipelines/email_campaigns_controller_spec.rb": 3.0993544750017463,4860 "ee/spec/mailers/credentials_inventory_mailer_spec.rb": 2.1661905879991536,4861 "ee/spec/controllers/repositories/git_http_controller_spec.rb": 3.8974165319996246,4862 "ee/spec/controllers/projects/issue_links_controller_spec.rb": 1.9594854950009903,4863 "ee/spec/requests/api/graphql/mutations/epics/set_subscription_spec.rb": 1.906144308999501,4864 "ee/spec/controllers/projects/pages_controller_spec.rb": 3.5159991219989024,4865 "ee/spec/requests/api/ci/runner/jobs_trace_spec.rb": 1.456383824999648,4866 "ee/spec/requests/groups/group_members_controller_spec.rb": 2.371734121999907,4867 "ee/spec/requests/api/graphql/current_user/todos_query_spec.rb": 2.7257495539997763,4868 "ee/spec/requests/api/graphql/mutations/dast_scanner_profiles/delete_spec.rb": 2.85152452499824,4869 "ee/spec/requests/api/graphql/mutations/compliance_management/frameworks/destroy_spec.rb": 3.499793672999658,4870 "ee/spec/requests/groups/analytics/devops_adoption_controller_spec.rb": 2.2720525699987775,4871 "ee/spec/controllers/projects/settings/repository_controller_spec.rb": 3.2023456969982362,4872 "ee/spec/requests/api/graphql/project/incident_management/oncall_participants_spec.rb": 2.4408002169984684,4873 "ee/spec/controllers/admin/audit_log_reports_controller_spec.rb": 0.8665890709999076,4874 "ee/spec/requests/api/elasticsearch_indexed_namespaces_spec.rb": 1.92207291700106,4875 "ee/spec/controllers/projects/security/scanned_resources_controller_spec.rb": 2.093766655001673,4876 "ee/spec/controllers/projects/repositories_controller_spec.rb": 3.2701635109988274,4877 "ee/spec/requests/omniauth_kerberos_spnego_spec.rb": 1.10756041300192,4878 "ee/spec/controllers/trial_registrations_controller_spec.rb": 1.8575672730003134,4879 "ee/spec/requests/api/graphql/project/incident_management/escalation_policy/rules_spec.rb": 2.786821150002652,4880 "ee/spec/requests/api/graphql/mutations/dast_site_validations/revoke_spec.rb": 2.3960172299994156,4881 "ee/spec/mailers/ee/emails/issues_spec.rb": 1.2668231099996774,4882 "ee/spec/controllers/ee/root_controller_spec.rb": 1.3721064320016012,4883 "ee/spec/requests/api/graphql/vulnerabilities/scanner_spec.rb": 2.1999299059971236,4884 "ee/spec/controllers/boards/users_controller_spec.rb": 2.6304140920001373,4885 "ee/spec/controllers/groups/security/dashboard_controller_spec.rb": 2.3205230359999405,4886 "ee/spec/controllers/ee/groups/variables_controller_spec.rb": 1.3687956810026662,4887 "ee/spec/requests/api/ci/runner/jobs_put_spec.rb": 1.5184142399994016,4888 "ee/spec/requests/api/graphql/mutations/environments/canary_ingress/update_spec.rb": 1.9160501779988408,4889 "ee/spec/requests/api/graphql/mutations/boards/epic_boards/create_spec.rb": 1.1388247389986645,4890 "ee/spec/controllers/groups/runners_controller_spec.rb": 1.1343465999998443,4891 "ee/spec/requests/api/graphql/mutations/boards/epic_boards/update_spec.rb": 1.4647486139983812,4892 "ee/spec/requests/ee/projects/deploy_tokens_controller_spec.rb": 1.6463785599989933,4893 "ee/spec/requests/api/integrations_spec.rb": 0.6657163269992452,4894 "ee/spec/controllers/registrations/company_controller_spec.rb": 0.7438094509998336,4895 "ee/spec/requests/api/graphql/mutations/boards/update_epic_user_preferences_spec.rb": 1.6574483190015599,4896 "ee/spec/requests/ee/projects/service_desk_controller_spec.rb": 1.4612141539982986,4897 "ee/spec/requests/api/graphql/mutations/gitlab_subscriptions/activate_spec.rb": 0.9802289930012194,4898 "ee/spec/requests/admin/user_permission_exports_controller_spec.rb": 0.8343343640008243,4899 "ee/spec/requests/admin/users_controller_spec.rb": 1.4557307950017275,4900 "ee/spec/controllers/registrations/verification_controller_spec.rb": 0.920711578000919,4901 "ee/spec/requests/api/graphql/project/path_locks_spec.rb": 1.2657099999996717,4902 "ee/spec/controllers/projects/imports_controller_spec.rb": 1.0173117090016603,4903 "ee/spec/requests/api/features_spec.rb": 0.8054389769968111,4904 "ee/spec/requests/api/api_spec.rb": 0.5184217790010734,4905 "ee/spec/requests/api/graphql/mutations/app_sec/fuzzing/api/ci_configuration/create_spec.rb": 0.8378970539997681,4906 "ee/spec/controllers/profiles/keys_controller_spec.rb": 0.4979152910018456,4907 "ee/spec/requests/rack_attack_global_spec.rb": 0.8229158239992103,4908 "ee/spec/controllers/countries_controller_spec.rb": 0.4646482330026629,4909 "ee/spec/mailers/emails/epics_spec.rb": 0.15936808700280384910}4911Knapsack global time execution for tests: 25m 04s4912Finished in 25 minutes 8 seconds (files took 1 minute 15.25 seconds to load)49131957 examples, 0 failures4914RSpec exited with 0.4915No examples to retry, congrats!4917Not uploading cache ruby-gems-debian-bullseye-ruby-2.7-10 due to policy4918Not uploading cache gitaly-ruby-gems-debian-bullseye-ruby-2.7-10 due to policy4920Uploading artifacts...4921coverage/: found 5 matching files and directories 4922crystalball/: found 2 matching files and directories 4923WARNING: deprecations/: no matching files. Ensure that the artifact path is relative to the working directory 4924knapsack/: found 3 matching files and directories 4925rspec/: found 8 matching files and directories 4926WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory 4927log/*.log: found 19 matching files and directories 4928WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/2673683158/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com4929WARNING: Retrying... context=artifacts-uploader error=request redirected4930Uploading artifacts as "archive" to coordinator... 201 Created id=2673683158 responseStatus=201 Created token=kTKRACJs4931Uploading artifacts...4932rspec/junit_rspec.xml: found 1 matching files and directories 4933WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/2673683158/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com4934WARNING: Retrying... context=artifacts-uploader error=request redirected4935Uploading artifacts as "junit" to coordinator... 201 Created id=2673683158 responseStatus=201 Created token=kTKRACJs4937Job succeeded