Running with gitlab-runner 17.0.0~pre.88.g761ae5dd (761ae5dd)
  on green-4.shared-gitlab-org.runners-manager.gitlab.com/default x5QiHUKw, system ID: s_b9637080a79e
  feature flags: FF_NETWORK_PER_BUILD:true
Resolving secrets
section_start:1717996289:prepare_executor
Preparing the "docker+machine" executor
Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bookworm-ruby-3.1.5-golang-1.22-rust-1.73-node-20.12-postgresql-14:rubygems-3.4-git-2.36-lfs-2.9-chrome-123-yarn-1.22-graphicsmagick-1.3.36 ...
Starting service registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-14-pgvector-0.4.1 ...
Authenticating with credentials from job payload (GitLab Registry)
Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-14-pgvector-0.4.1 ...
Using docker image sha256:82f132c22567f8ce17cc132c14b2f9aa3eaf9bb5424d91c2d966912433f0257d for registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-14-pgvector-0.4.1 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:c55e1364ee4327b244a9cfa1750f19feea14fc774eaf792b725967d146eb45f5 ...
WARNING: Service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 is already created. Ignoring.
WARNING: Service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 is already created. Ignoring.
Starting service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 ...
Authenticating with credentials from job payload (GitLab Registry)
Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 ...
Using docker image sha256:5c5ba5b83d6c60cb0b225bd670b7a43be8c238cc72347d24af57e5027c3648f3 for registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:46aceab84c42d0e819c8e7940f2f98ce9e184785cd7b22d95872024a35f52407 ...
Starting service redis:6.2-alpine ...
Pulling docker image redis:6.2-alpine ...
Using docker image sha256:0fc0b666ef9eb249e61edd4e2ec434a328e98117079727c5e7cf6dc9a00d7a94 for redis:6.2-alpine with digest redis@sha256:d6c2911ac51b289db208767581a5d154544f2b2fe4914ea5056443f62dc6e900 ...
Waiting for services to be up and running (timeout 30 seconds)...
Authenticating with credentials from job payload (GitLab Registry)
Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bookworm-ruby-3.1.5-golang-1.22-rust-1.73-node-20.12-postgresql-14:rubygems-3.4-git-2.36-lfs-2.9-chrome-123-yarn-1.22-graphicsmagick-1.3.36 ...
Using docker image sha256:21ec3e839ba5bfb36401dee427e2cfe47c62369f01ac880c4bbabe58cef4844a for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bookworm-ruby-3.1.5-golang-1.22-rust-1.73-node-20.12-postgresql-14:rubygems-3.4-git-2.36-lfs-2.9-chrome-123-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bookworm-ruby-3.1.5-golang-1.22-rust-1.73-node-20.12-postgresql-14@sha256:a3d4de7c86432a2fe5e4a74cd9e8e5b778530be01f65aa774238e0429c764a37 ...
section_end:1717996354:prepare_executor
section_start:1717996354:prepare_script
Preparing environment
Running on runner-x5qihukw-project-278964-concurrent-0 via runner-x5qihukw-shared-gitlab-org-1717994508-8b3fb37e...
section_end:1717996354:prepare_script
section_start:1717996354:get_sources
Getting source from Git repository
Skipping Git repository setup
Skipping Git checkout
Skipping Git submodules setup
section_end:1717996355:get_sources
section_start:1717996355:restore_cache
Restoring cache
Checking cache for ruby-gems-debian-bookworm-ruby-3.1.5-17...
Downloading cache from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/ruby-gems-debian-bookworm-ruby-3.1.5-17 
Successfully extracted cache
section_end:1717996372:restore_cache
section_start:1717996372:download_artifacts
Downloading artifacts
Downloading artifacts for clone-gitlab-repo (7055068878)...
Downloading artifacts from coordinator... ok        host=storage.googleapis.com id=7055068878 responseStatus=200 OK token=glcbt-65
WARNING: Part of .git directory is on the list of files to extract 
WARNING: This may introduce unexpected problems    
Downloading artifacts for compile-test-assets (7055068894)...
Downloading artifacts from coordinator... ok        host=storage.googleapis.com id=7055068894 responseStatus=200 OK token=glcbt-65
Downloading artifacts for retrieve-tests-metadata (7055068919)...
Downloading artifacts from coordinator... ok        host=storage.googleapis.com id=7055068919 responseStatus=200 OK token=glcbt-65
Downloading artifacts for setup-test-env (7055068907)...
Downloading artifacts from coordinator... ok        host=storage.googleapis.com id=7055068907 responseStatus=200 OK token=glcbt-65
section_end:1717996413:download_artifacts
section_start:1717996413:step_script
Executing "step_script" stage of the job script
Using docker image sha256:21ec3e839ba5bfb36401dee427e2cfe47c62369f01ac880c4bbabe58cef4844a for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bookworm-ruby-3.1.5-golang-1.22-rust-1.73-node-20.12-postgresql-14:rubygems-3.4-git-2.36-lfs-2.9-chrome-123-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bookworm-ruby-3.1.5-golang-1.22-rust-1.73-node-20.12-postgresql-14@sha256:a3d4de7c86432a2fe5e4a74cd9e8e5b778530be01f65aa774238e0429c764a37 ...
$ echo $FOSS_ONLY

$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb
$ export GOPATH=$CI_PROJECT_DIR/.go
$ mkdir -p $GOPATH
$ source scripts/utils.sh
$ source scripts/prepare_build.sh
section_start:1717996413:bundle-install[collapsed=true]
Installing gems
3.4.4
Bundler version 2.4.4
Successfully installed bundler-2.4.11
1 gem installed
production:development
Settings are listed in order of priority. The top value will be used.
clean
Set for your local app (/builds/gitlab-org/gitlab/.bundle/config): true

frozen
Set via BUNDLE_FROZEN: true

install_flags
Set via BUNDLE_INSTALL_FLAGS: "--jobs=$(nproc) --retry=3"

path
Set for your local app (/builds/gitlab-org/gitlab/.bundle/config): "/builds/gitlab-org/gitlab/vendor"

without
Set via BUNDLE_WITHOUT: [:production, :development]

$ bundle install --jobs=$(nproc) --retry=3 
Don't run Bundler as root. Installing your bundle as root will break this
application for all non-root users on this machine.
Patching bundler with bundler-checksum...
Using rake 13.0.6
Using rexml 3.2.6
Using CFPropertyList 3.0.5
Using RedCloth 4.3.3
Using faraday-em_http 1.0.0
Using faraday-em_synchrony 1.0.0
Using faraday-excon 1.1.0
Using faraday-httpclient 1.0.1
Using multipart-post 2.2.3
Using faraday-multipart 1.0.4
Using faraday-net_http 1.0.1
Using faraday-net_http_persistent 1.2.0
Using faraday-patron 1.0.0
Using faraday-rack 1.0.0
Using faraday-retry 1.0.3
Using ruby2_keywords 0.0.5
Using faraday 1.10.0
Using acme-client 2.0.11
Using concurrent-ruby 1.2.3
Using i18n 1.14.4
Using minitest 5.11.3
Using tzinfo 2.0.6
Using activesupport 7.0.8.1
Using builder 3.2.4
Using erubi 1.12.0
Using racc 1.6.2
Using nokogiri 1.16.0 (x86_64-linux)
Using rails-dom-testing 2.0.3
Using crass 1.0.6
Using loofah 2.22.0
Using rails-html-sanitizer 1.6.0
Using actionview 7.0.8.1
Using rack 2.2.8.1
Using rack-test 2.1.0
Using actionpack 7.0.8.1
Using nio4r 2.7.0
Using websocket-extensions 0.1.5
Using websocket-driver 0.7.6
Using actioncable 7.0.8.1
Using globalid 1.1.0
Using activejob 7.0.8.1
Using activemodel 7.0.8.1
Using activerecord 7.0.8.1
Using marcel 1.0.2
Using mini_mime 1.1.2
Using activestorage 7.0.8.1
Using date 3.3.3
Using timeout 0.3.2
Using net-protocol 0.1.3
Using net-imap 0.3.4
Using net-pop 0.1.2
Using net-smtp 0.3.3
Using mail 2.8.1
Using actionmailbox 7.0.8.1
Using actionmailer 7.0.8.1
Using actiontext 7.0.8.1
Using pg 1.5.6
Using activerecord-explain-analyze 0.1.0
Using activerecord-gitlab 0.2.0 from source at `gems/activerecord-gitlab`
Using acts-as-taggable-on 10.0.0
Using public_suffix 5.0.0
Using addressable 2.8.1
Using aes_key_wrap 1.1.0
Using akismet 3.0.0
Using http-accept 1.7.0
Using unf_ext 0.0.8.2
Using unf 0.1.4
Using domain_name 0.5.20190701
Using http-cookie 1.0.5
Using mime-types-data 3.2023.1003
Using mime-types 3.5.1
Using netrc 0.11.0
Using rest-client 2.1.0
Using aliyun-sdk 0.8.0
Using sexp_processor 4.17.1
Using ruby_parser 3.21.0
Using protocol 2.0.0
Using mize 0.4.1
Using sync 0.5.0
Using tins 1.31.1
Using amatch 0.4.1
Using android_key_attestation 0.3.0
Using base64 0.2.0
Using graphql 2.3.4
Using apollo_upload_server 2.1.6
Using jwt 2.5.0
Using app_store_connect 0.29.0
Using arr-pm 0.0.12
Using asciidoctor 2.0.18
Using asciidoctor-include-ext 0.4.0
Using asciidoctor-kroki 0.8.0
Using asciidoctor-plantuml 0.0.16
Using ast 2.4.2
Using atlassian-jwt 0.2.1
Using encryptor 3.0.0
Using attr_encrypted 3.2.4 from source at `vendor/gems/attr_encrypted`
Using attr_required 1.0.1
Using awesome_print 1.9.2
Using awrence 1.2.1
Using aws-eventstream 1.3.0
Using aws-partitions 1.877.0
Using aws-sigv4 1.8.0
Using jmespath 1.6.2
Using aws-sdk-core 3.197.0
Using aws-sdk-cloudformation 1.41.0
Using aws-sdk-kms 1.76.0
Using aws-sdk-s3 1.151.0
Using dumb_delegator 1.0.0
Using thread_safe 0.3.6
Using descendants_tracker 0.0.4
Using ice_nine 0.11.2
Using axiom-types 0.1.1
Using coercible 1.0.0
Using virtus 2.0.0
Using axe-core-api 4.8.0
Using axe-core-rspec 4.9.0
Using faraday_middleware 1.2.0
Using connection_pool 2.4.1
Using net-http-persistent 4.0.1
Using azure-storage-common 2.0.4
Using azure-storage-blob 2.0.3
Using babosa 2.0.0
Using base32 0.3.2
Using batch-loader 2.0.5
Using bcrypt 3.1.18
Using benchmark-ips 2.11.0
Using benchmark-malloc 0.2.0
Using memory_profiler 1.0.1
Using benchmark-memory 0.2.0
Using benchmark-perf 0.6.0
Using benchmark-trend 0.4.0
Using bigdecimal 3.1.7
Using bindata 2.4.11
Using debug_inspector 1.1.0
Using binding_of_caller 1.0.0
Using msgpack 1.5.4
Using bootsnap 1.18.3
Using browser 5.3.1
Using uniform_notifier 1.16.0
Using bullet 7.1.2
Using bundler 2.4.11
Using thor 1.3.1
Using bundler-audit 0.9.1
Using bundler-checksum 0.1.0 from source at `vendor/gems/bundler-checksum` and installing its executables
Using byebug 11.1.3
Using matrix 0.4.2
Using regexp_parser 2.6.0
Using xpath 3.2.0
Using capybara 3.40.0
Using launchy 2.5.0
Using capybara-screenshot 1.0.26
Using ssrf_filter 1.0.8
Using carrierwave 1.3.4
Using cbor 0.5.9.8
Using character_set 1.8.0
Using chef-utils 18.3.0
Using fuzzyurl 0.9.0
Using tomlrb 1.3.0
Using mixlib-config 3.0.27
Using mixlib-shellout 3.2.7
Using chef-config 18.3.0
Using chunky_png 1.4.0
Using circuitbox 2.0.0
Using citrus 3.0.2
Using claide 1.1.0
Using colored2 3.1.2
Using cork 0.3.0
Using nap 1.1.0
Using open4 1.3.4
Using claide-plugins 0.9.2
Using json 2.6.3
Using click_house-client 0.1.0 from source at `gems/click_house-client`
Using google-protobuf 3.25.3 (x86_64-linux)
Using googleapis-common-protos-types 1.5.0
Using grpc 1.63.0 (x86_64-linux)
Using googleapis-common-protos 1.4.0
Using multi_json 1.14.1
Using os 1.1.4
Using signet 0.18.0
Using googleauth 1.8.1
Using gapic-common 0.20.0
Using google-cloud-errors 1.3.0
Using google-cloud-profiler-v2 0.4.0
Using stackprof 0.2.25
Using cloud_profiler_agent 0.0.1.pre from source at `vendor/gems/cloud_profiler_agent`
Using coderay 1.1.3
Using commonmarker 0.23.10
Using openssl 3.1.0
Using openssl-signature_algorithm 1.3.0
Using cose 1.3.0
Using i18n_data 0.13.1
Using sixarm_ruby_unaccent 1.2.0
Using countries 4.0.1
Using safe_yaml 1.0.4
Using crack 0.4.3
Using creole 0.5.0
Using rchardet 1.8.0
Using git 1.18.0
Using crystalball 0.7.0
Using css_parser 1.14.0
Using method_source 1.0.0
Using zeitwerk 2.6.7
Using railties 7.0.8.1
Using cssbundling-rails 1.4.0
Using csv_builder 0.1.0 from source at `gems/csv_builder`
Using cvss-suite 3.0.1
Using faraday-http-cache 2.5.0
Using kramdown 2.3.2
Using kramdown-parser-gfm 1.1.0
Using no_proxy_fix 0.1.2
Using sawyer 0.9.2
Using octokit 8.1.0
Using unicode-display_width 2.4.2
Using terminal-table 3.0.2
Using danger 9.4.2
Using multi_xml 0.6.0
Using httparty 0.21.0
Using gitlab 4.19.0
Using danger-gitlab 8.0.0
Using dartsass 1.49.8
Using database_cleaner-core 2.0.1
Using database_cleaner-active_record 2.1.0
Using dead_end 3.1.1
Using deb_version 1.0.2
Using html-pipeline 2.14.3
Using deckar01-task_list 2.3.4
Using declarative 0.0.20
Using declarative_policy 1.1.0
Using deprecation_toolkit 1.5.1
Using ffi 1.15.5
Using get_process_mem 0.2.7
Using heapy 0.2.0
Using mini_histogram 0.3.1
Using ruby-statistics 3.0.0
Using derailed_benchmarks 2.1.2
Using devfile 0.0.26.pre.alpha1 (x86_64-linux)
Using device_detector 1.0.0
Using orm_adapter 0.5.0
Using responders 3.0.1
Using warden 1.2.9
Using devise 4.9.3
Using rotp 6.3.0
Using devise-two-factor 4.1.1
Using devise-pbkdf2-encryptable 0.0.0 from source at `vendor/gems/devise-pbkdf2-encryptable`
Using diff-lcs 1.5.0
Using diff_match_patch 0.1.0 from source at `vendor/gems/diff_match_patch`
Using diffy 3.4.2
Using digest-crc 0.6.5
Using discordrb-webhooks 3.5.0
Using docile 1.4.0
Using doorkeeper 5.6.6
Using doorkeeper-openid_connect 1.8.7
Using dotenv 2.7.6
Using dry-cli 1.0.0
Using dry-core 1.0.1
Using dry-inflector 1.0.0
Using dry-logic 1.5.0
Using dry-types 1.7.1
Using duo_api 1.3.0
Using ecma-re-validator 0.3.0
Using ed25519 1.3.0
Using elasticsearch-api 7.13.3
Using elasticsearch-transport 7.13.3
Using elasticsearch 7.13.3
Using hashie 5.0.0
Using elasticsearch-model 7.2.0
Using elasticsearch-rails 7.2.1
Using email_reply_trimmer 0.1.6
Using htmlentities 4.3.4
Using email_spec 2.2.0
Using ethon 0.16.0
Using typhoeus 1.4.0
Using error_tracking_open_api 1.0.0 from source at `gems/error_tracking_open_api`
Using escape_utils 1.3.0
Using et-orbi 1.2.11
Using excon 0.99.0
Using execjs 2.8.1
Using parslet 1.8.2
Using expgen 0.1.1
Using expression_parser 0.9.0
Using extended-markdown-filter 0.7.0
Using factory_bot 6.4.5
Using factory_bot_rails 6.4.3
Using faraday_middleware-aws-sigv4 0.3.0
Using fast_blank 1.0.1
Using fast_gettext 2.3.0
Using ffaker 2.23.0
Using ffi-compiler 1.0.1
Using libyajl2 2.1.0
Using ffi-yajl 2.6.0
Using find_a_port 1.0.1
Using flipper 0.26.2
Using flipper-active_record 0.26.2
Using flipper-active_support_cache_store 0.26.2
Using formatador 0.2.5
Using fog-core 2.1.0
Using fog-json 1.2.0
Using ipaddress 0.8.3
Using xml-simple 1.1.9
Using fog-aliyun 0.4.0
Using fog-xml 0.1.3
Using fog-aws 3.18.0
Using httpclient 2.8.3
Using trailblazer-option 0.1.2
Using uber 0.1.0
Using representable 3.2.0
Using retriable 3.1.2
Using webrick 1.8.1
Using google-apis-core 0.11.2
Using google-apis-compute_v1 0.57.0
Using google-apis-dns_v1 0.36.0
Using google-apis-iamcredentials_v1 0.15.0
Using google-apis-monitoring_v3 0.54.0
Using google-apis-pubsub_v1 0.45.0
Using google-apis-sqladmin_v1beta4 0.41.0
Using google-apis-storage_v1 0.29.0
Using google-cloud-env 1.6.0
Using fog-google 1.24.1
Using fog-local 0.8.0
Using forwardable 1.3.3
Using raabro 1.4.0
Using fugit 1.8.1
Using rspec-support 3.12.0
Using rspec-core 3.12.2
Using ruby-progressbar 1.11.0
Using fuubar 2.2.0
Using gemoji 3.0.1
Using locale 2.1.3
Using singleton 0.1.1
Using prime 0.1.2
Using text 1.3.1
Using gettext 3.4.9
Using gettext_i18n_rails 1.12.0
Using gitaly 17.0.1
Using rainbow 3.1.1
Using gitlab-backup-cli 0.0.1 from source at `gems/gitlab-backup-cli`
Using numerizer 0.2.0
Using gitlab-chronic 0.10.5
Using gitlab-dangerfiles 4.7.0
Using request_store 1.5.1
Using gitlab-experiment 0.9.1
Using gitlab-fog-azure-rm 1.9.1
Using rb_sys 0.9.94
Using gitlab-glfm-markdown 0.0.17 (x86_64-linux)
Using language_server-protocol 3.17.0.3
Using parallel 1.24.0
Using parser 3.3.0.5
Using rubocop-ast 1.31.2
Using rubocop 1.62.1
Using gitlab-housekeeper 0.1.0 from source at `gems/gitlab-housekeeper` and installing its executables
Using uri 0.13.0
Using net-http 0.4.1
Using gitlab-http 0.1.0 from source at `gems/gitlab-http`
Using opentracing 0.5.0
Using thrift 0.16.0
Using jaeger-client 1.1.0
Using pg_query 5.1.0
Using redis-client 0.22.2
Using redis 5.2.0
Using gitlab-labkit 0.36.0
Using gitlab-license 2.5.0
Using version_gem 1.1.0
Using snaky_hash 2.0.0
Using oauth2 2.0.9
Using redis-namespace 1.11.0
Using gitlab-mail_room 0.0.25
Using gitlab-markup 1.9.0
Using gitlab-net-dns 0.9.2
Using rspec-expectations 3.12.3
Using rspec-mocks 3.12.6
Using rspec 3.12.0
Using gitlab-rspec 0.1.0 from source at `gems/gitlab-rspec`
Using gitlab-rspec_flaky 0.1.0 from source at `gems/gitlab-rspec_flaky`
Using gitlab-safe_request_store 0.1.0 from source at `gems/gitlab-safe_request_store`
Using gitlab-schema-validation 0.1.0 from source at `gems/gitlab-schema-validation`
Using snowplow-tracker 0.8.0
Using gitlab-sdk 0.3.0
Using re2 2.7.0 (x86_64-linux)
Using toml-rb 2.2.0
Using gitlab-secret_detection 0.1.0 from source at `gems/gitlab-secret_detection`
Using sidekiq 7.1.6 from source at `vendor/gems/sidekiq-7.1.6` and installing its executables
Using gitlab-sidekiq-fetcher 0.11.0 from source at `vendor/gems/sidekiq-reliable-fetch`
Using rubocop-factory_bot 2.25.1
Using rubocop-graphql 1.5.1
Using rubocop-performance 1.20.2
Using rubocop-rails 2.24.1
Using rubocop-capybara 2.20.0
Using rubocop-rspec 2.27.1
Using gitlab-styles 12.0.1
Using gitlab-utils 0.1.0 from source at `gems/gitlab-utils`
Using gitlab_chronic_duration 0.12.0
Using net-ldap 0.17.1
Using rack-protection 2.2.2
Using omniauth 2.1.0
Using pyu-ruby-sasl 0.0.3.3
Using rubyntlm 0.6.3
Using gitlab_omniauth-ldap 2.2.0
Using http-form_data 2.3.0
Using llhttp-ffi 0.4.0
Using http 5.1.1
Using influxdb-client 3.1.0
Using unparser 0.6.7
Using proc_to_ast 0.1.0
Using rspec-parameterized-core 1.0.0
Using rspec-parameterized-table_syntax 1.0.0
Using rspec-parameterized 1.0.2
Using table_print 1.5.7
Using gitlab_quality-test_tooling 1.28.0
Using gon 6.4.0
Using google-apis-androidpublisher_v3 0.34.0
Using google-apis-cloudbilling_v1 0.21.0
Using google-apis-cloudresourcemanager_v1 0.31.0
Using google-apis-container_v1 0.43.0
Using google-apis-container_v1beta1 0.43.0
Using google-apis-iam_v1 0.36.0
Using google-apis-serviceusage_v1 0.28.0
Using google-cloud-location 0.6.0
Using grpc-google-iam-v1 1.5.0
Using google-cloud-artifact_registry-v1 0.11.0
Using google-cloud-common 1.1.0
Using google-cloud-compute-v1 2.6.0
Using google-cloud-core 1.6.0
Using google-cloud-storage 1.45.0
Using mini_portile2 2.8.5
Using gpgme 2.0.23
Using mustermann 3.0.0
Using mustermann-grape 1.0.2
Using rack-accept 0.4.5
Using grape 2.0.0
Using grape-entity 1.0.1
Using grape-path-helpers 2.0.1
Using grape-swagger 2.1.0
Using grape-swagger-entity 0.5.1
Using grape_logging 1.8.4
Using sprockets 3.7.2
Using sprockets-rails 3.4.2
Using graphiql-rails 1.8.0
Using graphql-client 0.19.0
Using graphlient 0.6.0
Using graphlyte 1.0.0
Using graphql-docs 4.0.0
Using gssapi 1.3.1
Using rb-fsevent 0.11.2
Using rb-inotify 0.10.1
Using listen 3.7.1
Using lumberjack 1.2.7
Using nenv 0.3.0
Using shellany 0.0.1
Using notiffany 0.1.3
Using pry 0.14.2
Using guard 2.16.2
Using guard-compat 1.2.1
Using guard-rspec 4.7.3
Using temple 0.8.2
Using tilt 2.0.11
Using haml 5.2.2
Using sysexits 1.2.0
Using haml_lint 0.58.0
Using hamlit 2.15.0
Using hana 1.3.7
Using hashdiff 1.1.0
Using health_check 3.1.0
Using html2text 0.2.0
Using ice_cube 0.16.4
Using icalendar 2.8.0
Using imagen 0.1.8
Using rails 7.0.8.1
Using invisible_captcha 2.1.0
Using ipaddr 1.2.5
Using oj 3.13.23
Using ipynbdiff 0.4.8 from source at `gems/ipynbdiff`
Using oauth 0.5.6
Using jira-ruby 2.3.0
Using regexp_property_values 1.0.0
Using js_regex 3.8.0
Using json-jwt 1.15.3
Using uri_template 0.7.0
Using json_schemer 0.2.18
Using jsonb_accessor 1.3.10
Using jsonpath 1.1.2
Using kaminari-core 1.2.2
Using kaminari-actionview 1.2.2
Using kaminari-activerecord 1.2.2
Using kaminari 1.2.2
Using kas-grpc 0.5.0
Using knapsack 1.22.0
Using recursive-open-struct 1.1.3
Using kubeclient 4.11.0
Using rubyzip 2.3.2
Using with_env 1.1.0
Using license_finder 7.1.0
Using reverse_markdown 1.4.0
Using rugged 1.6.3
Using licensee 9.16.1
Using lockbox 1.3.0
Using lograge 0.11.2
Using lru_redux 1.1.0
Using mail-smtp_pool 0.1.0 from source at `vendor/gems/mail-smtp_pool`
Using marginalia 1.11.1
Using microsoft_graph_mailer 0.1.0 from source at `vendor/gems/microsoft_graph_mailer`
Using mini_magick 4.12.0
Using mixlib-cli 2.1.8
Using mixlib-log 3.0.9
Using murmurhash3 0.1.7
Using neighbor 0.3.2
Using net-ntp 2.1.3
Using net-ssh 7.2.0
Using net-scp 4.0.0
Using plist 3.7.0
Using train-core 3.10.8
Using wmi-lite 1.0.7
Using ohai 18.1.3
Using oj-introspect 0.7.2
Using omniauth-oauth2 1.8.0
Using omniauth-alicloud 3.0.0
Using omniauth-atlassian-oauth2 0.2.0
Using omniauth-auth0 3.1.0
Using omniauth-azure-activedirectory-v2 2.0.0
Using omniauth-github 2.0.1
Using omniauth-gitlab 4.0.0 from source at `vendor/gems/omniauth-gitlab`
Using omniauth-google-oauth2 1.1.1
Using omniauth-oauth2-generic 0.2.8
Using omniauth-salesforce 1.0.5 from source at `vendor/gems/omniauth-salesforce`
Using ruby-saml 1.15.0
Using omniauth-saml 2.1.0
Using omniauth-shibboleth-redux 2.0.0
Using omniauth_crowd 2.4.0 from source at `vendor/gems/omniauth_crowd`
Using rack-oauth2 1.21.3
Using swd 1.3.0
Using validate_email 0.1.6
Using validate_url 1.0.15
Using webfinger 1.2.0
Using openid_connect 1.3.0
Using omniauth_openid_connect 0.6.1
Using opentelemetry-api 1.2.5
Using opentelemetry-common 0.21.0
Using opentelemetry-registry 0.3.0
Using opentelemetry-semantic_conventions 1.10.0
Using opentelemetry-sdk 1.4.1
Using opentelemetry-exporter-otlp 0.26.3
Using opentelemetry-helpers-sql-obfuscation 0.1.0
Using opentelemetry-instrumentation-base 0.22.3
Using opentelemetry-instrumentation-rack 0.24.4
Using opentelemetry-instrumentation-action_pack 0.9.0
Using opentelemetry-instrumentation-active_support 0.5.1
Using opentelemetry-instrumentation-action_view 0.7.0
Using opentelemetry-instrumentation-active_job 0.7.1
Using opentelemetry-instrumentation-active_record 0.7.2
Using opentelemetry-instrumentation-aws_sdk 0.5.2
Using opentelemetry-instrumentation-concurrent_ruby 0.21.3
Using opentelemetry-instrumentation-ethon 0.21.5
Using opentelemetry-instrumentation-excon 0.22.2
Using opentelemetry-instrumentation-faraday 0.24.3
Using opentelemetry-instrumentation-grape 0.1.8
Using opentelemetry-instrumentation-graphql 0.28.2
Using opentelemetry-instrumentation-http 0.23.3
Using opentelemetry-instrumentation-http_client 0.22.5
Using opentelemetry-instrumentation-net_http 0.22.5
Using opentelemetry-instrumentation-pg 0.27.3
Using opentelemetry-instrumentation-rails 0.30.1
Using opentelemetry-instrumentation-rake 0.2.2
Using opentelemetry-instrumentation-redis 0.25.5
Using opentelemetry-instrumentation-sidekiq 0.25.4
Using optimist 3.0.1
Using rubypants 0.2.0
Using org-ruby 0.9.12
Using pact-support 1.20.0
Using pact-mock_service 3.11.2
Using term-ansicolor 1.7.1
Using pact 1.64.0
Using tty-color 0.6.0
Using pastel 0.8.0
Using peek 1.1.0
Using png_quantizator 0.2.1
Using premailer 1.16.0
Using premailer-rails 1.10.3
Using prometheus-client-mmap 1.1.1 (x86_64-linux)
Using pry-byebug 3.10.1
Using pry-rails 0.3.9
Using rouge 4.2.0
Using strings-ansi 0.2.0
Using unicode_utils 1.4.0
Using strings 0.2.1
Using tty-screen 0.8.1
Using tty-markdown 0.7.2
Using tty-cursor 0.7.1
Using wisper 2.0.1
Using tty-reader 0.9.0
Using tty-prompt 0.23.1
Using pry-shell 0.6.4
Using puma 6.4.0
Using rack-attack 6.7.0
Using rack-cors 2.0.1
Using rack-proxy 0.7.7
Using rack-session 1.0.2
Using rack-timeout 0.6.3
Using rails-controller-testing 1.0.5
Using rails-i18n 7.0.9
Using rbtrace 0.5.1
Using recaptcha 5.12.3
Using redis-store 1.10.0
Using redis-rack 3.0.0
Using redis-actionpack 5.4.0
Using redis-cluster-client 0.8.2
Using redis-clustering 5.2.0
Using rinku 2.0.0
Using rqrcode_core 1.2.0
Using rqrcode 2.2.0
Using rspec-benchmark 0.6.0
Using rspec-rails 6.1.1
Using rspec-retry 0.6.2
Using rspec_junit_formatter 0.6.0
Using rspec_profiling 0.0.9
Using ruby-fogbugz 0.3.0
Using ruby-magic 0.6.0
Using ruby-openai 3.7.0
Using safety_net_attestation 0.4.0
Using sanitize 6.0.2
Using sd_notify 0.1.1
Using seed-fu 2.3.7
Using websocket 1.2.10
Using selenium-webdriver 4.21.1
Using tty-command 0.10.1
Using semver_dialects 3.0.0
Using sentry-ruby 5.17.3
Using sentry-rails 5.17.3
Using sentry-sidekiq 5.17.3
Using shoulda-matchers 5.1.0
Using sidekiq-cron 1.12.0
Using sigdump 0.2.4
Using simple_po_parser 1.1.6
Using simplecov-html 0.12.3
Using simplecov_json_formatter 0.1.4
Using simplecov 0.22.0
Using simplecov-cobertura 2.1.0
Using simplecov-lcov 0.8.0
Using slack-messenger 2.3.4
Using spamcheck 1.3.0
Using spring 4.1.0
Using spring-commands-rspec 1.0.4
Using ssh_data 1.3.0
Using state_machines 0.5.0
Using state_machines-activemodel 0.8.0
Using state_machines-activerecord 0.8.0
Using static_holmes 0.7.7
Using sys-filesystem 1.4.3
Using tanuki_emoji 0.9.0
Using telesign 2.2.4
Using telesignenterprise 2.2.2
Using terser 1.0.2
Using test-prof 1.3.3
Using test_file_finder 0.3.1
Using timfel-krb5-auth 0.8.3
Using tpm-key_attestation 0.12.0
Using truncato 0.7.12
Using undercover 0.4.6
Using unleash 3.2.2
Using valid_email 0.1.3
Using validates_hostname 1.0.13
Using version_sorter 2.3.0
Using view_component 3.12.1
Using vite_ruby 3.5.0
Using vite_rails 3.0.17
Using vmstat 2.3.0
Using warning 1.3.0
Using webauthn 3.0.0
Using webmock 3.23.1
Using wikicloth 0.8.1
Using yajl-ruby 1.4.3
Bundle complete! 350 Gemfile dependencies, 669 gems now installed.
Gems in the groups 'production' and 'development' were not installed.
Bundled gems are installed into `./vendor`
2 installed gems you directly depend on are looking for funding.
  Run `bundle fund` for details
==> 'bundle install --jobs=$(nproc) --retry=3 ' succeeded in 1 seconds.
$ bundle pristine pg
Patching bundler with bundler-checksum...
Installing pg 1.5.6 with native extensions
==> 'bundle pristine pg' succeeded in 17 seconds.
section_end:1717996434:bundle-install

Using decomposed database config (config/database.yml.decomposed-postgresql)
Geo DB won't be set up.
Embedding DB won't be set up.
section_start:1717996434:setup-db[collapsed=true]
Setting up DBs
CREATE ROLE
GRANT
$ bundle exec rake db:drop db:create db:schema:load db:migrate gitlab:db:lock_writes
Dropped database 'gitlabhq_test'
Dropped database 'gitlabhq_test_ci'
Created database 'gitlabhq_test'
Created database 'gitlabhq_test_ci'
==> 'bundle exec rake db:drop db:create db:schema:load db:migrate gitlab:db:lock_writes' succeeded in 81 seconds.
SELECT pg_catalog.set_config('search_path', '', false);
CREATE DATABASE praefect_test ENCODING 'UTF8';
section_end:1717996515:setup-db

$ source ./scripts/rspec_helpers.sh
$ run_timed_command "gem install knapsack --no-document"
$ gem install knapsack --no-document
Successfully installed knapsack-4.0.0
1 gem installed
==> 'gem install knapsack --no-document' succeeded in 1 seconds.
$ section_start "gitaly-test-spawn" "Spawning Gitaly"; scripts/gitaly-test-spawn; section_end "gitaly-test-spawn"
section_start:1717996516:gitaly-test-spawn[collapsed=true]
Spawning Gitaly
Trying to connect to gitaly: ...... OK
Trying to connect to gitaly2: ........ OK
Starting Praefect with in-memory election strategyTrying to connect to praefect: ...... OK
section_end:1717996521:gitaly-test-spawn

$ export RSPEC_SKIPPED_TESTS_REPORT_PATH="rspec/skipped_tests-${CI_JOB_ID}.txt"
$ export RSPEC_RETRIED_TESTS_REPORT_PATH="rspec/retried_tests-${CI_JOB_ID}.txt"
$ tooling/bin/create_job_metrics_file || true
[job-metrics] Creating the job metrics file for the CI/CD job.
$ rspec_section rspec_parallelized_job "--fail-fast=${RSPEC_FAIL_FAST_THRESHOLD} --tag ~quarantine --tag ~level:background_migration --tag ~click_house --tag ~real_ai_request"
section_start:1717996524:rspec[collapsed=false]
RSpec
[05:15:24] Starting rspec_parallelized_job
RETRY_FAILED_TESTS_IN_NEW_PROCESS: true
KNAPSACK_GENERATE_REPORT: true
FLAKY_RSPEC_GENERATE_REPORT: true
KNAPSACK_TEST_FILE_PATTERN: spec/{commands,controllers,mailers,requests}{,/**/}*_spec.rb
KNAPSACK_LOG_LEVEL: debug
KNAPSACK_REPORT_PATH: knapsack/rspec_integration_pg14_6_16_278964_report.json
FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json
FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_integration_pg14_6_16_278964_report.json
NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_integration_pg14_6_16_278964_report.json
RSPEC_SKIPPED_TESTS_REPORT_PATH: rspec/skipped_tests-7055069098.txt
CRYSTALBALL: 
RSPEC_TESTS_MAPPING_ENABLED: 
RSPEC_TESTS_FILTER_FILE: 
Shell set options (set -o) enabled:
braceexpand    	on
hashall        	on
interactive-comments	on
pipefail       	on
Parsing expected rspec suite duration...
RSpec suite is expected to take 28 minutes 2.4 seconds.
Expected duration for tests:

{
  "spec/mailers/notify_spec.rb": 536.752946305571,
  "spec/requests/api/users_spec.rb": 197.8300350454967,
  "spec/controllers/projects_controller_spec.rb": 130.94657652532553,
  "spec/requests/api/labels_spec.rb": 105.33264064372324,
  "spec/requests/api/ci/variables_spec.rb": 77.91559975767214,
  "spec/requests/api/graphql/mutations/work_items/update_spec.rb": 56.45767346497304,
  "spec/requests/api/usage_data_non_sql_metrics_spec.rb": 53.097147130119396,
  "spec/requests/api/graphql/mutations/work_items/create_spec.rb": 40.089775678323235,
  "spec/requests/api/ci/runner/jobs_artifacts_spec.rb": 38.11800425329835,
  "spec/requests/api/todos_spec.rb": 34.18759219727244,
  "spec/requests/api/graphql/group_query_spec.rb": 29.866198276088305,
  "spec/requests/groups_controller_spec.rb": 26.88294287244685,
  "spec/controllers/ldap/omniauth_callbacks_controller_spec.rb": 26.49163306921723,
  "spec/requests/api/graphql/boards/board_list_issues_query_spec.rb": 22.623319589624884,
  "spec/requests/api/ml/mlflow/runs_spec.rb": 21.070386968036164,
  "spec/controllers/projects/artifacts_controller_spec.rb": 19.223086313277797,
  "spec/requests/api/graphql/mutations/namespace/package_settings/update_spec.rb": 17.27469403558636,
  "spec/controllers/projects/merge_requests/content_controller_spec.rb": 16.46587084500721,
  "spec/commands/metrics_server/metrics_server_spec.rb": 14.754039828619701,
  "spec/requests/projects/issue_links_controller_spec.rb": 14.254981293814499,
  "spec/requests/api/clusters/agents_spec.rb": 12.858501839002109,
  "spec/controllers/projects/badges_controller_spec.rb": 12.337297813786959,
  "spec/requests/import/gitlab_groups_controller_spec.rb": 11.318604026133224,
  "spec/mailers/emails/pipelines_spec.rb": 10.564153698959098,
  "spec/requests/api/graphql/boards/board_lists_query_spec.rb": 9.771172592604163,
  "spec/requests/projects/service_desk/custom_email_controller_spec.rb": 8.91103023639899,
  "spec/requests/api/graphql/mutations/issues/set_crm_contacts_spec.rb": 8.471230189344492,
  "spec/requests/api/admin/batched_background_migrations_spec.rb": 8.01682075490813,
  "spec/requests/api/ci/runners_reset_registration_token_spec.rb": 7.225096985040679,
  "spec/requests/api/admin/broadcast_messages_spec.rb": 6.985709344550317,
  "spec/requests/api/graphql/mutations/issues/set_due_date_spec.rb": 6.238657564125966,
  "spec/requests/api/import_bitbucket_server_spec.rb": 6.128134903069881,
  "spec/requests/projects/merge_requests/context_commit_diffs_spec.rb": 5.840846837049366,
  "spec/requests/projects/settings/packages_and_registries_controller_spec.rb": 5.287699746935259,
  "spec/requests/api/graphql/jobs_query_spec.rb": 5.068401108823377,
  "spec/requests/api/graphql/project/work_item_types_spec.rb": 4.9961244172195585,
  "spec/requests/api/graphql/mutations/ci/job/retry_spec.rb": 4.558306647860749,
  "spec/requests/admin/projects_controller_spec.rb": 4.438186413315831,
  "spec/requests/api/graphql/mutations/labels/create_spec.rb": 4.114987078988777,
  "spec/controllers/admin/topics_controller_spec.rb": 3.934307730889058,
  "spec/requests/api/graphql/subscriptions/notes/updated_spec.rb": 3.618113069094172,
  "spec/requests/api/graphql/mutations/discussions/toggle_resolve_spec.rb": 3.5367192534539815,
  "spec/requests/api/graphql/mutations/achievements/award_spec.rb": 3.4411562365747694,
  "spec/controllers/health_check_controller_spec.rb": 3.1830524159746494,
  "spec/requests/projects/network_controller_spec.rb": 3.158195805395436,
  "spec/requests/users/pins_spec.rb": 2.9011838293920125,
  "spec/requests/admin/slacks_controller_spec.rb": 2.840226687797948,
  "spec/requests/api/graphql/project/branch_protections/merge_access_levels_spec.rb": 2.732641779765925,
  "spec/controllers/projects/work_items_controller_spec.rb": 2.5023976539218795,
  "spec/requests/api/graphql/mutations/environments/update_spec.rb": 2.4547952993997124,
  "spec/requests/admin/impersonation_tokens_controller_spec.rb": 2.4112657395719186,
  "spec/requests/groups/group_members_controller_spec.rb": 2.189719180463416,
  "spec/controllers/projects/web_ide_schemas_controller_spec.rb": 2.0670711218642284,
  "spec/requests/api/graphql/mutations/incident_management/timeline_event/create_spec.rb": 1.9869688460136914,
  "spec/requests/api/integrations/slack/events_spec.rb": 1.8301653658973192,
  "spec/mailers/emails/imports_spec.rb": 1.7991047658051733,
  "spec/controllers/profiles/emails_controller_spec.rb": 1.6294659764175758,
  "spec/requests/api/graphql/mutations/ci/job/unschedule_spec.rb": 1.5439936909540957,
  "spec/controllers/admin/cohorts_controller_spec.rb": 1.5067897924660671,
  "spec/requests/api/graphql/mutations/alert_management/alerts/todo/create_spec.rb": 1.3927136878109059,
  "spec/requests/api/graphql/mutations/admin/sidekiq_queues/delete_jobs_spec.rb": 1.2655535611911937,
  "spec/requests/whats_new_controller_spec.rb": 1.1815210008328343,
  "spec/controllers/oauth/authorized_applications_controller_spec.rb": 1.1142399034009618,
  "spec/controllers/users/callouts_controller_spec.rb": 0.9251883182878627,
  "spec/requests/profiles/comment_templates_controller_spec.rb": 0.8973065700711548,
  "spec/controllers/concerns/content_security_policy_patch_spec.rb": 0.6893383115738067,
  "spec/controllers/profiles/avatars_controller_spec.rb": 0.5288702264976359,
  "spec/controllers/jira_connect/app_descriptor_controller_spec.rb": 0.3726638553822814
}

Running command: bundle exec rspec -Ispec -rspec_helper --color --failure-exit-code 1 --error-exit-code 2 --format documentation --format Support::Formatters::JsonFormatter --out rspec/rspec-7055069098.json --format RspecJunitFormatter --out rspec/rspec-7055069098.xml --fail-fast=20 --tag ~quarantine --tag ~level:background_migration --tag ~click_house --tag ~real_ai_request -- spec/mailers/notify_spec.rb spec/requests/api/users_spec.rb spec/controllers/projects_controller_spec.rb spec/requests/api/labels_spec.rb spec/requests/api/ci/variables_spec.rb spec/requests/api/graphql/mutations/work_items/update_spec.rb spec/requests/api/usage_data_non_sql_metrics_spec.rb spec/requests/api/graphql/mutations/work_items/create_spec.rb spec/requests/api/ci/runner/jobs_artifacts_spec.rb spec/requests/api/todos_spec.rb spec/requests/api/graphql/group_query_spec.rb spec/requests/groups_controller_spec.rb spec/controllers/ldap/omniauth_callbacks_controller_spec.rb spec/requests/api/graphql/boards/board_list_issues_query_spec.rb spec/requests/api/ml/mlflow/runs_spec.rb spec/controllers/projects/artifacts_controller_spec.rb spec/requests/api/graphql/mutations/namespace/package_settings/update_spec.rb spec/controllers/projects/merge_requests/content_controller_spec.rb spec/commands/metrics_server/metrics_server_spec.rb spec/requests/projects/issue_links_controller_spec.rb spec/requests/api/clusters/agents_spec.rb spec/controllers/projects/badges_controller_spec.rb spec/requests/import/gitlab_groups_controller_spec.rb spec/mailers/emails/pipelines_spec.rb spec/requests/api/graphql/boards/board_lists_query_spec.rb spec/requests/projects/service_desk/custom_email_controller_spec.rb spec/requests/api/graphql/mutations/issues/set_crm_contacts_spec.rb spec/requests/api/admin/batched_background_migrations_spec.rb spec/requests/api/ci/runners_reset_registration_token_spec.rb spec/requests/api/admin/broadcast_messages_spec.rb spec/requests/api/graphql/mutations/issues/set_due_date_spec.rb spec/requests/api/import_bitbucket_server_spec.rb spec/requests/projects/merge_requests/context_commit_diffs_spec.rb spec/requests/projects/settings/packages_and_registries_controller_spec.rb spec/requests/api/graphql/jobs_query_spec.rb spec/requests/api/graphql/project/work_item_types_spec.rb spec/requests/api/graphql/mutations/ci/job/retry_spec.rb spec/requests/admin/projects_controller_spec.rb spec/requests/api/graphql/mutations/labels/create_spec.rb spec/controllers/admin/topics_controller_spec.rb spec/requests/api/graphql/subscriptions/notes/updated_spec.rb spec/requests/api/graphql/mutations/discussions/toggle_resolve_spec.rb spec/requests/api/graphql/mutations/achievements/award_spec.rb spec/controllers/health_check_controller_spec.rb spec/requests/projects/network_controller_spec.rb spec/requests/users/pins_spec.rb spec/requests/admin/slacks_controller_spec.rb spec/requests/api/graphql/project/branch_protections/merge_access_levels_spec.rb spec/controllers/projects/work_items_controller_spec.rb spec/requests/api/graphql/mutations/environments/update_spec.rb spec/requests/admin/impersonation_tokens_controller_spec.rb spec/requests/groups/group_members_controller_spec.rb spec/controllers/projects/web_ide_schemas_controller_spec.rb spec/requests/api/graphql/mutations/incident_management/timeline_event/create_spec.rb spec/requests/api/integrations/slack/events_spec.rb spec/mailers/emails/imports_spec.rb spec/controllers/profiles/emails_controller_spec.rb spec/requests/api/graphql/mutations/ci/job/unschedule_spec.rb spec/controllers/admin/cohorts_controller_spec.rb spec/requests/api/graphql/mutations/alert_management/alerts/todo/create_spec.rb spec/requests/api/graphql/mutations/admin/sidekiq_queues/delete_jobs_spec.rb spec/requests/whats_new_controller_spec.rb spec/controllers/oauth/authorized_applications_controller_spec.rb spec/controllers/users/callouts_controller_spec.rb spec/requests/profiles/comment_templates_controller_spec.rb spec/controllers/concerns/content_security_policy_patch_spec.rb spec/controllers/profiles/avatars_controller_spec.rb spec/controllers/jira_connect/app_descriptor_controller_spec.rbKnapsack report generator started!
warning: parser/current is loading parser/ruby31, which recognizes 3.1.4-compliant syntax, but you are running 3.1.5.
Please see https://github.com/whitequark/parser#compatibility-with-ruby-mri.
Run options: exclude {:quarantine=>true, :level=>"background_migration", :click_house=>true, :real_ai_request=>true}

# [RSpecRunTime] Starting RSpec timer...
[TEST PROF INFO] EventProf enabled (sql.active_record)
unknown OID 2249: failed to recognize type of 'pg_stat_file'. It will be treated as String.
unknown OID 2249: failed to recognize type of 'pg_stat_file'. It will be treated as String.

Test environment set up in 3.220152455 seconds
# [RSpecRunTime] Starting example group spec/mailers/notify_spec.rb. Expected to take 8 minutes 56.75 seconds.

Notify
  with HTML-encoded entities
    retains 7bit encoding
  for a project
    for issues
      that are new
        has the correct subject and body
        contains the description
        contains a link to issue author
        contains a link to the issue
        behaves like an assignee email
          is sent to the assignee as the author
          behaves like an email sent to a user
            is sent to user's global notification email address
            with group notification email
              is sent to user's group notification email
# [RSpecRunTime] RSpec elapsed time: 17.91 seconds. Current RSS: ~1269M. Threads: 4. load average: 1.16 1.43 1.38 1/284 530
.

        behaves like an email starting a new thread with reply-by-email enabled
          has X-GitLab-Project headers
          has X-GitLab-*-ID header
          has X-GitLab-*-IID header if model has iid defined
          has X-GitLab-*-State header if model has state defined
          has the characteristics of a threaded email
          includes "Reply to this email directly or <View it on GitLab>"
          when reply-by-email is enabled with incoming address with %{key}
            has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 22.3 seconds. Current RSS: ~1301M. Threads: 4. load average: 1.15 1.42 1.38 1/284 531
.

          when reply-by-email is enabled with incoming address without %{key}
            has the characteristics of a threaded email
            has a Reply-To header
        behaves like it should show Gmail Actions View Issue link
          is expected to have body including "View Issue"
          behaves like it should have Gmail Actions links
            is expected to have body including "ViewAction"
        behaves like an unsubscribeable thread
          has a List-Unsubscribe header in the correct format, and a body link
          behaves like an unsubscribeable thread with incoming address without %{key}
            has a List-Unsubscribe header in the correct format, and a body link
        behaves like appearance header and footer enabled
          contains header and footer
        behaves like appearance header and footer not enabled
          does not contain header and footer
        when issue is confidential
          has a confidential header set to true
        when sent with a reason
          includes the reason in a header
          behaves like appearance header and footer enabled
            contains header and footer
          behaves like appearance header and footer not enabled
            does not contain header and footer
      that are reassigned
        is sent as the author
        has the correct subject and body
        behaves like a multiple recipients email
          is sent to the given recipient
# [RSpecRunTime] RSpec elapsed time: 28.62 seconds. Current RSS: ~1407M. Threads: 4. load average: 1.14 1.41 1.38 1/279 532
.

        behaves like an answer to an existing thread with reply-by-email enabled
          has X-GitLab-Project headers
          has X-GitLab-*-ID header
          has X-GitLab-*-IID header if model has iid defined
          has X-GitLab-*-State header if model has state defined
          has X-GitLab-Project headers
          has X-GitLab-*-ID header
          has X-GitLab-*-IID header if model has iid defined
          has X-GitLab-*-State header if model has state defined
          has the characteristics of a threaded reply
          when reply-by-email is enabled with incoming address with %{key}
            has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 33.44 seconds. Current RSS: ~1434M. Threads: 4. load average: 1.12 1.40 1.37 1/280 534
.

          when reply-by-email is enabled with incoming address without %{key}
            has X-GitLab-Project headers
            has X-GitLab-*-ID header
            has X-GitLab-*-IID header if model has iid defined
            has X-GitLab-*-State header if model has state defined
            has the characteristics of a threaded reply
            has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 36.46 seconds. Current RSS: ~1442M. Threads: 4. load average: 1.11 1.40 1.37 1/280 535
.

        behaves like it should show Gmail Actions View Issue link
          is expected to have body including "View Issue"
          behaves like it should have Gmail Actions links
            is expected to have body including "ViewAction"
# [RSpecRunTime] RSpec elapsed time: 37.54 seconds. Current RSS: ~1440M. Threads: 4. load average: 1.11 1.40 1.37 1/280 536
.

        behaves like an unsubscribeable thread
          has a List-Unsubscribe header in the correct format, and a body link
          behaves like an unsubscribeable thread with incoming address without %{key}
            has a List-Unsubscribe header in the correct format, and a body link
        behaves like appearance header and footer enabled
          contains header and footer
        behaves like appearance header and footer not enabled
          does not contain header and footer
        behaves like email with default notification reason
          is expected to have plain text content "You're receiving this email because of your account"
        behaves like email with link to issue
          is expected to have plain text content "view it on GitLab: http://localhost/group1/project-1/-/issues/1"
        behaves like an assignee email with previous assignees
          when all assignees are removed
            uses fixed copy "All assignees were removed"
            behaves like email with default notification reason
              is expected to have plain text content "You're receiving this email because of your account"
# [RSpecRunTime] RSpec elapsed time: 41.76 seconds. Current RSS: ~1444M. Threads: 4. load average: 1.11 1.39 1.37 1/280 537
.

          with multiple previous assignees
            has the correct subject and body
            behaves like email with default notification reason
              is expected to have plain text content "You're receiving this email because of your account"
# [RSpecRunTime] RSpec elapsed time: 43.11 seconds. Current RSS: ~1447M. Threads: 4. load average: 1.11 1.39 1.37 2/280 538
.

        without previous assignees
          does not mention any previous assignees
          behaves like email with default notification reason
            is expected to have plain text content "You're receiving this email because of your account"
          behaves like email with link to issue
            is expected to have plain text content "view it on GitLab: http://localhost/group1/project-1/-/issues/1"
        when sent with a reason
          includes the reason in a header
          behaves like appearance header and footer enabled
            contains header and footer
# [RSpecRunTime] RSpec elapsed time: 45.26 seconds. Current RSS: ~1453M. Threads: 4. load average: 1.10 1.38 1.37 1/280 539
.

          behaves like appearance header and footer not enabled
            does not contain header and footer
        when sent with a non default locale
          is sent with html lang attribute set to the user's preferred language
# [RSpecRunTime] RSpec elapsed time: 47.34 seconds. Current RSS: ~1444M. Threads: 4. load average: 1.10 1.38 1.37 1/280 540
.

      that have been relabeled
        is sent as the author
        has the correct subject and body
        behaves like a multiple recipients email
          is sent to the given recipient
# [RSpecRunTime] RSpec elapsed time: 48.42 seconds. Current RSS: ~1442M. Threads: 4. load average: 1.10 1.38 1.37 1/280 541
.

        behaves like an answer to an existing thread with reply-by-email enabled
          has X-GitLab-Project headers
          has X-GitLab-*-ID header
          has X-GitLab-*-IID header if model has iid defined
          has X-GitLab-*-State header if model has state defined
          has X-GitLab-Project headers
          has X-GitLab-*-ID header
          has X-GitLab-*-IID header if model has iid defined
          has X-GitLab-*-State header if model has state defined
          has the characteristics of a threaded reply
          when reply-by-email is enabled with incoming address with %{key}
            has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 51.84 seconds. Current RSS: ~1439M. Threads: 4. load average: 1.09 1.38 1.36 1/280 542
.

          when reply-by-email is enabled with incoming address without %{key}
            has X-GitLab-Project headers
            has X-GitLab-*-ID header
            has X-GitLab-*-IID header if model has iid defined
            has X-GitLab-*-State header if model has state defined
            has the characteristics of a threaded reply
            has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 53.93 seconds. Current RSS: ~1455M. Threads: 4. load average: 1.09 1.38 1.36 1/280 543
.

        behaves like it should show Gmail Actions View Issue link
          is expected to have body including "View Issue"
          behaves like it should have Gmail Actions links
            is expected to have body including "ViewAction"
        behaves like a user cannot unsubscribe through footer link
          does not have a List-Unsubscribe header or a body link
        behaves like an email with a labels subscriptions link in its footer
          is expected to have body including "label subscriptions"
          is expected to have body including "href=\"http://localhost/group1/project-1/-/labels?subscribed=true\""
        behaves like appearance header and footer enabled
          contains header and footer
        behaves like appearance header and footer not enabled
          does not contain header and footer
        with a preferred language
          always generates the email using the default language
      that are due soon
        contains a link to the issue
        behaves like an answer to an existing thread with reply-by-email enabled
          has X-GitLab-Project headers
          has X-GitLab-*-ID header
          has X-GitLab-*-IID header if model has iid defined
          has X-GitLab-*-State header if model has state defined
          has X-GitLab-Project headers
          has X-GitLab-*-ID header
          has X-GitLab-*-IID header if model has iid defined
          has X-GitLab-*-State header if model has state defined
          has the characteristics of a threaded reply
          when reply-by-email is enabled with incoming address with %{key}
            has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 1 minute 1.95 seconds. Current RSS: ~1470M. Threads: 4. load average: 1.07 1.36 1.36 2/280 544
.

          when reply-by-email is enabled with incoming address without %{key}
            has X-GitLab-Project headers
            has X-GitLab-*-ID header
            has X-GitLab-*-IID header if model has iid defined
            has X-GitLab-*-State header if model has state defined
            has the characteristics of a threaded reply
            has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 1 minute 4.9 seconds. Current RSS: ~1469M. Threads: 4. load average: 1.07 1.36 1.36 1/280 545
.

        behaves like it should show Gmail Actions View Issue link
          is expected to have body including "View Issue"
          behaves like it should have Gmail Actions links
            is expected to have body including "ViewAction"
        behaves like an unsubscribeable thread
          has a List-Unsubscribe header in the correct format, and a body link
          behaves like an unsubscribeable thread with incoming address without %{key}
            has a List-Unsubscribe header in the correct format, and a body link
        behaves like appearance header and footer enabled
          contains header and footer
        behaves like appearance header and footer not enabled
          does not contain header and footer
      status changed
        is sent as the author
        has the correct subject and body
        behaves like an answer to an existing thread with reply-by-email enabled
          has X-GitLab-Project headers
          has X-GitLab-*-ID header
          has X-GitLab-*-IID header if model has iid defined
          has X-GitLab-*-State header if model has state defined
          has X-GitLab-Project headers
          has X-GitLab-*-ID header
          has X-GitLab-*-IID header if model has iid defined
          has X-GitLab-*-State header if model has state defined
          has the characteristics of a threaded reply
          when reply-by-email is enabled with incoming address with %{key}
            has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 1 minute 12.15 seconds. Current RSS: ~1477M. Threads: 4. load average: 1.13 1.37 1.36 1/280 546
.

          when reply-by-email is enabled with incoming address without %{key}
            has X-GitLab-Project headers
            has X-GitLab-*-ID header
            has X-GitLab-*-IID header if model has iid defined
            has X-GitLab-*-State header if model has state defined
            has the characteristics of a threaded reply
            has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 1 minute 14.31 seconds. Current RSS: ~1483M. Threads: 4. load average: 1.13 1.37 1.36 1/280 547
.

        behaves like it should show Gmail Actions View Issue link
          is expected to have body including "View Issue"
          behaves like it should have Gmail Actions links
            is expected to have body including "ViewAction"
        behaves like an unsubscribeable thread
          has a List-Unsubscribe header in the correct format, and a body link
          behaves like an unsubscribeable thread with incoming address without %{key}
            has a List-Unsubscribe header in the correct format, and a body link
        behaves like appearance header and footer enabled
          contains header and footer
        behaves like appearance header and footer not enabled
          does not contain header and footer
      closed
        is sent as the author
        has the correct subject and body
        behaves like an answer to an existing thread with reply-by-email enabled
          has X-GitLab-Project headers
          has X-GitLab-*-ID header
          has X-GitLab-*-IID header if model has iid defined
          has X-GitLab-*-State header if model has state defined
          has X-GitLab-Project headers
          has X-GitLab-*-ID header
          has X-GitLab-*-IID header if model has iid defined
          has X-GitLab-*-State header if model has state defined
          has the characteristics of a threaded reply
          when reply-by-email is enabled with incoming address with %{key}
            has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 1 minute 20.92 seconds. Current RSS: ~1486M. Threads: 4. load average: 1.11 1.35 1.36 1/280 548
.

          when reply-by-email is enabled with incoming address without %{key}
            has X-GitLab-Project headers
            has X-GitLab-*-ID header
            has X-GitLab-*-IID header if model has iid defined
            has X-GitLab-*-State header if model has state defined
            has the characteristics of a threaded reply
            has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 1 minute 23.09 seconds. Current RSS: ~1487M. Threads: 4. load average: 1.11 1.35 1.36 1/280 549
.

        behaves like it should show Gmail Actions View Issue link
          is expected to have body including "View Issue"
          behaves like it should have Gmail Actions links
            is expected to have body including "ViewAction"
        behaves like an unsubscribeable thread
          has a List-Unsubscribe header in the correct format, and a body link
          behaves like an unsubscribeable thread with incoming address without %{key}
            has a List-Unsubscribe header in the correct format, and a body link
        behaves like appearance header and footer enabled
          contains header and footer
        behaves like appearance header and footer not enabled
          does not contain header and footer
        behaves like email with default notification reason
          is expected to have plain text content "You're receiving this email because of your account"
        behaves like email with link to issue
          is expected to have plain text content "view it on GitLab: http://localhost/group1/project-1/-/issues/1"
        via commit
          has the correct subject and body
          behaves like email with default notification reason
            is expected to have plain text content "You're receiving this email because of your account"
          behaves like email with link to issue
            is expected to have plain text content "view it on GitLab: http://localhost/group1/project-1/-/issues/1"
        via merge request
          has the correct subject and body
          behaves like email with default notification reason
            is expected to have plain text content "You're receiving this email because of your account"
          behaves like email with link to issue
            is expected to have plain text content "view it on GitLab: http://localhost/group1/project-1/-/issues/1"
      moved to another project
        when a user has permissions to access the new issue
          contains description about action taken
          has the correct subject and body
          contains the issue title
          behaves like an answer to an existing thread with reply-by-email enabled
            has X-GitLab-Project headers
            has X-GitLab-*-ID header
            has X-GitLab-*-IID header if model has iid defined
            has X-GitLab-*-State header if model has state defined
            has X-GitLab-Project headers
            has X-GitLab-*-ID header
            has X-GitLab-*-IID header if model has iid defined
            has X-GitLab-*-State header if model has state defined
            has the characteristics of a threaded reply
            when reply-by-email is enabled with incoming address with %{key}
              has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 1 minute 42.0 seconds. Current RSS: ~1442M. Threads: 4. load average: 1.08 1.33 1.35 1/280 562
.

            when reply-by-email is enabled with incoming address without %{key}
              has X-GitLab-Project headers
              has X-GitLab-*-ID header
              has X-GitLab-*-IID header if model has iid defined
              has X-GitLab-*-State header if model has state defined
              has the characteristics of a threaded reply
              has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 1 minute 48.59 seconds. Current RSS: ~1432M. Threads: 4. load average: 1.08 1.33 1.35 1/280 563
.

          behaves like it should show Gmail Actions View Issue link
            is expected to have body including "View Issue"
            behaves like it should have Gmail Actions links
              is expected to have body including "ViewAction"
# [RSpecRunTime] RSpec elapsed time: 1 minute 50.88 seconds. Current RSS: ~1430M. Threads: 4. load average: 0.99 1.30 1.34 1/280 564
.

          behaves like an unsubscribeable thread
            has a List-Unsubscribe header in the correct format, and a body link
            behaves like an unsubscribeable thread with incoming address without %{key}
              has a List-Unsubscribe header in the correct format, and a body link
# [RSpecRunTime] RSpec elapsed time: 1 minute 53.2 seconds. Current RSS: ~1428M. Threads: 4. load average: 0.99 1.30 1.34 1/280 565
.

        when a user does not permissions to access the new issue
          has the correct subject and body
          does not contain the issue title
          contains information about missing permissions
# [RSpecRunTime] RSpec elapsed time: 1 minute 56.17 seconds. Current RSS: ~1430M. Threads: 4. load average: 0.99 1.30 1.34 1/280 566
.

    for merge requests
      that are new
        has the correct subject and body
        contains the description
        contains a link to merge request author
        contains a link to the merge request url
        behaves like an assignee email
          is sent to the assignee as the author
          behaves like an email sent to a user
            is sent to user's global notification email address
            with group notification email
              is sent to user's group notification email
# [RSpecRunTime] RSpec elapsed time: 1 minute 59.23 seconds. Current RSS: ~1433M. Threads: 4. load average: 0.99 1.30 1.34 3/280 567
.

        behaves like an email starting a new thread with reply-by-email enabled
          has X-GitLab-Project headers
          has X-GitLab-*-ID header
          has X-GitLab-*-IID header if model has iid defined
          has X-GitLab-*-State header if model has state defined
          has the characteristics of a threaded email
          includes "Reply to this email directly or <View it on GitLab>"
          when reply-by-email is enabled with incoming address with %{key}
            has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 2 minutes 2.05 seconds. Current RSS: ~1445M. Threads: 4. load average: 0.99 1.29 1.34 1/280 568
.

          when reply-by-email is enabled with incoming address without %{key}
            has the characteristics of a threaded email
            has a Reply-To header
        behaves like it should show Gmail Actions View Merge request link
          is expected to have body including "View Merge request"
          behaves like it should have Gmail Actions links
            is expected to have body including "ViewAction"
        behaves like an unsubscribeable thread
          has a List-Unsubscribe header in the correct format, and a body link
          behaves like an unsubscribeable thread with incoming address without %{key}
            has a List-Unsubscribe header in the correct format, and a body link
        behaves like appearance header and footer enabled
          contains header and footer
        behaves like appearance header and footer not enabled
          does not contain header and footer
        when sent with a reason
          includes the reason in a header
          behaves like appearance header and footer enabled
            contains header and footer
          behaves like appearance header and footer not enabled
            does not contain header and footer
      that are reassigned
        is sent as the author
        has the correct subject and body
        behaves like a multiple recipients email
          is sent to the given recipient
# [RSpecRunTime] RSpec elapsed time: 2 minutes 7.96 seconds. Current RSS: ~1452M. Threads: 4. load average: 0.99 1.29 1.33 1/280 569
.

        behaves like an answer to an existing thread with reply-by-email enabled
          has X-GitLab-Project headers
          has X-GitLab-*-ID header
          has X-GitLab-*-IID header if model has iid defined
          has X-GitLab-*-State header if model has state defined
          has X-GitLab-Project headers
          has X-GitLab-*-ID header
          has X-GitLab-*-IID header if model has iid defined
          has X-GitLab-*-State header if model has state defined
          has the characteristics of a threaded reply
          when reply-by-email is enabled with incoming address with %{key}
            has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 2 minutes 12.69 seconds. Current RSS: ~1452M. Threads: 4. load average: 0.99 1.28 1.33 1/280 570
.

          when reply-by-email is enabled with incoming address without %{key}
            has X-GitLab-Project headers
            has X-GitLab-*-ID header
            has X-GitLab-*-IID header if model has iid defined
            has X-GitLab-*-State header if model has state defined
            has the characteristics of a threaded reply
            has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 2 minutes 15.59 seconds. Current RSS: ~1456M. Threads: 4. load average: 0.99 1.28 1.33 1/280 571
.

        behaves like it should show Gmail Actions View Merge request link
          is expected to have body including "View Merge request"
          behaves like it should have Gmail Actions links
            is expected to have body including "ViewAction"
# [RSpecRunTime] RSpec elapsed time: 2 minutes 16.7 seconds. Current RSS: ~1456M. Threads: 4. load average: 0.99 1.28 1.33 8/280 572
.

        behaves like an unsubscribeable thread
          has a List-Unsubscribe header in the correct format, and a body link
          behaves like an unsubscribeable thread with incoming address without %{key}
            has a List-Unsubscribe header in the correct format, and a body link
# [RSpecRunTime] RSpec elapsed time: 2 minutes 17.79 seconds. Current RSS: ~1456M. Threads: 4. load average: 0.99 1.28 1.33 1/280 573
.

        behaves like appearance header and footer enabled
          contains header and footer
        behaves like appearance header and footer not enabled
          does not contain header and footer
        behaves like an assignee email with previous assignees
          when all assignees are removed
            uses fixed copy "All assignees were removed"
            behaves like email with default notification reason
              is expected to have plain text content "You're receiving this email because of your account"
# [RSpecRunTime] RSpec elapsed time: 2 minutes 20.11 seconds. Current RSS: ~1453M. Threads: 4. load average: 0.99 1.28 1.33 1/279 574
.

          with multiple previous assignees
            has the correct subject and body
            behaves like email with default notification reason
              is expected to have plain text content "You're receiving this email because of your account"
# [RSpecRunTime] RSpec elapsed time: 2 minutes 21.44 seconds. Current RSS: ~1453M. Threads: 4. load average: 1.00 1.27 1.33 1/279 575
.

        when sent with a reason
          includes the reason in a header
          includes the reason in the footer
          behaves like appearance header and footer enabled
            contains header and footer
# [RSpecRunTime] RSpec elapsed time: 2 minutes 23.4 seconds. Current RSS: ~1452M. Threads: 4. load average: 1.00 1.27 1.33 1/279 576
.

          behaves like appearance header and footer not enabled
            does not contain header and footer
      that are new with a description
        contains the description
        behaves like it should show Gmail Actions View Merge request link
          is expected to have body including "View Merge request"
          behaves like it should have Gmail Actions links
            is expected to have body including "ViewAction"
# [RSpecRunTime] RSpec elapsed time: 2 minutes 25.22 seconds. Current RSS: ~1452M. Threads: 4. load average: 1.00 1.27 1.33 1/279 577
.

        behaves like an unsubscribeable thread
          has a List-Unsubscribe header in the correct format, and a body link
          behaves like an unsubscribeable thread with incoming address without %{key}
            has a List-Unsubscribe header in the correct format, and a body link
        behaves like appearance header and footer enabled
          contains header and footer
        behaves like appearance header and footer not enabled
          does not contain header and footer
      that have been relabeled
        is sent as the author
        has the correct subject and body
        behaves like a multiple recipients email
          is sent to the given recipient
# [RSpecRunTime] RSpec elapsed time: 2 minutes 27.99 seconds. Current RSS: ~1458M. Threads: 4. load average: 1.00 1.27 1.33 1/279 578
.

        behaves like an answer to an existing thread with reply-by-email enabled
          has X-GitLab-Project headers
          has X-GitLab-*-ID header
          has X-GitLab-*-IID header if model has iid defined
          has X-GitLab-*-State header if model has state defined
          has X-GitLab-Project headers
          has X-GitLab-*-ID header
          has X-GitLab-*-IID header if model has iid defined
          has X-GitLab-*-State header if model has state defined
          has the characteristics of a threaded reply
          when reply-by-email is enabled with incoming address with %{key}
            has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 2 minutes 31.48 seconds. Current RSS: ~1469M. Threads: 4. load average: 1.00 1.26 1.33 1/279 579
.

          when reply-by-email is enabled with incoming address without %{key}
            has X-GitLab-Project headers
            has X-GitLab-*-ID header
            has X-GitLab-*-IID header if model has iid defined
            has X-GitLab-*-State header if model has state defined
            has the characteristics of a threaded reply
            has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 2 minutes 33.49 seconds. Current RSS: ~1470M. Threads: 4. load average: 1.00 1.26 1.33 1/279 580
.

        behaves like it should show Gmail Actions View Merge request link
          is expected to have body including "View Merge request"
          behaves like it should have Gmail Actions links
            is expected to have body including "ViewAction"
        behaves like a user cannot unsubscribe through footer link
          does not have a List-Unsubscribe header or a body link
        behaves like an email with a labels subscriptions link in its footer
          is expected to have body including "label subscriptions"
          is expected to have body including "href=\"http://localhost/group1/project-1/-/labels?subscribed=true\""
        behaves like appearance header and footer enabled
          contains header and footer
        behaves like appearance header and footer not enabled
          does not contain header and footer
      that have no new commits
        behaves like a push to an existing merge request
          is sent as the push user
          has the correct subject and body
          behaves like a multiple recipients email
            is sent to the given recipient
# [RSpecRunTime] RSpec elapsed time: 2 minutes 37.51 seconds. Current RSS: ~1468M. Threads: 4. load average: 1.00 1.26 1.32 1/279 581
.

          behaves like an answer to an existing thread with reply-by-email enabled
            has X-GitLab-Project headers
            has X-GitLab-*-ID header
            has X-GitLab-*-IID header if model has iid defined
            has X-GitLab-*-State header if model has state defined
            has X-GitLab-Project headers
            has X-GitLab-*-ID header
            has X-GitLab-*-IID header if model has iid defined
            has X-GitLab-*-State header if model has state defined
            has the characteristics of a threaded reply
            when reply-by-email is enabled with incoming address with %{key}
              has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 2 minutes 42.35 seconds. Current RSS: ~1466M. Threads: 4. load average: 1.00 1.25 1.32 1/279 582
.

            when reply-by-email is enabled with incoming address without %{key}
              has X-GitLab-Project headers
              has X-GitLab-*-ID header
              has X-GitLab-*-IID header if model has iid defined
              has X-GitLab-*-State header if model has state defined
              has the characteristics of a threaded reply
              has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 2 minutes 45.32 seconds. Current RSS: ~1461M. Threads: 4. load average: 1.00 1.25 1.32 3/279 583
.

          behaves like it should show Gmail Actions View Merge request link
            is expected to have body including "View Merge request"
            behaves like it should have Gmail Actions links
              is expected to have body including "ViewAction"
          behaves like an unsubscribeable thread
            has a List-Unsubscribe header in the correct format, and a body link
            behaves like an unsubscribeable thread with incoming address without %{key}
              has a List-Unsubscribe header in the correct format, and a body link
# [RSpecRunTime] RSpec elapsed time: 2 minutes 47.35 seconds. Current RSS: ~1459M. Threads: 4. load average: 1.00 1.25 1.32 1/279 584
.

          behaves like appearance header and footer enabled
            contains header and footer
          behaves like appearance header and footer not enabled
            does not contain header and footer
      that have fewer than the commit truncation limit
        behaves like a push to an existing merge request
          is sent as the push user
          has the correct subject and body
          behaves like a multiple recipients email
            is sent to the given recipient
# [RSpecRunTime] RSpec elapsed time: 2 minutes 49.99 seconds. Current RSS: ~1456M. Threads: 4. load average: 1.00 1.25 1.32 1/278 585
.

          behaves like an answer to an existing thread with reply-by-email enabled
            has X-GitLab-Project headers
            has X-GitLab-*-ID header
            has X-GitLab-*-IID header if model has iid defined
            has X-GitLab-*-State header if model has state defined
            has X-GitLab-Project headers
            has X-GitLab-*-ID header
            has X-GitLab-*-IID header if model has iid defined
            has X-GitLab-*-State header if model has state defined
            has the characteristics of a threaded reply
            when reply-by-email is enabled with incoming address with %{key}
              has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 2 minutes 55.18 seconds. Current RSS: ~1451M. Threads: 4. load average: 1.00 1.25 1.32 1/278 586
.

            when reply-by-email is enabled with incoming address without %{key}
              has X-GitLab-Project headers
              has X-GitLab-*-ID header
              has X-GitLab-*-IID header if model has iid defined
              has X-GitLab-*-State header if model has state defined
              has the characteristics of a threaded reply
              has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 2 minutes 58.35 seconds. Current RSS: ~1447M. Threads: 4. load average: 1.00 1.24 1.32 1/278 587
.

          behaves like it should show Gmail Actions View Merge request link
            is expected to have body including "View Merge request"
            behaves like it should have Gmail Actions links
              is expected to have body including "ViewAction"
# [RSpecRunTime] RSpec elapsed time: 2 minutes 59.48 seconds. Current RSS: ~1446M. Threads: 4. load average: 1.00 1.24 1.32 1/278 588
.

          behaves like an unsubscribeable thread
            has a List-Unsubscribe header in the correct format, and a body link
            behaves like an unsubscribeable thread with incoming address without %{key}
              has a List-Unsubscribe header in the correct format, and a body link
# [RSpecRunTime] RSpec elapsed time: 3 minutes 0.61 second. Current RSS: ~1446M. Threads: 4. load average: 1.08 1.25 1.32 1/278 589
.

          behaves like appearance header and footer enabled
            contains header and footer
          behaves like appearance header and footer not enabled
            does not contain header and footer
        behaves like shows new commit urls
          shows new commit urls
          does not show hidden new commit urls
      that have more than the commit truncation limit
        shows "and more" message
        behaves like a push to an existing merge request
          is sent as the push user
          has the correct subject and body
          behaves like a multiple recipients email
            is sent to the given recipient
# [RSpecRunTime] RSpec elapsed time: 3 minutes 4.43 seconds. Current RSS: ~1449M. Threads: 4. load average: 1.08 1.25 1.32 1/278 590
.

          behaves like an answer to an existing thread with reply-by-email enabled
            has X-GitLab-Project headers
            has X-GitLab-*-ID header
            has X-GitLab-*-IID header if model has iid defined
            has X-GitLab-*-State header if model has state defined
            has X-GitLab-Project headers
            has X-GitLab-*-ID header
            has X-GitLab-*-IID header if model has iid defined
            has X-GitLab-*-State header if model has state defined
            has the characteristics of a threaded reply
            when reply-by-email is enabled with incoming address with %{key}
              has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 3 minutes 9.08 seconds. Current RSS: ~1453M. Threads: 4. load average: 1.07 1.25 1.32 1/278 591
.

            when reply-by-email is enabled with incoming address without %{key}
              has X-GitLab-Project headers
              has X-GitLab-*-ID header
              has X-GitLab-*-IID header if model has iid defined
              has X-GitLab-*-State header if model has state defined
              has the characteristics of a threaded reply
              has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 3 minutes 12.0 seconds. Current RSS: ~1455M. Threads: 4. load average: 1.15 1.26 1.32 1/278 592
.

          behaves like it should show Gmail Actions View Merge request link
            is expected to have body including "View Merge request"
            behaves like it should have Gmail Actions links
              is expected to have body including "ViewAction"
          behaves like an unsubscribeable thread
            has a List-Unsubscribe header in the correct format, and a body link
            behaves like an unsubscribeable thread with incoming address without %{key}
              has a List-Unsubscribe header in the correct format, and a body link
          behaves like appearance header and footer enabled
            contains header and footer
          behaves like appearance header and footer not enabled
            does not contain header and footer
        behaves like shows new commit urls
          shows new commit urls
          does not show hidden new commit urls
# [RSpecRunTime] RSpec elapsed time: 3 minutes 16.13 seconds. Current RSS: ~1453M. Threads: 4. load average: 1.14 1.26 1.32 1/278 593
.

      that have new commits on top of an existing one
        shows the existing commit
        behaves like a push to an existing merge request
          is sent as the push user
          has the correct subject and body
          behaves like a multiple recipients email
            is sent to the given recipient
# [RSpecRunTime] RSpec elapsed time: 3 minutes 18.35 seconds. Current RSS: ~1452M. Threads: 4. load average: 1.14 1.26 1.32 1/278 594
.

          behaves like an answer to an existing thread with reply-by-email enabled
            has X-GitLab-Project headers
            has X-GitLab-*-ID header
            has X-GitLab-*-IID header if model has iid defined
            has X-GitLab-*-State header if model has state defined
            has X-GitLab-Project headers
            has X-GitLab-*-ID header
            has X-GitLab-*-IID header if model has iid defined
            has X-GitLab-*-State header if model has state defined
            has the characteristics of a threaded reply
            when reply-by-email is enabled with incoming address with %{key}
              has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 3 minutes 23.68 seconds. Current RSS: ~1449M. Threads: 4. load average: 1.12 1.25 1.32 1/278 595
.

            when reply-by-email is enabled with incoming address without %{key}
              has X-GitLab-Project headers
              has X-GitLab-*-ID header
              has X-GitLab-*-IID header if model has iid defined
              has X-GitLab-*-State header if model has state defined
              has the characteristics of a threaded reply
              has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 3 minutes 26.82 seconds. Current RSS: ~1449M. Threads: 4. load average: 1.11 1.25 1.32 1/278 596
.

          behaves like it should show Gmail Actions View Merge request link
            is expected to have body including "View Merge request"
            behaves like it should have Gmail Actions links
              is expected to have body including "ViewAction"
# [RSpecRunTime] RSpec elapsed time: 3 minutes 27.89 seconds. Current RSS: ~1449M. Threads: 4. load average: 1.11 1.25 1.32 1/278 597
.

          behaves like an unsubscribeable thread
            has a List-Unsubscribe header in the correct format, and a body link
            behaves like an unsubscribeable thread with incoming address without %{key}
              has a List-Unsubscribe header in the correct format, and a body link
# [RSpecRunTime] RSpec elapsed time: 3 minutes 29.04 seconds. Current RSS: ~1449M. Threads: 4. load average: 1.11 1.25 1.32 1/278 598
.

          behaves like appearance header and footer enabled
            contains header and footer
          behaves like appearance header and footer not enabled
            does not contain header and footer
      that have new commits on top of two existing ones
        behaves like a push to an existing merge request
          is sent as the push user
          has the correct subject and body
          behaves like a multiple recipients email
            is sent to the given recipient
# [RSpecRunTime] RSpec elapsed time: 3 minutes 31.77 seconds. Current RSS: ~1448M. Threads: 4. load average: 1.10 1.24 1.31 1/278 599
.

          behaves like an answer to an existing thread with reply-by-email enabled
            has X-GitLab-Project headers
            has X-GitLab-*-ID header
            has X-GitLab-*-IID header if model has iid defined
            has X-GitLab-*-State header if model has state defined
            has X-GitLab-Project headers
            has X-GitLab-*-ID header
            has X-GitLab-*-IID header if model has iid defined
            has X-GitLab-*-State header if model has state defined
            has the characteristics of a threaded reply
            when reply-by-email is enabled with incoming address with %{key}
              has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 3 minutes 37.07 seconds. Current RSS: ~1446M. Threads: 4. load average: 1.18 1.26 1.32 1/278 600
.

            when reply-by-email is enabled with incoming address without %{key}
              has X-GitLab-Project headers
              has X-GitLab-*-ID header
              has X-GitLab-*-IID header if model has iid defined
              has X-GitLab-*-State header if model has state defined
              has the characteristics of a threaded reply
              has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 3 minutes 40.3 seconds. Current RSS: ~1447M. Threads: 4. load average: 1.16 1.25 1.32 1/278 601
.

          behaves like it should show Gmail Actions View Merge request link
            is expected to have body including "View Merge request"
            behaves like it should have Gmail Actions links
              is expected to have body including "ViewAction"
# [RSpecRunTime] RSpec elapsed time: 3 minutes 41.41 seconds. Current RSS: ~1447M. Threads: 4. load average: 1.16 1.25 1.32 1/278 602
.

          behaves like an unsubscribeable thread
            has a List-Unsubscribe header in the correct format, and a body link
            behaves like an unsubscribeable thread with incoming address without %{key}
              has a List-Unsubscribe header in the correct format, and a body link
# [RSpecRunTime] RSpec elapsed time: 3 minutes 42.51 seconds. Current RSS: ~1447M. Threads: 4. load average: 1.16 1.25 1.32 1/278 603
.

          behaves like appearance header and footer enabled
            contains header and footer
          behaves like appearance header and footer not enabled
            does not contain header and footer
        behaves like shows the compare url between first and last commits
          shows the compare url between first and last commits
      that have new commits on top of more than two existing ones
        behaves like a push to an existing merge request
          is sent as the push user
          has the correct subject and body
          behaves like a multiple recipients email
            is sent to the given recipient
# [RSpecRunTime] RSpec elapsed time: 3 minutes 45.75 seconds. Current RSS: ~1445M. Threads: 4. load average: 1.15 1.25 1.31 1/278 604
.

          behaves like an answer to an existing thread with reply-by-email enabled
            has X-GitLab-Project headers
            has X-GitLab-*-ID header
            has X-GitLab-*-IID header if model has iid defined
            has X-GitLab-*-State header if model has state defined
            has X-GitLab-Project headers
            has X-GitLab-*-ID header
            has X-GitLab-*-IID header if model has iid defined
            has X-GitLab-*-State header if model has state defined
            has the characteristics of a threaded reply
            when reply-by-email is enabled with incoming address with %{key}
              has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 3 minutes 51.03 seconds. Current RSS: ~1444M. Threads: 4. load average: 1.14 1.24 1.31 1/278 605
.

            when reply-by-email is enabled with incoming address without %{key}
              has X-GitLab-Project headers
              has X-GitLab-*-ID header
              has X-GitLab-*-IID header if model has iid defined
              has X-GitLab-*-State header if model has state defined
              has the characteristics of a threaded reply
              has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 3 minutes 54.11 seconds. Current RSS: ~1443M. Threads: 4. load average: 1.14 1.24 1.31 1/278 606
.

          behaves like it should show Gmail Actions View Merge request link
            is expected to have body including "View Merge request"
            behaves like it should have Gmail Actions links
              is expected to have body including "ViewAction"
# [RSpecRunTime] RSpec elapsed time: 3 minutes 55.22 seconds. Current RSS: ~1443M. Threads: 4. load average: 1.14 1.24 1.31 1/278 607
.

          behaves like an unsubscribeable thread
            has a List-Unsubscribe header in the correct format, and a body link
            behaves like an unsubscribeable thread with incoming address without %{key}
              has a List-Unsubscribe header in the correct format, and a body link
# [RSpecRunTime] RSpec elapsed time: 3 minutes 56.32 seconds. Current RSS: ~1442M. Threads: 4. load average: 1.13 1.24 1.31 1/278 608
.

          behaves like appearance header and footer enabled
            contains header and footer
          behaves like appearance header and footer not enabled
            does not contain header and footer
        behaves like shows the compare url between first and last commits
          shows the compare url between first and last commits
    #mail_thread
      the model has no namespace
        has X-GitLab-Namespaced-Thing-ID header
      the model has a namespace
        has X-GitLab-Namespaced-Thing-ID header
    for issue notes
      in discussion
        has In-Reply-To header pointing to previous note in discussion
        has References header including the notes and issue of the discussion
        has X-GitLab-Discussion-ID header
        has a confidential header set to true
        behaves like an email sent to a user
          is sent to user's global notification email address
          with group notification email
            is sent to user's group notification email
# [RSpecRunTime] RSpec elapsed time: 4 minutes 1.9 seconds. Current RSS: ~1443M. Threads: 4. load average: 1.12 1.24 1.31 1/278 609
.

        behaves like appearance header and footer enabled
          contains header and footer
        behaves like appearance header and footer not enabled
          does not contain header and footer
      individual issue comments
        has a confidential header set to true
        has In-Reply-To header pointing to the issue
        has References header including the notes and issue of the discussion
        behaves like an email sent to a user
          is sent to user's global notification email address
          with group notification email
            is sent to user's group notification email
# [RSpecRunTime] RSpec elapsed time: 4 minutes 4.96 seconds. Current RSS: ~1445M. Threads: 4. load average: 1.12 1.24 1.31 1/278 610
.

        behaves like appearance header and footer enabled
          contains header and footer
        behaves like appearance header and footer not enabled
          does not contain header and footer
        with private references accessible to the recipient
          does not redact the reference
          renders expanded issue references
# [RSpecRunTime] RSpec elapsed time: 4 minutes 7.66 seconds. Current RSS: ~1441M. Threads: 4. load average: 1.11 1.23 1.31 1/278 611
.

    for snippet notes
      has the correct subject
      has the correct body
      links to the project snippet
      behaves like appearance header and footer enabled
        contains header and footer
# [RSpecRunTime] RSpec elapsed time: 4 minutes 9.71 seconds. Current RSS: ~1440M. Threads: 4. load average: 1.11 1.23 1.31 1/278 612
.

      behaves like appearance header and footer not enabled
        does not contain header and footer
      behaves like an answer to an existing thread with reply-by-email enabled
        has X-GitLab-Project headers
        has X-GitLab-*-ID header
        has X-GitLab-*-IID header if model has iid defined
        has X-GitLab-*-State header if model has state defined
        has X-GitLab-Project headers
        has X-GitLab-*-ID header
        has X-GitLab-*-IID header if model has iid defined
        has X-GitLab-*-State header if model has state defined
        has the characteristics of a threaded reply
        when reply-by-email is enabled with incoming address with %{key}
          has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 4 minutes 14.69 seconds. Current RSS: ~1448M. Threads: 4. load average: 1.10 1.23 1.30 1/278 613
.

        when reply-by-email is enabled with incoming address without %{key}
          has X-GitLab-Project headers
          has X-GitLab-*-ID header
          has X-GitLab-*-IID header if model has iid defined
          has X-GitLab-*-State header if model has state defined
          has the characteristics of a threaded reply
          has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 4 minutes 17.53 seconds. Current RSS: ~1449M. Threads: 4. load average: 1.09 1.22 1.30 1/278 614
.

      behaves like a user cannot unsubscribe through footer link
        does not have a List-Unsubscribe header or a body link
    for design notes
      is expected to have header X-Gitlab-DesignManagement-Design-ID: 1
      is expected to have body including "homescreen-1.jpg"
      is expected to have attributes {:subject => (a string including "homescreen-1.jpg")}
# [RSpecRunTime] RSpec elapsed time: 4 minutes 20.92 seconds. Current RSS: ~1446M. Threads: 4. load average: 1.08 1.22 1.30 1/279 679
.

    project was moved
      has the correct subject and body
      behaves like an email sent to a user
        is sent to user's global notification email address
        with group notification email
          is sent to user's group notification email
      behaves like an email sent from GitLab
        has the characteristics of an email sent from GitLab
      behaves like it should not have Gmail Actions links
        is expected not to have body including "ViewAction"
      behaves like a user cannot unsubscribe through footer link
        does not have a List-Unsubscribe header or a body link
      behaves like appearance header and footer enabled
        contains header and footer
      behaves like appearance header and footer not enabled
        does not contain header and footer
    project access requested
      contains all the useful information
      behaves like an email sent from GitLab
        has the characteristics of an email sent from GitLab
# [RSpecRunTime] RSpec elapsed time: 4 minutes 25.55 seconds. Current RSS: ~1453M. Threads: 4. load average: 1.08 1.22 1.30 1/279 680
.

      behaves like it should not have Gmail Actions links
        is expected not to have body including "ViewAction"
# [RSpecRunTime] RSpec elapsed time: 4 minutes 26.77 seconds. Current RSS: ~1453M. Threads: 4. load average: 1.08 1.22 1.30 1/279 681
.

      behaves like a user cannot unsubscribe through footer link
        does not have a List-Unsubscribe header or a body link
# [RSpecRunTime] RSpec elapsed time: 4 minutes 27.95 seconds. Current RSS: ~1452M. Threads: 4. load average: 1.08 1.22 1.30 1/279 682
.

      behaves like appearance header and footer enabled
        contains header and footer
# [RSpecRunTime] RSpec elapsed time: 4 minutes 29.24 seconds. Current RSS: ~1447M. Threads: 4. load average: 1.08 1.22 1.30 1/279 683
.

      behaves like appearance header and footer not enabled
        does not contain header and footer
# [RSpecRunTime] RSpec elapsed time: 4 minutes 30.55 seconds. Current RSS: ~1443M. Threads: 4. load average: 1.07 1.21 1.30 1/278 684
.

    project access denied
      contains all the useful information
      behaves like an email sent from GitLab
        has the characteristics of an email sent from GitLab
# [RSpecRunTime] RSpec elapsed time: 4 minutes 31.68 seconds. Current RSS: ~1437M. Threads: 4. load average: 1.07 1.21 1.30 1/278 685
.

      behaves like it should not have Gmail Actions links
        is expected not to have body including "ViewAction"
      behaves like a user cannot unsubscribe through footer link
        does not have a List-Unsubscribe header or a body link
      behaves like appearance header and footer enabled
        contains header and footer
      behaves like appearance header and footer not enabled
        does not contain header and footer
      when user can not read project
        hides project name from subject and body
    project access changed
      contains all the useful information
      behaves like an email sent from GitLab
        has the characteristics of an email sent from GitLab
# [RSpecRunTime] RSpec elapsed time: 4 minutes 36.24 seconds. Current RSS: ~1426M. Threads: 4. load average: 1.14 1.22 1.30 1/278 686
.

      behaves like it should not have Gmail Actions links
        is expected not to have body including "ViewAction"
# [RSpecRunTime] RSpec elapsed time: 4 minutes 37.61 seconds. Current RSS: ~1428M. Threads: 4. load average: 1.14 1.22 1.30 1/278 687
.

      behaves like a user cannot unsubscribe through footer link
        does not have a List-Unsubscribe header or a body link
# [RSpecRunTime] RSpec elapsed time: 4 minutes 39.0 seconds. Current RSS: ~1431M. Threads: 4. load average: 1.14 1.22 1.30 1/278 688
.

      behaves like appearance header and footer enabled
        contains header and footer
# [RSpecRunTime] RSpec elapsed time: 4 minutes 40.31 seconds. Current RSS: ~1430M. Threads: 4. load average: 1.13 1.22 1.30 1/278 689
.

      behaves like appearance header and footer not enabled
        does not contain header and footer
# [RSpecRunTime] RSpec elapsed time: 4 minutes 41.66 seconds. Current RSS: ~1424M. Threads: 4. load average: 1.13 1.22 1.30 1/278 690
.

    project invitation
      behaves like an email sent from GitLab
        has the characteristics of an email sent from GitLab
# [RSpecRunTime] RSpec elapsed time: 4 minutes 42.99 seconds. Current RSS: ~1421M. Threads: 4. load average: 1.13 1.22 1.30 1/278 691
.

      behaves like it should show Gmail Actions Join now link
        is expected to have body including "Join now"
        behaves like it should have Gmail Actions links
          is expected to have body including "ViewAction"
# [RSpecRunTime] RSpec elapsed time: 4 minutes 45.18 seconds. Current RSS: ~1417M. Threads: 4. load average: 1.13 1.22 1.30 1/278 692
.

      behaves like a user cannot unsubscribe through footer link
        does not have a List-Unsubscribe header or a body link
# [RSpecRunTime] RSpec elapsed time: 4 minutes 46.31 seconds. Current RSS: ~1417M. Threads: 4. load average: 1.12 1.22 1.30 1/278 693
.

      behaves like appearance header and footer enabled
        contains header and footer
# [RSpecRunTime] RSpec elapsed time: 4 minutes 47.55 seconds. Current RSS: ~1417M. Threads: 4. load average: 1.12 1.22 1.30 1/278 694
.

      behaves like appearance header and footer not enabled
        does not contain header and footer
# [RSpecRunTime] RSpec elapsed time: 4 minutes 48.82 seconds. Current RSS: ~1414M. Threads: 4. load average: 1.12 1.22 1.30 1/278 695
.

      behaves like does not render a manage notifications link
        is expected not to have body including "http://localhost/-/profile/notifications"
# [RSpecRunTime] RSpec elapsed time: 4 minutes 49.98 seconds. Current RSS: ~1414M. Threads: 4. load average: 1.12 1.22 1.30 1/278 696
.

      when there is an inviter
        contains all the useful information
# [RSpecRunTime] RSpec elapsed time: 4 minutes 51.17 seconds. Current RSS: ~1413M. Threads: 4. load average: 1.11 1.21 1.29 1/278 697
.

      when there is no inviter
        contains all the useful information
      when invite email sent is tracked
        tracks the sent invite
# [RSpecRunTime] RSpec elapsed time: 4 minutes 53.1 seconds. Current RSS: ~1414M. Threads: 4. load average: 1.11 1.21 1.29 1/278 698
.

      when mailgun events are enabled
        has custom headers
# [RSpecRunTime] RSpec elapsed time: 4 minutes 54.35 seconds. Current RSS: ~1414M. Threads: 4. load average: 1.11 1.21 1.29 1/278 699
.

    project invitation accepted
      contains all the useful information
      behaves like an email sent from GitLab
        has the characteristics of an email sent from GitLab
# [RSpecRunTime] RSpec elapsed time: 4 minutes 57.3 seconds. Current RSS: ~1411M. Threads: 4. load average: 1.10 1.21 1.29 1/278 700
.

      behaves like an email sent to a user
        is sent to user's global notification email address
        with group notification email
          is sent to user's group notification email
# [RSpecRunTime] RSpec elapsed time: 5 minutes 0.16 second. Current RSS: ~1410M. Threads: 4. load average: 1.10 1.21 1.29 1/278 701
.

      behaves like it should not have Gmail Actions links
        is expected not to have body including "ViewAction"
# [RSpecRunTime] RSpec elapsed time: 5 minutes 1.65 seconds. Current RSS: ~1408M. Threads: 4. load average: 1.09 1.20 1.29 1/278 702
.

      behaves like a user cannot unsubscribe through footer link
        does not have a List-Unsubscribe header or a body link
# [RSpecRunTime] RSpec elapsed time: 5 minutes 3.09 seconds. Current RSS: ~1406M. Threads: 4. load average: 1.09 1.20 1.29 1/278 703
.

      behaves like appearance header and footer enabled
        contains header and footer
# [RSpecRunTime] RSpec elapsed time: 5 minutes 4.63 seconds. Current RSS: ~1405M. Threads: 4. load average: 1.09 1.20 1.29 1/278 704
.

      behaves like appearance header and footer not enabled
        does not contain header and footer
# [RSpecRunTime] RSpec elapsed time: 5 minutes 6.13 seconds. Current RSS: ~1404M. Threads: 4. load average: 1.09 1.20 1.29 1/278 705
.

    project invitation declined
      contains all the useful information
      behaves like an email sent from GitLab
        has the characteristics of an email sent from GitLab
# [RSpecRunTime] RSpec elapsed time: 5 minutes 8.51 seconds. Current RSS: ~1404M. Threads: 4. load average: 1.09 1.20 1.29 1/278 706
.

      behaves like an email sent to a user
        is sent to user's global notification email address
        with group notification email
          is sent to user's group notification email
# [RSpecRunTime] RSpec elapsed time: 5 minutes 10.81 seconds. Current RSS: ~1405M. Threads: 4. load average: 1.08 1.20 1.29 1/278 707
.

      behaves like it should not have Gmail Actions links
        is expected not to have body including "ViewAction"
# [RSpecRunTime] RSpec elapsed time: 5 minutes 11.98 seconds. Current RSS: ~1404M. Threads: 4. load average: 1.08 1.20 1.29 1/278 708
.

      behaves like a user cannot unsubscribe through footer link
        does not have a List-Unsubscribe header or a body link
# [RSpecRunTime] RSpec elapsed time: 5 minutes 13.23 seconds. Current RSS: ~1406M. Threads: 4. load average: 1.08 1.20 1.29 1/278 709
.

      behaves like appearance header and footer enabled
        contains header and footer
# [RSpecRunTime] RSpec elapsed time: 5 minutes 14.41 seconds. Current RSS: ~1405M. Threads: 4. load average: 1.08 1.20 1.29 1/278 710
.

      behaves like appearance header and footer not enabled
        does not contain header and footer
# [RSpecRunTime] RSpec elapsed time: 5 minutes 15.54 seconds. Current RSS: ~1404M. Threads: 4. load average: 1.07 1.19 1.28 1/278 711
.

    items that are noteable, the email for a note
      on a commit
        has the correct subject and body
        behaves like a note email
          is sent to the given recipient as the author
          contains the message from the note
          contains a link to note author
          behaves like it should have Gmail Actions links
            is expected to have body including "ViewAction"
# [RSpecRunTime] RSpec elapsed time: 5 minutes 19.09 seconds. Current RSS: ~1409M. Threads: 4. load average: 1.07 1.19 1.28 1/283 732
.

        behaves like an answer to an existing thread with reply-by-email enabled
          has X-GitLab-Project headers
          has X-GitLab-*-ID header
          has X-GitLab-*-IID header if model has iid defined
          has X-GitLab-*-State header if model has state defined
          has X-GitLab-Project headers
          has X-GitLab-*-ID header
          has X-GitLab-*-IID header if model has iid defined
          has X-GitLab-*-State header if model has state defined
          has the characteristics of a threaded reply
          when reply-by-email is enabled with incoming address with %{key}
            has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 5 minutes 25.76 seconds. Current RSS: ~1411M. Threads: 4. load average: 1.05 1.19 1.28 1/283 773
.

          when reply-by-email is enabled with incoming address without %{key}
            has X-GitLab-Project headers
            has X-GitLab-*-ID header
            has X-GitLab-*-IID header if model has iid defined
            has X-GitLab-*-State header if model has state defined
            has the characteristics of a threaded reply
            has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 5 minutes 29.91 seconds. Current RSS: ~1419M. Threads: 4. load average: 1.05 1.19 1.28 1/283 798
.

        behaves like it should show Gmail Actions View Commit link
          is expected to have body including "View Commit"
          behaves like it should have Gmail Actions links
            is expected to have body including "ViewAction"
# [RSpecRunTime] RSpec elapsed time: 5 minutes 31.31 seconds. Current RSS: ~1418M. Threads: 4. load average: 1.05 1.18 1.28 1/283 807
.

        behaves like a user cannot unsubscribe through footer link
          does not have a List-Unsubscribe header or a body link
        behaves like appearance header and footer enabled
          contains header and footer
        behaves like appearance header and footer not enabled
          does not contain header and footer
      on a merge request
        has the correct subject and body
        behaves like a note email
          is sent to the given recipient as the author
          contains the message from the note
          contains a link to note author
          behaves like it should have Gmail Actions links
            is expected to have body including "ViewAction"
# [RSpecRunTime] RSpec elapsed time: 5 minutes 37.0 seconds. Current RSS: ~1419M. Threads: 4. load average: 1.05 1.18 1.28 1/283 820
.

        behaves like an answer to an existing thread with reply-by-email enabled
          has X-GitLab-Project headers
          has X-GitLab-*-ID header
          has X-GitLab-*-IID header if model has iid defined
          has X-GitLab-*-State header if model has state defined
          has X-GitLab-Project headers
          has X-GitLab-*-ID header
          has X-GitLab-*-IID header if model has iid defined
          has X-GitLab-*-State header if model has state defined
          has the characteristics of a threaded reply
          when reply-by-email is enabled with incoming address with %{key}
            has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 5 minutes 43.67 seconds. Current RSS: ~1427M. Threads: 4. load average: 1.04 1.18 1.27 1/279 821
.

          when reply-by-email is enabled with incoming address without %{key}
            has X-GitLab-Project headers
            has X-GitLab-*-ID header
            has X-GitLab-*-IID header if model has iid defined
            has X-GitLab-*-State header if model has state defined
            has the characteristics of a threaded reply
            has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 5 minutes 47.64 seconds. Current RSS: ~1426M. Threads: 4. load average: 0.96 1.16 1.27 1/278 822
.

        behaves like it should show Gmail Actions View Merge request link
          is expected to have body including "View Merge request"
          behaves like it should have Gmail Actions links
            is expected to have body including "ViewAction"
# [RSpecRunTime] RSpec elapsed time: 5 minutes 49.07 seconds. Current RSS: ~1425M. Threads: 4. load average: 0.96 1.16 1.27 1/278 823
.

        behaves like an unsubscribeable thread
          has a List-Unsubscribe header in the correct format, and a body link
          behaves like an unsubscribeable thread with incoming address without %{key}
            has a List-Unsubscribe header in the correct format, and a body link
# [RSpecRunTime] RSpec elapsed time: 5 minutes 50.49 seconds. Current RSS: ~1423M. Threads: 4. load average: 0.96 1.15 1.27 1/278 824
.

        behaves like appearance header and footer enabled
          contains header and footer
        behaves like appearance header and footer not enabled
          does not contain header and footer
      on an issue
        has the correct subject and body
        behaves like a note email
          is sent to the given recipient as the author
          contains the message from the note
          contains a link to note author
          behaves like it should have Gmail Actions links
            is expected to have body including "ViewAction"
# [RSpecRunTime] RSpec elapsed time: 5 minutes 55.33 seconds. Current RSS: ~1429M. Threads: 4. load average: 0.97 1.15 1.26 1/278 825
.

        behaves like an answer to an existing thread with reply-by-email enabled
          has X-GitLab-Project headers
          has X-GitLab-*-ID header
          has X-GitLab-*-IID header if model has iid defined
          has X-GitLab-*-State header if model has state defined
          has X-GitLab-Project headers
          has X-GitLab-*-ID header
          has X-GitLab-*-IID header if model has iid defined
          has X-GitLab-*-State header if model has state defined
          has the characteristics of a threaded reply
          when reply-by-email is enabled with incoming address with %{key}
            has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 6 minutes 2.34 seconds. Current RSS: ~1427M. Threads: 4. load average: 1.05 1.17 1.27 1/278 826
.

          when reply-by-email is enabled with incoming address without %{key}
            has X-GitLab-Project headers
            has X-GitLab-*-ID header
            has X-GitLab-*-IID header if model has iid defined
            has X-GitLab-*-State header if model has state defined
            has the characteristics of a threaded reply
            has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 6 minutes 6.34 seconds. Current RSS: ~1425M. Threads: 4. load average: 1.04 1.16 1.27 1/278 827
.

        behaves like it should show Gmail Actions View Issue link
          is expected to have body including "View Issue"
          behaves like it should have Gmail Actions links
            is expected to have body including "ViewAction"
# [RSpecRunTime] RSpec elapsed time: 6 minutes 7.76 seconds. Current RSS: ~1424M. Threads: 4. load average: 1.04 1.16 1.27 1/278 828
.

        behaves like an unsubscribeable thread
          has a List-Unsubscribe header in the correct format, and a body link
          behaves like an unsubscribeable thread with incoming address without %{key}
            has a List-Unsubscribe header in the correct format, and a body link
# [RSpecRunTime] RSpec elapsed time: 6 minutes 9.13 seconds. Current RSS: ~1425M. Threads: 4. load average: 1.04 1.16 1.27 1/278 829
.

        behaves like appearance header and footer enabled
          contains header and footer
        behaves like appearance header and footer not enabled
          does not contain header and footer
    items that are noteable, the email for a discussion note
      on a commit
        has the correct subject
        contains a link to the commit
        behaves like a discussion note email
          is sent to the given recipient as the author
          contains the message from the note
          contains an introduction
          behaves like it should have Gmail Actions links
            is expected to have body including "ViewAction"
# [RSpecRunTime] RSpec elapsed time: 6 minutes 14.12 seconds. Current RSS: ~1427M. Threads: 4. load average: 1.04 1.16 1.27 1/283 902
.

          when a comment on an existing discussion
            contains an introduction
# [RSpecRunTime] RSpec elapsed time: 6 minutes 15.69 seconds. Current RSS: ~1434M. Threads: 4. load average: 1.12 1.17 1.27 1/283 945
.

        behaves like an answer to an existing thread with reply-by-email enabled
          has X-GitLab-Project headers
          has X-GitLab-*-ID header
          has X-GitLab-*-IID header if model has iid defined
          has X-GitLab-*-State header if model has state defined
          has X-GitLab-Project headers
          has X-GitLab-*-ID header
          has X-GitLab-*-IID header if model has iid defined
          has X-GitLab-*-State header if model has state defined
          has the characteristics of a threaded reply
          when reply-by-email is enabled with incoming address with %{key}
            has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 6 minutes 21.9 seconds. Current RSS: ~1431M. Threads: 4. load average: 1.19 1.19 1.27 1/283 1066
.

          when reply-by-email is enabled with incoming address without %{key}
            has X-GitLab-Project headers
            has X-GitLab-*-ID header
            has X-GitLab-*-IID header if model has iid defined
            has X-GitLab-*-State header if model has state defined
            has the characteristics of a threaded reply
            has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 6 minutes 25.55 seconds. Current RSS: ~1432M. Threads: 4. load average: 1.17 1.18 1.27 1/283 1139
.

        behaves like it should show Gmail Actions View Commit link
          is expected to have body including "View Commit"
          behaves like it should have Gmail Actions links
            is expected to have body including "ViewAction"
# [RSpecRunTime] RSpec elapsed time: 6 minutes 26.87 seconds. Current RSS: ~1434M. Threads: 4. load average: 1.17 1.18 1.27 1/283 1164
.

        behaves like a user cannot unsubscribe through footer link
          does not have a List-Unsubscribe header or a body link
        behaves like appearance header and footer enabled
          contains header and footer
        behaves like appearance header and footer not enabled
          does not contain header and footer
      on a merge request
        has the correct subject
        contains a link to the merge request note
        behaves like a discussion note email
          is sent to the given recipient as the author (FAILED - 1)
          contains the message from the note
          contains an introduction
          behaves like it should have Gmail Actions links
            is expected to have body including "ViewAction"
# [RSpecRunTime] RSpec elapsed time: 6 minutes 32.22 seconds. Current RSS: ~1437M. Threads: 4. load average: 1.16 1.18 1.27 1/283 1201
.

          when a comment on an existing discussion
            contains an introduction
# [RSpecRunTime] RSpec elapsed time: 6 minutes 33.83 seconds. Current RSS: ~1442M. Threads: 4. load average: 1.16 1.18 1.27 1/283 1228
.

        behaves like an answer to an existing thread with reply-by-email enabled
          has X-GitLab-Project headers
          has X-GitLab-*-ID header
          has X-GitLab-*-IID header if model has iid defined
          has X-GitLab-*-State header if model has state defined
          has X-GitLab-Project headers
          has X-GitLab-*-ID header
          has X-GitLab-*-IID header if model has iid defined
          has X-GitLab-*-State header if model has state defined
          has the characteristics of a threaded reply
          when reply-by-email is enabled with incoming address with %{key}
            has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 6 minutes 39.69 seconds. Current RSS: ~1442M. Threads: 4. load average: 1.23 1.20 1.28 1/278 1229
.

          when reply-by-email is enabled with incoming address without %{key}
            has X-GitLab-Project headers
            has X-GitLab-*-ID header
            has X-GitLab-*-IID header if model has iid defined
            has X-GitLab-*-State header if model has state defined
            has the characteristics of a threaded reply
            has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 6 minutes 43.18 seconds. Current RSS: ~1440M. Threads: 4. load average: 1.21 1.19 1.27 1/278 1230
.

        behaves like it should show Gmail Actions View Merge request link
          is expected to have body including "View Merge request"
          behaves like it should have Gmail Actions links
            is expected to have body including "ViewAction"
# [RSpecRunTime] RSpec elapsed time: 6 minutes 44.43 seconds. Current RSS: ~1440M. Threads: 4. load average: 1.21 1.19 1.27 1/278 1231
.

        behaves like an unsubscribeable thread
          has a List-Unsubscribe header in the correct format, and a body link
          behaves like an unsubscribeable thread with incoming address without %{key}
            has a List-Unsubscribe header in the correct format, and a body link
# [RSpecRunTime] RSpec elapsed time: 6 minutes 45.66 seconds. Current RSS: ~1440M. Threads: 4. load average: 1.19 1.19 1.27 1/278 1232
.

        behaves like appearance header and footer enabled
          contains header and footer
        behaves like appearance header and footer not enabled
          does not contain header and footer
      on an issue
        has the correct subject
        contains a link to the issue note
        behaves like a discussion note email
          is sent to the given recipient as the author (FAILED - 2)
          contains the message from the note
          contains an introduction
          behaves like it should have Gmail Actions links
            is expected to have body including "ViewAction"
# [RSpecRunTime] RSpec elapsed time: 6 minutes 50.54 seconds. Current RSS: ~1437M. Threads: 4. load average: 1.26 1.20 1.28 1/278 1233
.

          when a comment on an existing discussion
            contains an introduction
# [RSpecRunTime] RSpec elapsed time: 6 minutes 51.76 seconds. Current RSS: ~1436M. Threads: 4. load average: 1.26 1.20 1.28 1/278 1234
.

        behaves like an answer to an existing thread with reply-by-email enabled
          has X-GitLab-Project headers
          has X-GitLab-*-ID header
          has X-GitLab-*-IID header if model has iid defined
          has X-GitLab-*-State header if model has state defined
          has X-GitLab-Project headers
          has X-GitLab-*-ID header
          has X-GitLab-*-IID header if model has iid defined
          has X-GitLab-*-State header if model has state defined
          has the characteristics of a threaded reply
          when reply-by-email is enabled with incoming address with %{key}
            has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 6 minutes 57.99 seconds. Current RSS: ~1428M. Threads: 4. load average: 1.24 1.20 1.27 1/278 1235
.

          when reply-by-email is enabled with incoming address without %{key}
            has X-GitLab-Project headers
            has X-GitLab-*-ID header
            has X-GitLab-*-IID header if model has iid defined
            has X-GitLab-*-State header if model has state defined
            has the characteristics of a threaded reply
            has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 7 minutes 1.71 seconds. Current RSS: ~1429M. Threads: 4. load average: 1.22 1.20 1.27 1/278 1236
.

        behaves like it should show Gmail Actions View Issue link
          is expected to have body including "View Issue"
          behaves like it should have Gmail Actions links
            is expected to have body including "ViewAction"
# [RSpecRunTime] RSpec elapsed time: 7 minutes 3.05 seconds. Current RSS: ~1428M. Threads: 4. load average: 1.22 1.20 1.27 1/278 1237
.

        behaves like an unsubscribeable thread
          has a List-Unsubscribe header in the correct format, and a body link
          behaves like an unsubscribeable thread with incoming address without %{key}
            has a List-Unsubscribe header in the correct format, and a body link
# [RSpecRunTime] RSpec elapsed time: 7 minutes 4.37 seconds. Current RSS: ~1427M. Threads: 4. load average: 1.22 1.20 1.27 1/278 1238
.

        behaves like appearance header and footer enabled
          contains header and footer
        behaves like appearance header and footer not enabled
          does not contain header and footer
    items that are noteable, the email for a diff discussion note
      on a commit
        behaves like an email for a note on a diff discussion
          includes diffs with character-level highlighting
          contains a link to the diff file
          is sent to the given recipient as the author (FAILED - 3)
          contains the message from the note
          contains an introduction
          when note is not on text
            does not include diffs with character-level highlighting
# [RSpecRunTime] RSpec elapsed time: 7 minutes 10.44 seconds. Current RSS: ~1428M. Threads: 4. load average: 1.11 1.17 1.26 1/283 1433
.

          when the project does not show diffs in emails
            does not show diff and displays a separate message
          behaves like it should have Gmail Actions links
            is expected to have body including "ViewAction"
          when a comment on an existing discussion
            contains an introduction
# [RSpecRunTime] RSpec elapsed time: 7 minutes 14.78 seconds. Current RSS: ~1439M. Threads: 4. load average: 1.11 1.17 1.26 1/283 1603
.

        behaves like it should show Gmail Actions View Commit link
          is expected to have body including "View Commit"
          behaves like it should have Gmail Actions links
            is expected to have body including "ViewAction"
# [RSpecRunTime] RSpec elapsed time: 7 minutes 16.44 seconds. Current RSS: ~1439M. Threads: 4. load average: 1.10 1.17 1.26 1/283 1668
.

        behaves like a user cannot unsubscribe through footer link
          does not have a List-Unsubscribe header or a body link
        behaves like appearance header and footer enabled
          contains header and footer
        behaves like appearance header and footer not enabled
          does not contain header and footer
      on a merge request
        behaves like an email for a note on a diff discussion
          includes diffs with character-level highlighting
          contains a link to the diff file
          is sent to the given recipient as the author (FAILED - 4)
          contains the message from the note
          contains an introduction
          when note is not on text
            does not include diffs with character-level highlighting
# [RSpecRunTime] RSpec elapsed time: 7 minutes 23.81 seconds. Current RSS: ~1435M. Threads: 4. load average: 1.09 1.17 1.26 1/283 1925
.

          when the project does not show diffs in emails
            does not show diff and displays a separate message
          behaves like it should have Gmail Actions links
            is expected to have body including "ViewAction"
          when a comment on an existing discussion
            contains an introduction
# [RSpecRunTime] RSpec elapsed time: 7 minutes 29.12 seconds. Current RSS: ~1438M. Threads: 4. load average: 1.08 1.16 1.26 1/284 2177
.

        behaves like it should show Gmail Actions View Merge request link
          is expected to have body including "View Merge request"
          behaves like it should have Gmail Actions links
            is expected to have body including "ViewAction"
# [RSpecRunTime] RSpec elapsed time: 7 minutes 30.9 seconds. Current RSS: ~1438M. Threads: 4. load average: 1.08 1.16 1.26 1/283 2232
.

        behaves like an unsubscribeable thread
          has a List-Unsubscribe header in the correct format, and a body link
          behaves like an unsubscribeable thread with incoming address without %{key}
            has a List-Unsubscribe header in the correct format, and a body link
# [RSpecRunTime] RSpec elapsed time: 7 minutes 32.65 seconds. Current RSS: ~1438M. Threads: 4. load average: 1.08 1.16 1.26 1/283 2287
.

        behaves like appearance header and footer enabled
          contains header and footer
        behaves like appearance header and footer not enabled
          does not contain header and footer
    for service desk issues
      thank you email
        has the correct recipient
        has the correct subject and body
        uses service bot name by default
        behaves like an unsubscribeable thread
          has a List-Unsubscribe header in the correct format, and a body link
          behaves like an unsubscribeable thread with incoming address without %{key}
            has a List-Unsubscribe header in the correct format, and a body link
# [RSpecRunTime] RSpec elapsed time: 7 minutes 37.87 seconds. Current RSS: ~1434M. Threads: 4. load average: 1.07 1.16 1.26 1/283 2392
.

        behaves like appearance header and footer enabled
          contains header and footer
        behaves like appearance header and footer not enabled
          does not contain header and footer
        behaves like a mail with default delivery method
          uses mailer default delivery method
        when custom outgoing name is set
          uses custom name in "from" header
        when custom outgoing name is empty
          uses service bot name
        when custom email is enabled
          uses custom email and service bot name in "from" header
          uses SMTP delivery method and has correct settings
# [RSpecRunTime] RSpec elapsed time: 7 minutes 42.54 seconds. Current RSS: ~1432M. Threads: 4. load average: 1.06 1.15 1.25 1/283 2463
.

      new note email
        has the correct recipient
        uses author's name in "from" header
        has the correct subject and body
        behaves like an unsubscribeable thread
          has a List-Unsubscribe header in the correct format, and a body link
          behaves like an unsubscribeable thread with incoming address without %{key}
            has a List-Unsubscribe header in the correct format, and a body link
# [RSpecRunTime] RSpec elapsed time: 7 minutes 46.29 seconds. Current RSS: ~1429M. Threads: 4. load average: 0.98 1.14 1.25 1/283 2514
.

        behaves like appearance header and footer enabled
          contains header and footer
        behaves like appearance header and footer not enabled
          does not contain header and footer
        behaves like a mail with default delivery method
          uses mailer default delivery method
        when custom email is enabled
          uses custom email and author's name in "from" header
          uses SMTP delivery method and has correct settings
# [RSpecRunTime] RSpec elapsed time: 7 minutes 49.78 seconds. Current RSS: ~1430M. Threads: 4. load average: 0.98 1.14 1.25 1/283 2565
.

  for a group
    group access requested
      contains all the useful information
      behaves like an email sent from GitLab
        has the characteristics of an email sent from GitLab
# [RSpecRunTime] RSpec elapsed time: 7 minutes 50.91 seconds. Current RSS: ~1431M. Threads: 4. load average: 0.98 1.13 1.25 1/283 2566
.

      behaves like an email sent to a user
        is sent to user's global notification email address
        with group notification email
          is sent to user's group notification email
# [RSpecRunTime] RSpec elapsed time: 7 minutes 52.04 seconds. Current RSS: ~1431M. Threads: 4. load average: 0.98 1.13 1.25 1/283 2567
.

      behaves like it should not have Gmail Actions links
        is expected not to have body including "ViewAction"
      behaves like a user cannot unsubscribe through footer link
        does not have a List-Unsubscribe header or a body link
      behaves like appearance header and footer enabled
        contains header and footer
      behaves like appearance header and footer not enabled
        does not contain header and footer
    group access denied
      contains all the useful information
      behaves like an email sent from GitLab
        has the characteristics of an email sent from GitLab
      behaves like an email sent to a user
        is sent to user's global notification email address
        with group notification email
          is sent to user's group notification email
      behaves like it should not have Gmail Actions links
        is expected not to have body including "ViewAction"
      behaves like a user cannot unsubscribe through footer link
        does not have a List-Unsubscribe header or a body link
      behaves like appearance header and footer enabled
        contains header and footer
      behaves like appearance header and footer not enabled
        does not contain header and footer
      when user can not read group
        hides group name from subject and body
    group access changed
      contains all the useful information
      behaves like an email sent from GitLab
        has the characteristics of an email sent from GitLab
# [RSpecRunTime] RSpec elapsed time: 7 minutes 57.85 seconds. Current RSS: ~1444M. Threads: 4. load average: 0.98 1.13 1.25 1/283 2568
.

      behaves like an email sent to a user
        is sent to user's global notification email address
        with group notification email
          is sent to user's group notification email
# [RSpecRunTime] RSpec elapsed time: 7 minutes 59.01 seconds. Current RSS: ~1445M. Threads: 4. load average: 0.98 1.13 1.25 1/282 2569
.

      behaves like it should not have Gmail Actions links
        is expected not to have body including "ViewAction"
      behaves like a user cannot unsubscribe through footer link
        does not have a List-Unsubscribe header or a body link
      behaves like appearance header and footer enabled
        contains header and footer
      behaves like appearance header and footer not enabled
        does not contain header and footer
    invitations
      behaves like an email sent from GitLab
        has the characteristics of an email sent from GitLab
      behaves like it should show Gmail Actions Join now link
        is expected to have body including "Join now"
        behaves like it should have Gmail Actions links
          is expected to have body including "ViewAction"
# [RSpecRunTime] RSpec elapsed time: 8 minutes 3.97 seconds. Current RSS: ~1436M. Threads: 4. load average: 0.98 1.13 1.24 1/278 2570
.

      behaves like a user cannot unsubscribe through footer link
        does not have a List-Unsubscribe header or a body link
      behaves like appearance header and footer enabled
        contains header and footer
      behaves like appearance header and footer not enabled
        does not contain header and footer
      behaves like does not render a manage notifications link
        is expected not to have body including "http://localhost/-/profile/notifications"
      when there is an inviter
        contains all the useful information
      when there is no inviter
        contains all the useful information
    group invitation reminders
      not sending a reminder
        member does not exist
          behaves like no email is sent
            does not send an email
        member is not created by a user
          behaves like no email is sent
            does not send an email
        member is a known user
          behaves like no email is sent
            does not send an email
      the first reminder
        contains all the useful information
        behaves like an email sent from GitLab
          has the characteristics of an email sent from GitLab
        behaves like it should not have Gmail Actions links
          is expected not to have body including "ViewAction"
        behaves like a user cannot unsubscribe through footer link
          does not have a List-Unsubscribe header or a body link
      the second reminder
        contains all the useful information
        behaves like an email sent from GitLab
          has the characteristics of an email sent from GitLab
        behaves like it should not have Gmail Actions links
          is expected not to have body including "ViewAction"
        behaves like a user cannot unsubscribe through footer link
          does not have a List-Unsubscribe header or a body link
      the third reminder
        contains all the useful information
        behaves like an email sent from GitLab
          has the characteristics of an email sent from GitLab
        behaves like it should not have Gmail Actions links
          is expected not to have body including "ViewAction"
        behaves like a user cannot unsubscribe through footer link
          does not have a List-Unsubscribe header or a body link
    group invitation accepted
      contains all the useful information
      behaves like an email sent from GitLab
        has the characteristics of an email sent from GitLab
# [RSpecRunTime] RSpec elapsed time: 8 minutes 16.82 seconds. Current RSS: ~1406M. Threads: 4. load average: 1.06 1.14 1.25 1/278 2571
.

      behaves like it should not have Gmail Actions links
        is expected not to have body including "ViewAction"
# [RSpecRunTime] RSpec elapsed time: 8 minutes 17.93 seconds. Current RSS: ~1407M. Threads: 4. load average: 1.06 1.14 1.25 1/278 2572
.

      behaves like a user cannot unsubscribe through footer link
        does not have a List-Unsubscribe header or a body link
# [RSpecRunTime] RSpec elapsed time: 8 minutes 19.1 seconds. Current RSS: ~1407M. Threads: 4. load average: 1.06 1.14 1.25 1/278 2573
.

      behaves like appearance header and footer enabled
        contains header and footer
# [RSpecRunTime] RSpec elapsed time: 8 minutes 20.35 seconds. Current RSS: ~1406M. Threads: 4. load average: 1.05 1.14 1.24 1/278 2574
.

      behaves like appearance header and footer not enabled
        does not contain header and footer
# [RSpecRunTime] RSpec elapsed time: 8 minutes 21.52 seconds. Current RSS: ~1405M. Threads: 4. load average: 1.05 1.14 1.24 1/278 2575
.

    group invitation declined
      contains all the useful information
      behaves like an email sent from GitLab
        has the characteristics of an email sent from GitLab
# [RSpecRunTime] RSpec elapsed time: 8 minutes 22.98 seconds. Current RSS: ~1405M. Threads: 4. load average: 1.05 1.14 1.24 1/278 2576
.

      behaves like it should not have Gmail Actions links
        is expected not to have body including "ViewAction"
      behaves like a user cannot unsubscribe through footer link
        does not have a List-Unsubscribe header or a body link
      behaves like appearance header and footer enabled
        contains header and footer
      behaves like appearance header and footer not enabled
        does not contain header and footer
    group expiration date updated
      when expiration date is changed
        behaves like an email sent from GitLab
          has the characteristics of an email sent from GitLab
        behaves like it should not have Gmail Actions links
          is expected not to have body including "ViewAction"
        behaves like a user cannot unsubscribe through footer link
          does not have a List-Unsubscribe header or a body link
        behaves like appearance header and footer enabled
          contains header and footer
        behaves like appearance header and footer not enabled
          does not contain header and footer
        when expiration date is one day away
          contains all the useful information
        when expiration date is more than one day away
          contains all the useful information
        when a group member is newly given an expiration date
          contains all the useful information
      when expiration date is removed
        contains all the useful information
        behaves like an email sent from GitLab
          has the characteristics of an email sent from GitLab
        behaves like it should not have Gmail Actions links
          is expected not to have body including "ViewAction"
        behaves like a user cannot unsubscribe through footer link
          does not have a List-Unsubscribe header or a body link
        behaves like appearance header and footer enabled
          contains header and footer
        behaves like appearance header and footer not enabled
          does not contain header and footer
    membership about to expire
      with group membership
        contains all the useful information
        behaves like an email sent from GitLab
          has the characteristics of an email sent from GitLab
        behaves like it should not have Gmail Actions links
          is expected not to have body including "ViewAction"
        behaves like a user cannot unsubscribe through footer link
          does not have a List-Unsubscribe header or a body link
        behaves like appearance header and footer enabled
          contains header and footer
        behaves like appearance header and footer not enabled
          does not contain header and footer
      with project membership
        contains all the useful information
        behaves like an email sent from GitLab
          has the characteristics of an email sent from GitLab
        behaves like it should not have Gmail Actions links
          is expected not to have body including "ViewAction"
        behaves like a user cannot unsubscribe through footer link
          does not have a List-Unsubscribe header or a body link
        behaves like appearance header and footer enabled
          contains header and footer
        behaves like appearance header and footer not enabled
          does not contain header and footer
      with expired membership
        not deliver expiry email
      with expiry notified membership
        not deliver expiry email
    admin notification
      is sent as the author
      is sent to recipient
      has the correct subject
      includes unsubscribe link
# [RSpecRunTime] RSpec elapsed time: 8 minutes 36.14 seconds. Current RSS: ~1400M. Threads: 4. load average: 1.19 1.16 1.25 1/277 2577
.

  confirmation if email changed
    is sent to the new user
    has the correct subject and body
    behaves like an email sent from GitLab
      has the characteristics of an email sent from GitLab
# [RSpecRunTime] RSpec elapsed time: 8 minutes 37.84 seconds. Current RSS: ~1395M. Threads: 4. load average: 1.19 1.16 1.25 1/277 2578
.

    behaves like a user cannot unsubscribe through footer link
      does not have a List-Unsubscribe header or a body link
  email on push for a created branch
    is sent as the author
    has the correct subject and body
    behaves like it should not have Gmail Actions links
      is expected not to have body including "ViewAction"
    behaves like a user cannot unsubscribe through footer link
      does not have a List-Unsubscribe header or a body link
    behaves like an email with X-GitLab headers containing project details
      has X-GitLab-Project headers
    behaves like an email that contains a header with author username
      has X-GitLab-Author header containing author's username
    behaves like appearance header and footer enabled
      contains header and footer
    behaves like appearance header and footer not enabled
      does not contain header and footer
  email on push for a created tag
    is sent as the author
    has the correct subject and body
    behaves like it should not have Gmail Actions links
      is expected not to have body including "ViewAction"
    behaves like a user cannot unsubscribe through footer link
      does not have a List-Unsubscribe header or a body link
    behaves like an email with X-GitLab headers containing project details
      has X-GitLab-Project headers
    behaves like an email that contains a header with author username
      has X-GitLab-Author header containing author's username
    behaves like appearance header and footer enabled
      contains header and footer
    behaves like appearance header and footer not enabled
      does not contain header and footer
  email on push for a deleted branch
    is sent as the author
    has the correct subject
    behaves like it should not have Gmail Actions links
      is expected not to have body including "ViewAction"
    behaves like a user cannot unsubscribe through footer link
      does not have a List-Unsubscribe header or a body link
    behaves like an email with X-GitLab headers containing project details
      has X-GitLab-Project headers
    behaves like an email that contains a header with author username
      has X-GitLab-Author header containing author's username
    behaves like appearance header and footer enabled
      contains header and footer
    behaves like appearance header and footer not enabled
      does not contain header and footer
  email on push for a deleted tag
    is sent as the author
    has the correct subject
    behaves like it should not have Gmail Actions links
      is expected not to have body including "ViewAction"
    behaves like a user cannot unsubscribe through footer link
      does not have a List-Unsubscribe header or a body link
    behaves like an email with X-GitLab headers containing project details
      has X-GitLab-Project headers
    behaves like an email that contains a header with author username
      has X-GitLab-Author header containing author's username
    behaves like appearance header and footer enabled
      contains header and footer
    behaves like appearance header and footer not enabled
      does not contain header and footer
  email on push with multiple commits
    is sent as the author
    has the correct subject and body
    behaves like it should not have Gmail Actions links
      is expected not to have body including "ViewAction"
# [RSpecRunTime] RSpec elapsed time: 8 minutes 48.71 seconds. Current RSS: ~1421M. Threads: 4. load average: 1.16 1.16 1.25 1/283 2673
.

    behaves like a user cannot unsubscribe through footer link
      does not have a List-Unsubscribe header or a body link
    behaves like an email with X-GitLab headers containing project details
      has X-GitLab-Project headers
    behaves like an email that contains a header with author username
      has X-GitLab-Author header containing author's username
    behaves like appearance header and footer enabled
      contains header and footer
    behaves like appearance header and footer not enabled
      does not contain header and footer
    when set to send from committer email if domain matches
      when the committer email domain is within the GitLab domain
        is sent from the committer email
      when the committer email domain is not completely within the GitLab domain
        is sent from the default email
      when the committer email domain is outside the GitLab domain
        is sent from the default email
  email on push with a single commit
    is sent as the author
    has the correct subject and body
    behaves like it should show Gmail Actions View Commit link
      is expected to have body including "View Commit"
      behaves like it should have Gmail Actions links
        is expected to have body including "ViewAction"
# [RSpecRunTime] RSpec elapsed time: 8 minutes 55.7 seconds. Current RSS: ~1394M. Threads: 4. load average: 1.13 1.15 1.25 1/283 3038
.

    behaves like a user cannot unsubscribe through footer link
      does not have a List-Unsubscribe header or a body link
    behaves like an email with X-GitLab headers containing project details
      has X-GitLab-Project headers
    behaves like an email that contains a header with author username
      has X-GitLab-Author header containing author's username
    behaves like appearance header and footer enabled
      contains header and footer
    behaves like appearance header and footer not enabled
      does not contain header and footer
  HTML emails setting
    behaves like appearance header and footer enabled
      contains header and footer
    behaves like appearance header and footer not enabled
      does not contain header and footer
    when disabled
      only sends the text template
    when enabled
      sends a multipart message
  for personal snippet notes
    has the correct subject
    has the correct body
    links to the personal snippet
    behaves like a user cannot unsubscribe through footer link
      does not have a List-Unsubscribe header or a body link
# [RSpecRunTime] RSpec elapsed time: 9 minutes 1.5 seconds. Current RSS: ~1398M. Threads: 4. load average: 1.20 1.16 1.25 1/283 3189
.

    behaves like appearance header and footer enabled
      contains header and footer
    behaves like appearance header and footer not enabled
      does not contain header and footer
  merge request reviews
    is sent to the given recipient as the author
    contains the message from the notes of the review
    contains review author name
    has the correct subject and body
    behaves like an answer to an existing thread with reply-by-email enabled
      has X-GitLab-Project headers
      has X-GitLab-*-ID header
      has X-GitLab-*-IID header if model has iid defined
      has X-GitLab-*-State header if model has state defined
      has X-GitLab-Project headers
      has X-GitLab-*-ID header
      has X-GitLab-*-IID header if model has iid defined
      has X-GitLab-*-State header if model has state defined
      has the characteristics of a threaded reply
      when reply-by-email is enabled with incoming address with %{key}
        has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 9 minutes 12.72 seconds. Current RSS: ~1397M. Threads: 4. load average: 1.25 1.18 1.25 1/278 3190
.

      when reply-by-email is enabled with incoming address without %{key}
        has X-GitLab-Project headers
        has X-GitLab-*-ID header
        has X-GitLab-*-IID header if model has iid defined
        has X-GitLab-*-State header if model has state defined
        has the characteristics of a threaded reply
        has a Reply-To header
# [RSpecRunTime] RSpec elapsed time: 9 minutes 17.18 seconds. Current RSS: ~1400M. Threads: 4. load average: 1.23 1.17 1.25 1/278 3191
.

    behaves like it should show Gmail Actions View Merge request link
      is expected to have body including "View Merge request"
      behaves like it should have Gmail Actions links
        is expected to have body including "ViewAction"
# [RSpecRunTime] RSpec elapsed time: 9 minutes 18.76 seconds. Current RSS: ~1401M. Threads: 4. load average: 1.23 1.17 1.25 1/278 3192
.

    behaves like an unsubscribeable thread
      has a List-Unsubscribe header in the correct format, and a body link
      behaves like an unsubscribeable thread with incoming address without %{key}
        has a List-Unsubscribe header in the correct format, and a body link
# [RSpecRunTime] RSpec elapsed time: 9 minutes 20.32 seconds. Current RSS: ~1401M. Threads: 4. load average: 1.23 1.17 1.25 1/278 3193
.

    when diff note
      links to notes and discussions
      includes only one link to the highlighted_diff_email
      avoids N+1 cached queries when rendering html
      avoids N+1 cached queries when rendering text
# [RSpecRunTime] RSpec elapsed time: 9 minutes 26.72 seconds. Current RSS: ~1400M. Threads: 4. load average: 1.28 1.18 1.25 1/283 3371
.

  rate limiting
    stops sending notifications and notifies the user of the rate limit only once
    when rate_limit_notification_emails is disabled
      does not stop sending of notifications
# [RSpecRunTime] RSpec elapsed time: 9 minutes 29.18 seconds. Current RSS: ~1397M. Threads: 4. load average: 1.28 1.18 1.25 1/283 3372
.


# [RSpecRunTime] Finishing example group spec/mailers/notify_spec.rb. It took 9 minutes 22.4 seconds. Expected to take 8 minutes 56.75 seconds.
# [RSpecRunTime] Starting example group spec/requests/api/users_spec.rb. Expected to take 3 minutes 17.83 seconds.

API::Users
  admin notes
    POST /users
      behaves like POST request permissions for admin mode
        behaves like when admin
          behaves like makes request
            returns
# [RSpecRunTime] RSpec elapsed time: 9 minutes 36.74 seconds. Current RSS: ~1397M. Threads: 5. load average: 1.31 1.19 1.26 1/279 3415
.

          behaves like makes request
            returns
        behaves like when user
          returns
          behaves like makes request
            returns
      when unauthenticated
        return authentication error
      when authenticated
        as an admin
          contains the note of the user
        as a regular user
          does not allow creating new user
    PUT /users/:id
      behaves like PUT request permissions for admin mode
        behaves like when admin
          behaves like makes request
            returns
          behaves like makes request
            returns
        behaves like when user
          returns
          behaves like makes request
            returns
      when user is an admin
        updates note of the user
      when user is not an admin
        cannot update their own note
    PATCH /users/:id/disable_two_factor
      when current user is an admin
        returns a 204 when 2FA is disabled for the target user
        uses TwoFactor Destroy Service
        returns a 400 if 2FA is not enabled for the target user
        returns a 403 if the target user is an admin
        returns a 404 if the target user cannot be found
# [RSpecRunTime] RSpec elapsed time: 9 minutes 40.9 seconds. Current RSS: ~1440M. Threads: 5. load average: 1.36 1.21 1.26 1/279 3416
.

      when current user is not an admin
        returns a 403
      when unauthenticated
        returns a 401
    GET /users/
      when unauthenticated
        does not contain certain fields
      when authenticated
        still supports offset pagination when keyset pagination params are not provided
        as a regular user
          does not contain certain fields
        as an admin
          contains the note of users
          with `created_by` details
            has created_by as nil with a self-registered account
            is created_by a user and has those details
# [RSpecRunTime] RSpec elapsed time: 9 minutes 43.3 seconds. Current RSS: ~1437M. Threads: 5. load average: 1.36 1.21 1.26 1/279 3417
.

        with search parameter
          prioritizes username match
          preserves requested ordering with order_by and sort
          preserves requested ordering with sort
        N+1 queries
          avoids N+1 queries when requested by admin
          avoids N+1 queries when requested by a regular user
# [RSpecRunTime] RSpec elapsed time: 9 minutes 46.03 seconds. Current RSS: ~1435M. Threads: 5. load average: 1.33 1.20 1.26 1/279 3418
.

        behaves like an endpoint with keyset pagination
          on making requests with supported ordering structure
            includes keyset url params in the url response
            does not include pagination headers
            paginates the records correctly
    GET /user
      when authenticated
        as an admin
          accesses their own profile
            contains the note of the user
          sudo
            accesses the profile of another regular user
              does not contain the note of the user
            accesses the profile of another admin
              contains the note of the user
        as a regular user
          does not contain the note of the user
  GET /users
    when unauthenticated
      returns authorization error when the `username` parameter is not passed
      returns the user when a valid `username` parameter is passed
      returns the user when a valid `username` parameter is passed (case insensitive)
      returns an empty response when an invalid `username` parameter is passed
      does not return the highest role
      does not return the current or last sign-in ip addresses
      when public level is restricted
        returns authorization error when the `username` parameter refers to an inaccessible user
        returns authorization error when the `username` parameter is not passed
# [RSpecRunTime] RSpec elapsed time: 9 minutes 49.07 seconds. Current RSS: ~1453M. Threads: 5. load average: 1.33 1.20 1.26 1/279 3419
.

    when authenticated
      returns an array of users
      returns an array of blocked users
      returns an array of external users
      returns one user
      returns one user (case insensitive)
      returns a 403 when non-admin user searches by external UID
      does not reveal the `is_admin` flag of the user
      when public level is restricted
        when authenticate as a regular user
          renders 200
# [RSpecRunTime] RSpec elapsed time: 9 minutes 51.82 seconds. Current RSS: ~1445M. Threads: 5. load average: 1.31 1.20 1.26 1/279 3420
.

        when authenticate as an admin
          renders 200
    when admin
      exclude_internal param
        returns all users when it is not set
        returns all non internal users when it is set
      without_project_bots param
        returns all users when it is not set
        returns all non project_bot users when it is set
      admins param
        returns all users
    when admin
      returns an array of users
      users contain the `namespace_id` field
      returns an array of external users
      returns one user by external UID
      returns 400 error if provider with no extern_uid
      returns 400 error if provider with no extern_uid
      returns a user created before a specific date
      returns no users created before a specific date
      returns users created before and after a specific date
      returns the correct order when sorted by id
      returns users with 2fa enabled
      returns users without projects
      returns 400 when provided incorrect sort params
      when sudo is defined
        does not return 500
# [RSpecRunTime] RSpec elapsed time: 9 minutes 58.69 seconds. Current RSS: ~1447M. Threads: 5. load average: 1.28 1.20 1.26 1/279 3421
.

    admins param
      returns only admins
  GET /users/:id
    returns a user by id
    does not return the user's `is_admin` flag
    does not return the user's `highest_role`
    does not return the user's sign in IPs
    does not contain plan or trial data
    returns a 404 if the target user is present but inaccessible
    returns the `created_at` field for public users
    does not return the `created_at` field for private users
    returns the `followers` field for public users
    does not return the `followers` field for private users
    returns the `following` field for public users
    does not return the `following` field for private users
    does not contain the note of the user
    returns a 404 error if user id not found
    returns a 404 for invalid ID
    when the rate limit is not exceeded
      returns a success status
# [RSpecRunTime] RSpec elapsed time: 10 minutes 2.6 seconds. Current RSS: ~1458M. Threads: 5. load average: 1.26 1.19 1.26 1/279 3422
.

    when the rate limit is exceeded
      when feature flag is enabled
        returns "too many requests" status
        still allows admin users
        allows users whose username is in the allowlist
    when job title is present
      returns job title of a user
    when authenticated as admin
      contains the note of the user
      includes the `is_admin` field
      includes the `created_at` field for private users
      includes the `highest_role` field
      includes the `namespace_id` field
      does not include values for plan or trial
      when user has not logged in
        does not include the sign in IPs
# [RSpecRunTime] RSpec elapsed time: 10 minutes 5.3 seconds. Current RSS: ~1458M. Threads: 5. load average: 1.26 1.19 1.26 1/279 3423
.

      when user has logged in
        includes the sign in IPs
    for an anonymous user
      returns 403
  GET /users/:id_or_username/status
    when finding the user by id
      behaves like rendering user status
        returns the status if there was one
        returns an empty response if there was no status
    when finding the user by username
      behaves like rendering user status
        returns the status if there was one
        returns an empty response if there was no status
    when finding the user by username (case insensitive)
      behaves like rendering user status
        returns the status if there was one
        returns an empty response if there was no status
    when the rate limit has been reached
      returns status 429 Too Many Requests
  POST /users/:id/follow
    on an unfollowed user
WARNING: Active Record does not support composite primary key.

user_follow_users has composite primary key. Composite primary key is ignored.
      follows the user
      alerts and not follow when over followee limit
    on a followed user
      does not change following
    on a user with disabled following
      does not change following
# [RSpecRunTime] RSpec elapsed time: 10 minutes 10.15 seconds. Current RSS: ~1461M. Threads: 5. load average: 1.24 1.19 1.25 1/279 3424
.

  POST /users/:id/unfollow
    on a followed user
      unfollow the user
    on an unfollowed user
      does not change following
  GET /users/:id/followers
    for an anonymous user
      returns 403
    user has followers
      lists followers
      do not lists followers if profile is private
    user does not have any follower
      does list nothing
  GET /users/:id/following
    for an anonymous user
      returns 403
    user has followers
      lists following user
      do not lists following user if profile is private
    user does not have any follower
      does list nothing
    when the rate limit has been reached
      returns status 429 Too Many Requests
  POST /users
    creates user
    creates user with correct attributes
    creates user with optional attributes
    creates non-admin user
    creates non-admin users by default
    returns 201 Created on success
    creates non-external users by default
    allows an external user to be created
    creates user with reset password
    creates user with random password
    creates user with private profile
    creates user with view_diffs_file_by_file
    creates user with avatar
    does not create user with invalid email
    returns 400 error if name not given
    returns 400 error if password not given
    returns 400 error if email not given
    returns 400 error if username not given
    doesn't create user with invalid optional attributes
    returns 400 error if user does not validate
    tracks weak password errors
    is not available for non admin users
    behaves like POST request permissions for admin mode
      behaves like when admin
        behaves like makes request
          returns
# [RSpecRunTime] RSpec elapsed time: 10 minutes 20.23 seconds. Current RSS: ~1509M. Threads: 5. load average: 1.20 1.18 1.25 4/279 3425
.

        behaves like makes request
          returns
      behaves like when user
        returns
        behaves like makes request
          returns
    with existing user
      returns 409 conflict error if user with same email exists
      returns 409 conflict error if same username exists
      returns 409 conflict error if same username exists (case insensitive)
      creates user with new identity
# [RSpecRunTime] RSpec elapsed time: 10 minutes 23.03 seconds. Current RSS: ~1512M. Threads: 5. load average: 1.18 1.18 1.25 1/279 3426
.

    when user with a primary email exists
      when the primary email is confirmed
        returns 409 conflict error
      when the primary email is unconfirmed
        returns 409 conflict error
    when user with a secondary email exists
      when the secondary email is confirmed
        returns 409 conflict error
      when the secondary email is unconfirmed
        does not create user
    scopes
      when the requesting token has the "read_user" scope
        returns a "403" response
    `private_profile` attribute
      based on the application setting
        when the attribute is not overridden in params
          behaves like creates the user with the value of `private_profile` based on the application setting
            is expected to be present
        when the attribute is overridden in params
          creates the user with the value of `private_profile` same as the value of the overridden param
          overridden as `nil`
            behaves like creates the user with the value of `private_profile` based on the application setting
              is expected to be present
  PUT /users/:id
    returns 200 OK on success
    updates user with new bio
    updates user with empty bio
    updates user with nil bio
    updates user with organization
    updates user with avatar
    updates user with a new email
    skips reconfirmation when requested
    updates user with their own username
    updates user's existing identity
    updates user with new identity
    updates admin status
    updates external status
    does have default values for theme and color-scheme ID
    updates viewing diffs file by file
    does not modify theme or color-scheme ID when field is not provided
    does not update admin status
    does not allow invalid update
    updates theme id
    does not update invalid theme id
    updates color scheme id
    does not update invalid color scheme id
    returns 404 for non-existing user
    returns a 404 if invalid ID
    returns 400 error if user does not validate
    returns 400 if provider is missing for identity update
    returns 400 if external UID is missing for identity update
    behaves like PUT request permissions for admin mode
      behaves like when admin
        behaves like makes request
          returns
# [RSpecRunTime] RSpec elapsed time: 10 minutes 33.67 seconds. Current RSS: ~1527M. Threads: 5. load average: 1.08 1.16 1.24 1/279 3427
.

        behaves like makes request
          returns
      behaves like when user
        returns
        behaves like makes request
          returns
    updating password
      admin updates their own password
        does not force reset on next login
        does not enqueue the `admin changed your password` email
        enqueues the `password changed` email
      admin updates the password of another user
        forces reset on next login
        enqueues the `admin changed your password` email
        does not enqueue the `password changed` email
      with a weak password
        tracks weak password errors
    updating `private_profile`
      updates private profile
      does not modify private profile when field is not provided
      when `private_profile` is set to `nil`
        updates private_profile to value of the application setting
    when the current user is not an admin
      is not available
    with existing user
      returns 409 conflict error if email address exists
      returns 409 conflict error if username taken
      returns 409 conflict error if username taken (case insensitive)
# [RSpecRunTime] RSpec elapsed time: 10 minutes 39.38 seconds. Current RSS: ~1533M. Threads: 5. load average: 1.16 1.17 1.25 1/279 3428
.

    when user with a primary email exists
      when the primary email is confirmed
        returns 409 conflict error
      when the primary email is unconfirmed
        returns 409 conflict error
    when user with a secondary email exists
      when the secondary email is confirmed
        returns 409 conflict error
      when the secondary email is unconfirmed
        does not update email
  PUT /user/:id/credit_card_validation
    behaves like PUT request permissions for admin mode
      behaves like when admin
        behaves like makes request
          returns
        behaves like makes request
          returns
      behaves like when user
        returns
        behaves like makes request
          returns
    when unauthenticated
      returns authentication error
    when authenticated as non-admin
      does not allow updating user's credit card validation
    when authenticated as admin
      updates user's credit card validation
      returns 400 error if credit_card_validated_at is missing
      returns 404 error if user not found
  DELETE /users/:id/identities/:provider
    behaves like DELETE request permissions for admin mode
      behaves like when admin
        behaves like makes request
          returns
        behaves like makes request
          returns
      behaves like when user
        returns
        behaves like makes request
          returns
    when unauthenticated
      returns authentication error
    when authenticated
      deletes identity of given provider
      returns 404 error if user not found
      returns 404 error if identity not found
      behaves like 412 response
        for a modified resource
          returns 412 with a JSON error
# [RSpecRunTime] RSpec elapsed time: 10 minutes 45.79 seconds. Current RSS: ~1536M. Threads: 5. load average: 1.14 1.17 1.24 1/279 3429
.

        for an unmodified resource
          returns 204 with an empty body
  POST /users/:id/keys
    does not create invalid ssh key
    does not create key without title
    creates ssh key
    creates SSH key with `expires_at` attribute
    returns 400 for invalid ID
    behaves like POST request permissions for admin mode
      behaves like when admin
        behaves like makes request
          returns
# [RSpecRunTime] RSpec elapsed time: 10 minutes 47.58 seconds. Current RSS: ~1534M. Threads: 5. load average: 1.14 1.17 1.24 1/279 3430
.

        behaves like makes request
          returns
      behaves like when user
        returns
        behaves like makes request
          returns
  GET /users/:id/project_deploy_keys
    returns 404 for non-existing user
    returns array of project deploy keys with pagination
    forbids when a developer fetches maintainer keys
    with multiple projects
      when no common projects for user and current_user
        forbids
# [RSpecRunTime] RSpec elapsed time: 10 minutes 52.63 seconds. Current RSS: ~1529M. Threads: 5. load average: 1.13 1.16 1.24 1/279 3431
.

      when there are common projects for user and current_user
        lists only common project keys
        lists only project_deploy_keys and not user deploy_keys
        avoids N+1 queries
# [RSpecRunTime] RSpec elapsed time: 10 minutes 58.66 seconds. Current RSS: ~1487M. Threads: 5. load average: 1.12 1.16 1.24 1/279 3432
.

  GET /user/:id/keys
    returns 404 for non-existing user
    returns array of ssh keys
    returns array of ssh keys with comments replaced witha simple identifier of username + hostname
    N+1 queries
      avoids N+1 queries
    when the rate limit has been reached
      returns status 429 Too Many Requests
  GET /user/:user_id/keys
    returns 404 for non-existing user
    returns array of ssh keys
    when the rate limit has been reached
      returns status 429 Too Many Requests
  GET /user/:id/keys/:key_id
    gets existing key
    returns 404 error if user not found
    returns 404 error if key not found
    when the rate limit has been reached
      returns status 429 Too Many Requests
  DELETE /user/:id/keys/:key_id
    behaves like DELETE request permissions for admin mode
      behaves like when admin
        behaves like makes request
          returns
        behaves like makes request
          returns
      behaves like when user
        returns
        behaves like makes request
          returns
    when unauthenticated
      returns authentication error
    when authenticated
      deletes existing key
      returns 404 error if user not found
      returns 404 error if key not foud
      behaves like 412 response
        for a modified resource
          returns 412 with a JSON error
        for an unmodified resource
          returns 204 with an empty body
  POST /users/:id/gpg_keys
    does not create invalid GPG key
    creates GPG key
    returns 400 for invalid ID
    behaves like POST request permissions for admin mode
      behaves like when admin
        behaves like makes request
          returns
# [RSpecRunTime] RSpec elapsed time: 11 minutes 7.54 seconds. Current RSS: ~1495M. Threads: 5. load average: 1.17 1.17 1.24 1/279 3535
.

        behaves like makes request
          returns
      behaves like when user
        returns
        behaves like makes request
          returns
  GET /user/:id/gpg_keys
    returns 404 for non-existing user
    returns array of GPG keys
    when the rate limit has been reached
      returns status 429 Too Many Requests
# [RSpecRunTime] RSpec elapsed time: 11 minutes 9.38 seconds. Current RSS: ~1497M. Threads: 5. load average: 1.17 1.17 1.24 1/279 3556
.

  GET /user/:id/gpg_keys/:key_id
    returns 404 for non-existing user
    returns 404 for non-existing key
    returns a single GPG key
    when the rate limit has been reached
      returns status 429 Too Many Requests
# [RSpecRunTime] RSpec elapsed time: 11 minutes 10.81 seconds. Current RSS: ~1500M. Threads: 5. load average: 1.32 1.20 1.25 1/279 3577
.

  DELETE /user/:id/gpg_keys/:key_id
    behaves like DELETE request permissions for admin mode
      behaves like when admin
        behaves like makes request
          returns
        behaves like makes request
          returns
      behaves like when user
        returns
        behaves like makes request
          returns
    when unauthenticated
      returns authentication error
    when authenticated
      deletes existing key
      returns 404 error if user not found
      returns 404 error if key not foud
# [RSpecRunTime] RSpec elapsed time: 11 minutes 13.33 seconds. Current RSS: ~1503M. Threads: 5. load average: 1.32 1.20 1.25 1/279 3598
.

  POST /user/:id/gpg_keys/:key_id/revoke
    behaves like POST request permissions for admin mode
      behaves like when admin
        behaves like makes request
          returns
        behaves like makes request
          returns
      behaves like when user
        returns
        behaves like makes request
          returns
    when unauthenticated
      returns authentication error
    when authenticated
      revokes existing key
      returns 404 error if user not found
      returns 404 error if key not foud
# [RSpecRunTime] RSpec elapsed time: 11 minutes 16.58 seconds. Current RSS: ~1505M. Threads: 5. load average: 1.29 1.20 1.25 1/279 3639
.

  POST /users/:id/emails
    does not create invalid email
    creates unverified email
    returns a 400 for invalid ID
    creates verified email
    behaves like POST request permissions for admin mode
      behaves like when admin
        behaves like makes request
          returns
# [RSpecRunTime] RSpec elapsed time: 11 minutes 18.04 seconds. Current RSS: ~1507M. Threads: 5. load average: 1.29 1.20 1.25 1/279 3640
.

        behaves like makes request
          returns
      behaves like when user
        returns
        behaves like makes request
          returns
    when user with a primary email exists
      when the primary email is confirmed
        returns 400 error
      when the primary email is unconfirmed
        returns 400 error
    when user with a secondary email exists
      when the secondary email is confirmed
        returns 400 error
      when the secondary email is unconfirmed
        returns 400 error
  GET /user/:id/emails
    when unauthenticated
      returns authentication error
    when authenticated
      returns 404 for non-existing user
      returns array of emails
      returns a 404 for invalid ID
  DELETE /user/:id/emails/:email_id
    behaves like DELETE request permissions for admin mode
      behaves like when admin
        behaves like makes request
          returns
        behaves like makes request
          returns
      behaves like when user
        returns
        behaves like makes request
          returns
    when unauthenticated
      returns authentication error
    when authenticated
      deletes existing email
      returns 404 error if user not found
      returns 404 error if email not foud
      returns a 404 for invalid ID
      behaves like 412 response
        for a modified resource
          returns 412 with a JSON error
        for an unmodified resource
          returns 204 with an empty body
  DELETE /users/:id
    deletes user
    does not delete for unauthenticated user
    is not available for non admin users
    returns 404 for non-existing user
    returns a 404 for invalid ID
    behaves like DELETE request permissions for admin mode
      behaves like when admin
        behaves like makes request
          returns
# [RSpecRunTime] RSpec elapsed time: 11 minutes 24.95 seconds. Current RSS: ~1514M. Threads: 5. load average: 1.27 1.19 1.25 1/279 3641
.

        behaves like makes request
          returns
      behaves like when user
        returns
        behaves like makes request
          returns
    sole owner of a group
      hard delete disabled
        does not delete user
      hard delete enabled
        delete user and group
        with subgroup owning
          delete only user
# [RSpecRunTime] RSpec elapsed time: 11 minutes 29.33 seconds. Current RSS: ~1512M. Threads: 6. load average: 1.25 1.19 1.25 1/280 3645
.

    behaves like 412 response
      for a modified resource
        returns 412 with a JSON error
      for an unmodified resource
        returns 204 with an empty body
    hard delete disabled
      moves contributions to the ghost user
    hard delete enabled
      removes contributions
  GET /user
    behaves like get user info
      with regular user
        returns current user without private token when sudo not defined
        with personal access token
          returns 403 without private token when sudo is defined
        scopes
          for personal access tokens
            when the requesting token has the "api" scope
              returns a "200" response on get request
              returns a "200" response on head request
            when the requesting token has the "read_user" scope
              returns a "200" response on get request
              returns a "200" response on head request
            when the requesting token does not have any required scope
              returns a "403" response
          for doorkeeper (OAuth) tokens
            when the requesting token has the "api" scope
              returns a "200" response on get request
              returns a "200" response on head request
            when the requesting token has the "read_user" scope
              returns a "200" response on get request
              returns a "200" response on head request
            when the requesting token does not have any required scope
              returns a "403" response
      with admin
        with personal access token
          returns 403 without private token when sudo defined
          returns initial current user without private token but with is_admin when sudo not defined
      with unauthenticated user
        returns 401 error if user is unauthenticated
    behaves like get user info
      with regular user
        returns current user without private token when sudo not defined
        with personal access token
          returns 403 without private token when sudo is defined
        scopes
          for personal access tokens
            when the requesting token has the "api" scope
              returns a "200" response on get request
              returns a "200" response on head request
            when the requesting token has the "read_user" scope
              returns a "200" response on get request
              returns a "200" response on head request
            when the requesting token does not have any required scope
              returns a "403" response
          for doorkeeper (OAuth) tokens
            when the requesting token has the "api" scope
              returns a "200" response on get request
              returns a "200" response on head request
            when the requesting token has the "read_user" scope
              returns a "200" response on get request
              returns a "200" response on head request
            when the requesting token does not have any required scope
              returns a "403" response
      with admin
        with personal access token
          returns 403 without private token when sudo defined
          returns initial current user without private token but with is_admin when sudo not defined
      with unauthenticated user
        returns 401 error if user is unauthenticated
  GET /user/preferences
    when unauthenticated
      returns authentication error
    when authenticated
      returns user preferences
  PUT /user/preferences
    when unauthenticated
      returns authentication error
    when authenticated
      updates user preferences
  GET /user/keys
    when unauthenticated
      returns authentication error
    when authenticated
      returns array of ssh keys
      returns array of ssh keys with comments replaced witha simple identifier of username + hostname
      N+1 queries
        avoids N+1 queries
      scopes
        for personal access tokens
          when the requesting token has the "api" scope
            returns a "200" response on get request
            returns a "200" response on head request
          when the requesting token has the "read_user" scope
            returns a "200" response on get request
            returns a "200" response on head request
          when the requesting token does not have any required scope
            returns a "403" response
        for doorkeeper (OAuth) tokens
          when the requesting token has the "api" scope
            returns a "200" response on get request
            returns a "200" response on head request
          when the requesting token has the "read_user" scope
            returns a "200" response on get request
            returns a "200" response on head request
          when the requesting token does not have any required scope
            returns a "403" response
  GET /user/keys/:key_id
    returns single key
    exposes SSH key comment as a simple identifier of username + hostname
    returns 404 Not Found within invalid ID
    returns 404 error if admin accesses user's ssh key
    returns 404 for invalid ID
    scopes
      for personal access tokens
        when the requesting token has the "api" scope
          returns a "200" response on get request
          returns a "200" response on head request
# [RSpecRunTime] RSpec elapsed time: 11 minutes 41.65 seconds. Current RSS: ~1534M. Threads: 6. load average: 1.19 1.18 1.24 1/280 3646
.

        when the requesting token has the "read_user" scope
          returns a "200" response on get request
          returns a "200" response on head request
        when the requesting token does not have any required scope
          returns a "403" response
      for doorkeeper (OAuth) tokens
        when the requesting token has the "api" scope
          returns a "200" response on get request
          returns a "200" response on head request
        when the requesting token has the "read_user" scope
          returns a "200" response on get request
          returns a "200" response on head request
        when the requesting token does not have any required scope
          returns a "403" response
  POST /user/keys
    creates ssh key
    creates SSH key with `expires_at` attribute
    returns a 401 error if unauthorized
    does not create ssh key without key
    does not create ssh key without title
    does not create ssh key without title
# [RSpecRunTime] RSpec elapsed time: 11 minutes 44.47 seconds. Current RSS: ~1531M. Threads: 6. load average: 1.19 1.18 1.24 1/280 3647
.

  DELETE /user/keys/:key_id
    deletes existed key
    returns 404 if key ID not found
    returns 401 error if unauthorized
    returns a 404 for invalid ID
    behaves like 412 response
      for a modified resource
        returns 412 with a JSON error
      for an unmodified resource
        returns 204 with an empty body
  GET /user/gpg_keys
    when unauthenticated
      returns authentication error
    when authenticated
      returns array of GPG keys
      scopes
        for personal access tokens
          when the requesting token has the "api" scope
            returns a "200" response on get request
            returns a "200" response on head request
# [RSpecRunTime] RSpec elapsed time: 11 minutes 47.0 seconds. Current RSS: ~1528M. Threads: 6. load average: 1.18 1.18 1.24 3/280 3668
.

          when the requesting token has the "read_user" scope
            returns a "200" response on get request
            returns a "200" response on head request
          when the requesting token does not have any required scope
            returns a "403" response
        for doorkeeper (OAuth) tokens
          when the requesting token has the "api" scope
            returns a "200" response on get request
            returns a "200" response on head request
          when the requesting token has the "read_user" scope
            returns a "200" response on get request
            returns a "200" response on head request
          when the requesting token does not have any required scope
            returns a "403" response
  GET /user/gpg_keys/:key_id
    returns a single key
    returns 404 Not Found within invalid ID
    returns 404 error if admin accesses user's GPG key
    returns 404 for invalid ID
    scopes
      for personal access tokens
        when the requesting token has the "api" scope
          returns a "200" response on get request
          returns a "200" response on head request
# [RSpecRunTime] RSpec elapsed time: 11 minutes 51.3 seconds. Current RSS: ~1530M. Threads: 6. load average: 1.24 1.19 1.25 1/280 3709
.

        when the requesting token has the "read_user" scope
          returns a "200" response on get request
          returns a "200" response on head request
        when the requesting token does not have any required scope
          returns a "403" response
      for doorkeeper (OAuth) tokens
        when the requesting token has the "api" scope
          returns a "200" response on get request
          returns a "200" response on head request
        when the requesting token has the "read_user" scope
          returns a "200" response on get request
          returns a "200" response on head request
        when the requesting token does not have any required scope
          returns a "403" response
  POST /user/gpg_keys
    creates a GPG key
    returns a 401 error if unauthorized
    does not create GPG key without key
# [RSpecRunTime] RSpec elapsed time: 11 minutes 55.5 seconds. Current RSS: ~1528M. Threads: 6. load average: 1.22 1.19 1.25 1/280 3761
.

  POST /user/gpg_keys/:key_id/revoke
    revokes existing GPG key
    returns 404 if key ID not found
    returns 401 error if unauthorized
    returns a 404 for invalid ID
# [RSpecRunTime] RSpec elapsed time: 11 minutes 57.65 seconds. Current RSS: ~1527M. Threads: 6. load average: 1.22 1.19 1.25 1/281 3802
.

  DELETE /user/gpg_keys/:key_id
    deletes existing GPG key
    returns 404 if key ID not found
    returns 401 error if unauthorized
    returns a 404 for invalid ID
# [RSpecRunTime] RSpec elapsed time: 11 minutes 59.88 seconds. Current RSS: ~1525M. Threads: 6. load average: 1.22 1.19 1.25 1/281 3843
.

  GET /user/emails
    when unauthenticated
      returns authentication error
    when authenticated
      returns array of emails
      scopes
        for personal access tokens
          when the requesting token has the "api" scope
            returns a "200" response on get request
            returns a "200" response on head request
          when the requesting token has the "read_user" scope
            returns a "200" response on get request
            returns a "200" response on head request
          when the requesting token does not have any required scope
            returns a "403" response
        for doorkeeper (OAuth) tokens
          when the requesting token has the "api" scope
            returns a "200" response on get request
            returns a "200" response on head request
          when the requesting token has the "read_user" scope
            returns a "200" response on get request
            returns a "200" response on head request
          when the requesting token does not have any required scope
            returns a "403" response
  GET /user/emails/:email_id
    returns single email
    returns 404 Not Found within invalid ID
    returns 404 error if admin accesses user's email
    returns 404 for invalid ID
    scopes
      for personal access tokens
        when the requesting token has the "api" scope
          returns a "200" response on get request
          returns a "200" response on head request
        when the requesting token has the "read_user" scope
          returns a "200" response on get request
          returns a "200" response on head request
        when the requesting token does not have any required scope
          returns a "403" response
      for doorkeeper (OAuth) tokens
        when the requesting token has the "api" scope
          returns a "200" response on get request
          returns a "200" response on head request
        when the requesting token has the "read_user" scope
          returns a "200" response on get request
          returns a "200" response on head request
        when the requesting token does not have any required scope
          returns a "403" response
  POST /user/emails
    creates email
    returns a 401 error if unauthorized
    does not create email with invalid email
  DELETE /user/emails/:email_id
    deletes existed email
    returns 404 if email ID not found
    returns 401 error if unauthorized
    returns 400 for invalid ID
    behaves like 412 response
      for a modified resource
        returns 412 with a JSON error
      for an unmodified resource
        returns 204 with an empty body
  activate and deactivate
    POST /users/:id/activate
      behaves like POST request permissions for admin mode
        behaves like when admin
          behaves like makes request
            returns
          behaves like makes request
            returns
        behaves like when user
          returns
          behaves like makes request
            returns
      performed by a non-admin user
        is not authorized to perform the action
      performed by an admin user
        for a deactivated user
          activates a deactivated user
        for an active user
          returns 201
        for a blocked user
          returns 403
        for a ldap blocked user
          returns 403
        for a user that does not exist
          behaves like 404
            returns 404
    POST /users/:id/deactivate
      behaves like POST request permissions for admin mode
        behaves like when admin
          behaves like makes request
            returns
          behaves like makes request
            returns
        behaves like when user
          returns
          behaves like makes request
            returns
      performed by a non-admin user
        is not authorized to perform the action
      performed by an admin user
        for an active user
          with no recent activity
            deactivates an active user
          with recent activity
            does not deactivate an active user
        for a deactivated user
          returns 201
        for a blocked user
          returns 403
        for a ldap blocked user
          returns 403
        for an internal user
          returns 403
        for a user that does not exist
          behaves like 404
            returns 404
  approve and reject pending user
    POST /users/:id/approve
      behaves like POST request permissions for admin mode
        behaves like when admin
          behaves like makes request
            returns
          behaves like makes request
            returns
        behaves like when user
          returns
          behaves like makes request
            returns
      performed by a non-admin user
        is not authorized to perform the action
      performed by an admin user
        for a deactivated user
          does not approve a deactivated user
        for an pending approval user
          returns 201
        for an active user
          returns 201
        for a blocked user
          returns 403
        for a ldap blocked user
          returns 403
        for a user that does not exist
          behaves like 404
            returns 404
    POST /users/:id/reject
      behaves like POST request permissions for admin mode
        behaves like when admin
          behaves like makes request
            returns
          behaves like makes request
            returns
        behaves like when user
          returns
          behaves like makes request
            returns
      performed by a non-admin user
        returns 403
      performed by an admin user
        for an pending approval user
          returns 200
        for a deactivated user
          does not reject a deactivated user
          behaves like returns 409
            returns 409
        for an active user
          does not reject an active user
          behaves like returns 409
            returns 409
        for a blocked user
          does not reject a blocked user
          behaves like returns 409
            returns 409
        for a ldap blocked user
          does not reject a ldap blocked user
          behaves like returns 409
            returns 409
        for a user that does not exist
          behaves like 404
            returns 404
  POST /users/:id/block
    behaves like POST request permissions for admin mode
      behaves like when admin
        behaves like makes request
          returns
        behaves like makes request
          returns
      behaves like when user
        returns
        behaves like makes request
          returns
    when admin
      with an existing user
        blocks existing user
        saves a custom attribute
      with an ldap blocked user
        does not re-block ldap blocked users
      with a non existent user
        does not block non existent user, returns 404
      with an internal user
        does not block internal user, returns 403
      with a blocked user
        returns a 201 if user is already blocked
      with the API initiating user
        does not block the API initiating user, returns 403
    performed by a non-admin user
      returns 403
  POST /users/:id/unblock
    behaves like POST request permissions for admin mode
      behaves like when admin
        behaves like makes request
          returns
        behaves like makes request
          returns
      behaves like when user
        returns
        behaves like makes request
          returns
    when admin
      with an existing user
        unblocks existing user
      with a blocked user
        unblocks a blocked user
        saves a custom attribute
      with a ldap blocked user
        does not unblock ldap blocked users
      with a deactivated user
        does not unblock deactivated users
      with a non existent user
        returns a 404 error if user id not found
      with an invalid user id
        returns a 404
    performed by a non-admin user
      returns 403
  POST /users/:id/ban
    behaves like POST request permissions for admin mode
      behaves like when admin
        behaves like makes request
          returns
        behaves like makes request
          returns
      behaves like when user
        returns
        behaves like makes request
          returns
    when admin
      with an active user
        bans an active user
      with an ldap blocked user
        does not ban ldap blocked users
      with a deactivated user
        does not ban deactivated users
      with a banned user
        does not ban banned users
      with a non existent user
        does not ban non existent users
      with an invalid id
        does not ban invalid id users
    performed by a non-admin user
      returns 403
  POST /users/:id/unban
    behaves like POST request permissions for admin mode
      behaves like when admin
        behaves like makes request
          returns
        behaves like makes request
          returns
      behaves like when user
        returns
        behaves like makes request
          returns
    when admin
      with a banned user
        activates a banned user
      with an ldap_blocked user
        does not unban ldap_blocked users
      with a deactivated user
        does not unban deactivated users
      with an active user
        does not unban active users
      with a non existent user
        does not unban non existent users
      with an invalid id user
        does not unban invalid id users
    performed by a non-admin user
      returns 403
  GET /users/:id/memberships
    behaves like GET request permissions for admin mode
      behaves like when admin
        behaves like makes request
          returns
        behaves like makes request
          returns
      behaves like when user
        returns
        behaves like makes request
          returns
    requested by admin user
      responses successfully
      does not submit N+1 DB queries
      with type filter
        only returns project memberships
        only returns group memberships
        recognizes unsupported types
# [RSpecRunTime] RSpec elapsed time: 12 minutes 36.47 seconds. Current RSS: ~1508M. Threads: 6. load average: 1.27 1.20 1.25 1/281 3844
.

  user activities
    for an anonymous user
      returns 401
    as a logged in user
      returns the activities from the last 6 months
      does not include users with private profiles
      passing a :from parameter
        returns the activities from the given date
    as admin
      includes users with private profiles
  /user/status
    GET
      behaves like rendering user status
        returns the status if there was one
        returns an empty response if there was no status
    PUT
      when request is successful
        saves the status
      when request is unsuccessful
        renders errors
      when passing nil for params
        deletes the status
      when clear_status_after is valid
        sets the clear_status_at column
      when clear_status_after is nil
        unsets the clear_status_at column
      when clear_status_after is invalid
        raises error when unknown status value is given
      when passing empty params
        deletes the status
      when clear_status_after is not given
        unsets clear_status_at column
    PATCH
      when request is successful
        saves the status
      when request is unsuccessful
        renders errors
      when passing nil for params
        deletes the status
      when clear_status_after is valid
        sets the clear_status_at column
      when clear_status_after is nil
        unsets the clear_status_at column
      when clear_status_after is invalid
        raises error when unknown status value is given
      when passing empty params
        does not update the status
      when clear_status_after is not given
        does not unset clear_status_at column
  PUT /user/avatar
    returns 200 OK on success
    returns 400 when avatar file size over 200 KiB
  POST /users/:user_id/personal_access_tokens
    returns error if required attributes are missing
    returns a 404 error if user not found
    returns a 401 error when not authenticated
    returns a 403 error when authenticated as normal user
    creates a personal access token when authenticated as admin
    behaves like POST request permissions for admin mode
      behaves like when admin
        behaves like makes request
          returns
# [RSpecRunTime] RSpec elapsed time: 12 minutes 43.95 seconds. Current RSS: ~1513M. Threads: 6. load average: 1.25 1.19 1.24 1/281 3845
.

        behaves like makes request
          returns
      behaves like when user
        returns
        behaves like makes request
          returns
    when an error is thrown by the model
      returns the error
  POST /user/personal_access_tokens
    returns error if required attributes are missing
    returns error if one of the scopes is not allowed
    returns a 401 error when not authenticated
    returns a 403 error when called with a read_api-scoped PAT
    creates a personal access token
    when scope is not allowed
      disallowed_scopes: :api
        returns error
# [RSpecRunTime] RSpec elapsed time: 12 minutes 45.84 seconds. Current RSS: ~1519M. Threads: 6. load average: 1.23 1.19 1.24 1/281 3846
.

      disallowed_scopes: :read_api
        returns error
      disallowed_scopes: :read_user
        returns error
      disallowed_scopes: :create_runner
        returns error
      disallowed_scopes: :manage_runner
        returns error
      disallowed_scopes: :ai_features
        returns error
      disallowed_scopes: :openid
        returns error
      disallowed_scopes: :profile
        returns error
      disallowed_scopes: :email
        returns error
      disallowed_scopes: :read_repository
        returns error
      disallowed_scopes: :write_repository
        returns error
      disallowed_scopes: :read_registry
        returns error
      disallowed_scopes: :write_registry
        returns error
      disallowed_scopes: :read_observability
        returns error
      disallowed_scopes: :write_observability
        returns error
      disallowed_scopes: :sudo
        returns error
      disallowed_scopes: :admin_mode
        returns error
      disallowed_scopes: :read_service_ping
        returns error
    when scopes are empty
      returns an error when no scopes are given
    when expires_at at is given
      when expires_at is in the past
        creates an inactive personal access token
      when expires_at is in the future
        creates a personal access token
    when an error is thrown by the model
      returns the error
  GET /users/:user_id/impersonation_tokens
    returns a 404 error if user not found
    returns a 403 error when authenticated as normal user
    returns an array of all impersonated tokens
    returns an array of active impersonation tokens if state active
    returns an array of inactive personal access tokens if active is set to false
    behaves like GET request permissions for admin mode
      behaves like when admin
        behaves like makes request
          returns
# [RSpecRunTime] RSpec elapsed time: 12 minutes 50.54 seconds. Current RSS: ~1522M. Threads: 6. load average: 1.21 1.19 1.24 1/281 3847
.

        behaves like makes request
          returns
      behaves like when user
        returns
        behaves like makes request
          returns
  POST /users/:user_id/impersonation_tokens
    returns validation error if impersonation token misses some attributes
    returns a 404 error if user not found
    returns a 403 error when authenticated as normal user
    creates a impersonation token
    behaves like POST request permissions for admin mode
      behaves like when admin
        behaves like makes request
          returns
# [RSpecRunTime] RSpec elapsed time: 12 minutes 52.21 seconds. Current RSS: ~1523M. Threads: 6. load average: 1.21 1.19 1.24 1/281 3848
.

        behaves like makes request
          returns
      behaves like when user
        returns
        behaves like makes request
          returns
  GET /users/:user_id/impersonation_tokens/:impersonation_token_id
    returns 404 error if user not found
    returns a 404 error if impersonation token not found
    returns a 404 error if token is not impersonation token
    returns a 403 error when authenticated as normal user
    returns an impersonation token
    behaves like GET request permissions for admin mode
      behaves like when admin
        behaves like makes request
          returns
# [RSpecRunTime] RSpec elapsed time: 12 minutes 54.05 seconds. Current RSS: ~1519M. Threads: 6. load average: 1.21 1.19 1.24 1/281 3849
.

        behaves like makes request
          returns
      behaves like when user
        returns
        behaves like makes request
          returns
  DELETE /users/:user_id/impersonation_tokens/:impersonation_token_id
    returns a 404 error if user not found
    returns a 404 error if impersonation token not found
    returns a 404 error if token is not impersonation token
    returns a 403 error when authenticated as normal user
    revokes a impersonation token
    behaves like DELETE request permissions for admin mode
      behaves like when admin
        behaves like makes request
          returns
# [RSpecRunTime] RSpec elapsed time: 12 minutes 55.94 seconds. Current RSS: ~1517M. Threads: 6. load average: 1.19 1.18 1.24 1/281 3850
.

        behaves like makes request
          returns
      behaves like when user
        returns
        behaves like makes request
          returns
    behaves like 412 response
      for a modified resource
        returns 412 with a JSON error
      for an unmodified resource
        returns 204 with an empty body
  GET /users/:id/associations_count
    behaves like GET request permissions for admin mode
      behaves like when admin
        behaves like makes request
          returns
# [RSpecRunTime] RSpec elapsed time: 12 minutes 58.25 seconds. Current RSS: ~1516M. Threads: 6. load average: 1.19 1.18 1.24 1/281 3851
.

        behaves like makes request
          returns
      behaves like when user
        returns
        behaves like makes request
          returns
    as an unauthorized user
      returns 401 unauthorized
    as a non-admin user
      with a different user id
        returns 403 Forbidden
      with the current user id
        returns valid JSON response
    as an admin user
      with invalid user id
        returns 404 User Not Found
      with valid user id
        returns valid JSON response
  behaves like custom attributes endpoints
    GET /users with custom attributes filter
      with an unauthorized user
        does not filter by custom attributes
      with an authorized user
        filters by custom attributes
    GET /users with custom attributes
      with an unauthorized user
        does not include custom attributes
      with an authorized user
        does not include custom attributes by default
        includes custom attributes if requested
    GET /users/:id with custom attributes
      with an unauthorized user
        does not include custom attributes
      with an authorized user
        does not include custom attributes by default
        includes custom attributes if requested
    GET /users/:id/custom_attributes
      with an unauthorized user
        behaves like an unauthorized API user
          is expected to eq 403
      with an authorized user
        returns all custom attributes
    GET /users/:id/custom_attributes/:key
      with an unauthorized user
        behaves like an unauthorized API user
          is expected to eq 403
      with an authorized user
        returns a single custom attribute
    PUT /users/:id/custom_attributes/:key
      with an unauthorized user
        behaves like an unauthorized API user
          is expected to eq 403
      with an authorized user
        creates a new custom attribute
        updates an existing custom attribute
    DELETE /users/:id/custom_attributes/:key
      with an unauthorized user
        behaves like an unauthorized API user
          is expected to eq 403
      with an authorized user
        deletes an existing custom attribute

# [RSpecRunTime] Finishing example group spec/requests/api/users_spec.rb. It took 3 minutes 33.59 seconds. Expected to take 3 minutes 17.83 seconds.
# [RSpecRunTime] Starting example group spec/controllers/projects_controller_spec.rb. Expected to take 2 minutes 10.95 seconds.

ProjectsController
  updates Service Desk attributes
  GET new
    with an authenticated user
      when namespace_id param is present
        when user has access to the namespace
          renders the template
# [RSpecRunTime] RSpec elapsed time: 13 minutes 6.7 seconds. Current RSS: ~1506M. Threads: 6. load average: 1.16 1.18 1.24 1/284 3858
.

        when user does not have access to the namespace
          responds with status 404
      with managable group
        when managable_group_count is 1
          renders the template
        when managable_group_count is 0
          when create_projects on personal namespace is allowed
            renders the template
          when create_projects on personal namespace is not allowed
            responds with status 404
  GET index
    as a user
      redirects to root page
    as a guest
      redirects to Explore page
  GET #activity as JSON
    when user has permission to see the event
      returns count
      design events are visible
        returns correct count
# [RSpecRunTime] RSpec elapsed time: 13 minutes 11.55 seconds. Current RSS: ~1480M. Threads: 6. load average: 1.15 1.17 1.24 1/281 3859
.

    when user has no permission to see the event
      filters out invisible event
  GET show
    user not project member
      when project repository is disabled
        shows wiki homepage
        shows issues list page if wiki is disabled
        shows activity page if wiki and issues are disabled
        shows activity if enabled by user
# [RSpecRunTime] RSpec elapsed time: 13 minutes 23.1 seconds. Current RSS: ~1482M. Threads: 6. load average: 1.12 1.17 1.23 1/281 3922
.

    project with empty repo
      with readme view set
        renders the empty project view
      with activity view set
        renders the empty project view
      with files view set
        renders the empty project view
      with wiki view set
        renders the empty project view
    project with broken repo
      with readme view set
        renders the empty project view
      with activity view set
        renders the empty project view
      with files view set
        renders the empty project view
      with wiki view set
        renders the empty project view
    when project default branch is corrupted
      renders the missing default branch view
# [RSpecRunTime] RSpec elapsed time: 13 minutes 27.25 seconds. Current RSS: ~1477M. Threads: 6. load average: 1.11 1.16 1.23 1/282 4063
.

    rendering default project view
      renders the activity view
      renders the files view
      renders the readme view
      does not make Gitaly requests
      renders files even with invalid license
      tracking events
        tracks page views
        when the project is importing
          does not track page views
# [RSpecRunTime] RSpec elapsed time: 13 minutes 41.69 seconds. Current RSS: ~1484M. Threads: 6. load average: 1.16 1.17 1.23 1/286 4276
.

      PUC highlighting
        option is enabled
          adds the highlighting class
# [RSpecRunTime] RSpec elapsed time: 13 minutes 43.13 seconds. Current RSS: ~1503M. Threads: 6. load average: 1.16 1.17 1.23 1/286 4277
.

        option is disabled
          doesn't add the highlighting class
# [RSpecRunTime] RSpec elapsed time: 13 minutes 44.65 seconds. Current RSS: ~1504M. Threads: 6. load average: 1.16 1.17 1.23 1/286 4278
.

    when the url contains .atom
      expects an error creating the project
    when the project is pending deletions
      renders a 404 error
    redirection from http://someproject.git
      user_type: :anonymous, project_visibility: :public, expected_redirect: :redirect_to_project
        returns the expected status
      user_type: :anonymous, project_visibility: :internal, expected_redirect: :redirect_to_signup
        returns the expected status
      user_type: :anonymous, project_visibility: :private, expected_redirect: :redirect_to_signup
        returns the expected status
      user_type: :signed_in, project_visibility: :public, expected_redirect: :redirect_to_project
        returns the expected status
      user_type: :signed_in, project_visibility: :internal, expected_redirect: :redirect_to_project
        returns the expected status
      user_type: :signed_in, project_visibility: :private, expected_redirect: nil
        returns the expected status
      user_type: :member, project_visibility: :public, expected_redirect: :redirect_to_project
        returns the expected status
      user_type: :member, project_visibility: :internal, expected_redirect: :redirect_to_project
        returns the expected status
      user_type: :member, project_visibility: :private, expected_redirect: :redirect_to_project
        returns the expected status
    when project is moved and git format is requested
      redirects to new project path
    when the project is forked and has a repository
      does not increase the number of queries when the project is forked
# [RSpecRunTime] RSpec elapsed time: 13 minutes 52.02 seconds. Current RSS: ~1483M. Threads: 6. load average: 1.14 1.17 1.23 1/284 4363
.

  POST create
    on import
      when import by url is disabled
        does not create project and reports an error
      when import by url is enabled
        creates project
# [RSpecRunTime] RSpec elapsed time: 13 minutes 53.4 seconds. Current RSS: ~1481M. Threads: 6. load average: 1.14 1.17 1.23 1/284 4374
.

  GET edit
    allows an admin user to access the page
    sets the badge API endpoint
  POST #archive
    for a user with the ability to archive a project
      archives the project
      redirects to projects path
# [RSpecRunTime] RSpec elapsed time: 13 minutes 55.89 seconds. Current RSS: ~1472M. Threads: 6. load average: 1.13 1.16 1.23 1/284 4375
.

    for a user that does not have the ability to archive a project
      does not archive the project
      returns 404
  POST #unarchive
    for a user with the ability to unarchive a project
      unarchives the project
      redirects to projects path
# [RSpecRunTime] RSpec elapsed time: 13 minutes 58.42 seconds. Current RSS: ~1471M. Threads: 6. load average: 1.13 1.16 1.23 1/284 4376
.

    for a user that does not have the ability to unarchive a project
      does not unarchive the project
      returns 404
  #housekeeping
    when authenticated as owner
      forces a full garbage collection
      logs an audit event
      and requesting prune
        enqueues pruning
# [RSpecRunTime] RSpec elapsed time: 14 minutes 1.02 seconds. Current RSS: ~1474M. Threads: 6. load average: 1.04 1.14 1.22 1/285 4377
.

    when authenticated as developer
      does not execute housekeeping
  #update
    hashed storage
      behaves like updating a project
        updates Fast Forward Merge attributes
        does not update namespace
        when there is a conflicting project path
          does not show any references to the conflicting path
# [RSpecRunTime] RSpec elapsed time: 14 minutes 6.0 seconds. Current RSS: ~1488M. Threads: 6. load average: 1.03 1.14 1.22 1/284 4420
.

        when only renaming a project path
          doesnt change the disk_path when using hashed storage
          upgrades and move project to hashed storage when project was originally legacy (PENDING: No reason given)
# [RSpecRunTime] RSpec elapsed time: 14 minutes 7.06 seconds. Current RSS: ~1487M. Threads: 6. load average: 1.03 1.14 1.22 1/284 4423
.

        when project has container repositories with tags
          when Gitlab API is not supported
            behaves like not allowing the rename of the project
              does not allow to rename the project
# [RSpecRunTime] RSpec elapsed time: 14 minutes 9.17 seconds. Current RSS: ~1498M. Threads: 6. load average: 1.03 1.14 1.22 1/285 4440
.

          when Gitlab API is supported
            allows the rename of the project
            when rename base repository dry run in the registry fails
              behaves like not allowing the rename of the project
                does not allow to rename the project
# [RSpecRunTime] RSpec elapsed time: 14 minutes 11.89 seconds. Current RSS: ~1486M. Threads: 6. load average: 1.03 1.14 1.22 1/286 4459
.

    legacy storage
      behaves like updating a project
        updates Fast Forward Merge attributes
        does not update namespace
        when there is a conflicting project path
          does not show any references to the conflicting path
# [RSpecRunTime] RSpec elapsed time: 14 minutes 15.98 seconds. Current RSS: ~1489M. Threads: 6. load average: 1.03 1.14 1.22 1/286 4502
.

        when only renaming a project path
          doesnt change the disk_path when using hashed storage (PENDING: No reason given)
          upgrades and move project to hashed storage when project was originally legacy
# [RSpecRunTime] RSpec elapsed time: 14 minutes 17.41 seconds. Current RSS: ~1506M. Threads: 6. load average: 1.03 1.14 1.22 1/288 4515
.

        when project has container repositories with tags
          when Gitlab API is not supported
            behaves like not allowing the rename of the project
              does not allow to rename the project
# [RSpecRunTime] RSpec elapsed time: 14 minutes 19.47 seconds. Current RSS: ~1512M. Threads: 6. load average: 1.03 1.14 1.22 1/288 4530
.

          when Gitlab API is supported
            allows the rename of the project
            when rename base repository dry run in the registry fails
              behaves like not allowing the rename of the project
                does not allow to rename the project
# [RSpecRunTime] RSpec elapsed time: 14 minutes 22.53 seconds. Current RSS: ~1524M. Threads: 6. load average: 1.02 1.13 1.22 1/288 4557
.

    as maintainer
      behaves like unauthorized when external service denies access
        allows access when the authorization service allows it
        allows access when the authorization service denies it
        updates when the service allows access
        does not update when the service rejects access
# [RSpecRunTime] RSpec elapsed time: 14 minutes 25.65 seconds. Current RSS: ~1498M. Threads: 6. load average: 1.02 1.13 1.21 1/288 4558
.

    when updating boolean values on project_settings
      boolean_value: "1", result: true
        updates project settings attributes accordingly
      boolean_value: "0", result: false
        updates project settings attributes accordingly
      boolean_value: 1, result: true
        updates project settings attributes accordingly
      boolean_value: 0, result: false
        updates project settings attributes accordingly
      boolean_value: true, result: true
        updates project settings attributes accordingly
      boolean_value: false, result: false
        updates project settings attributes accordingly
    with project feature attributes
      feature_access_level: :metrics_dashboard_access_level
        behaves like feature update success
          updates access level successfully
      feature_access_level: :container_registry_access_level
        behaves like feature update success
          updates access level successfully
      feature_access_level: :environments_access_level
        behaves like feature update success
          updates access level successfully
      feature_access_level: :feature_flags_access_level
        behaves like feature update success
          updates access level successfully
      feature_access_level: :releases_access_level
        behaves like feature update success
          updates access level successfully
      feature_access_level: :monitor_access_level
        behaves like feature update success
          updates access level successfully
      feature_access_level: :infrastructure_access_level
        behaves like feature update success
          updates access level successfully
      feature_access_level: :model_experiments_access_level
        behaves like feature update success
          updates access level successfully
      feature_access_level: :model_registry_access_level
        behaves like feature update success
          updates access level successfully
    project topics
      on updates with topics of the same name (case insensitive)
        returns 200, with alert about update failing
# [RSpecRunTime] RSpec elapsed time: 14 minutes 36.28 seconds. Current RSS: ~1483M. Threads: 6. load average: 1.02 1.13 1.21 1/283 4559
.

  #transfer
    updates namespace
    when new namespace is empty
      behaves like project namespace is not changed
        project namespace is not changed
# [RSpecRunTime] RSpec elapsed time: 14 minutes 38.6 seconds. Current RSS: ~1475M. Threads: 6. load average: 1.02 1.13 1.21 1/283 4560
.

    when new namespace is the same as the current namespace
      behaves like project namespace is not changed
        project namespace is not changed
  #destroy
    redirects to the dashboard
    when the project is forked
      closes all related merge requests
# [RSpecRunTime] RSpec elapsed time: 14 minutes 45.97 seconds. Current RSS: ~1484M. Threads: 6. load average: 1.02 1.12 1.21 1/289 4742
.

  PUT #new_issuable_address for issue
    has http status 200
    changes the user incoming email token
    changes projects new issue address
# [RSpecRunTime] RSpec elapsed time: 14 minutes 47.16 seconds. Current RSS: ~1488M. Threads: 6. load average: 1.02 1.12 1.21 1/287 4743
.

  PUT #new_issuable_address for merge request
    has http status 200
    changes the user incoming email token
    changes projects new merge request address
# [RSpecRunTime] RSpec elapsed time: 14 minutes 48.41 seconds. Current RSS: ~1491M. Threads: 6. load average: 1.02 1.12 1.21 1/287 4744
.

  POST #toggle_star
    toggles star if user is signed in
    does nothing if user is not signed in
  DELETE remove_fork
    does nothing if user is not signed in
    when signed in
      with forked project
        removes fork from project
# [RSpecRunTime] RSpec elapsed time: 14 minutes 50.58 seconds. Current RSS: ~1487M. Threads: 6. load average: 1.01 1.12 1.21 1/288 4745
.

      when project not forked
        does nothing if project was not forked
  GET refs
    gets a list of branches and tags
    gets a list of branches, tags and commits
    uses gitaly pagination
    when gitaly is unavailable
      responds with 503 error
# [RSpecRunTime] RSpec elapsed time: 14 minutes 53.92 seconds. Current RSS: ~1538M. Threads: 6. load average: 1.01 1.12 1.21 1/287 4832
.

    when preferred language is Japanese
      gets a list of branches, tags and commits
    when private project
      as a guest
        renders forbidden
# [RSpecRunTime] RSpec elapsed time: 14 minutes 55.93 seconds. Current RSS: ~1543M. Threads: 6. load average: 1.01 1.12 1.20 1/287 4875
.

    when input params are invalid
      does not break
    when sort param is invalid
      uses default sort by name
  POST #preview_markdown
    renders json in a correct format
    when not authorized
      returns 404
    state filter on references
      renders JSON body with state filter for issues
      renders JSON body with state filter for MRs
# [RSpecRunTime] RSpec elapsed time: 14 minutes 59.53 seconds. Current RSS: ~1547M. Threads: 6. load average: 1.01 1.12 1.20 1/287 4938
.

    when path parameter is provided
      renders JSON body with image links expanded
# [RSpecRunTime] RSpec elapsed time: 15 minutes 1.13 seconds. Current RSS: ~1525M. Threads: 6. load average: 1.01 1.12 1.20 1/287 4989
.

    when path and ref parameters are provided
      renders JSON body with image links expanded
# [RSpecRunTime] RSpec elapsed time: 15 minutes 2.78 seconds. Current RSS: ~1502M. Threads: 6. load average: 1.01 1.12 1.20 1/287 5079
.

  #ensure_canonical_path
    for a GET request
      when requesting the canonical path
        with exactly matching casing
          loads the project
        with different casing
          redirects to the normalized path
      when requesting a redirected path
        redirects to the canonical path
        redirects to the canonical path (testing non-show action)
    for a POST request
      when requesting the canonical path with different casing
        does not 404
        does not redirect to the correct casing
# [RSpecRunTime] RSpec elapsed time: 15 minutes 5.53 seconds. Current RSS: ~1505M. Threads: 6. load average: 1.09 1.13 1.21 1/287 5080
.

      when requesting a redirected path
        returns not found
    for a DELETE request
      when requesting the canonical path with different casing
        does not 404
        does not redirect to the correct casing
      when requesting a redirected path
        returns not found
  project export
    #export
      when project export is enabled
        returns 302
        when the project storage_size exceeds the application setting max_export_size
          returns 302 with alert
        when the project storage_size does not exceed the application setting max_export_size
          returns 302 without alert
        when application setting max_export_size is not set
          returns 302 without alert
      when project export is disabled
        returns 404
      when the endpoint receives requests above the limit
        prevents requesting project export
    #download_export
      object storage enabled
        when project export is enabled
          returns 200
# [RSpecRunTime] RSpec elapsed time: 15 minutes 10.58 seconds. Current RSS: ~1496M. Threads: 6. load average: 1.16 1.14 1.21 1/290 5087
.

        when project export file is absent
          alerts the user and returns 302
# [RSpecRunTime] RSpec elapsed time: 15 minutes 11.94 seconds. Current RSS: ~1495M. Threads: 6. load average: 1.16 1.14 1.21 1/288 5091
.

        when project export is disabled
          returns 404
# [RSpecRunTime] RSpec elapsed time: 15 minutes 13.24 seconds. Current RSS: ~1494M. Threads: 6. load average: 1.16 1.14 1.21 1/285 5095
.

        when the endpoint receives requests above the limit
          prevents requesting project export
# [RSpecRunTime] RSpec elapsed time: 15 minutes 14.57 seconds. Current RSS: ~1497M. Threads: 6. load average: 1.16 1.14 1.21 1/285 5099
.

        applies correct scope when throttling
          applies throttle per namespace
          throttles downloads within same namespaces
          allows downloads from different namespaces
# [RSpecRunTime] RSpec elapsed time: 15 minutes 19.6 seconds. Current RSS: ~1477M. Threads: 6. load average: 1.15 1.14 1.21 1/286 5112
.

    #remove_export
      when project export is enabled
        returns 302
      when project export is disabled
        returns 404
    #generate_new_export
      when project export is enabled
        returns 302
      when project export is disabled
        returns 404
      when the endpoint receives requests above the limit
        prevents requesting project export
  GET show.atom
    filters by calling event.visible_to_user?
    filters by calling event.visible_to_user?
# [RSpecRunTime] RSpec elapsed time: 15 minutes 23.14 seconds. Current RSS: ~1479M. Threads: 6. load average: 1.14 1.14 1.21 1/283 5113
.

  GET #unfoldered_environment_names
    shows the environment names of a public project to an anonymous user
    does not show environment names of a private project to anonymous users
    shows environment names of a private project to a project member
    does not show environment names of a private project to a logged-in non-member
# [RSpecRunTime] RSpec elapsed time: 15 minutes 24.38 seconds. Current RSS: ~1492M. Threads: 6. load average: 1.14 1.14 1.21 1/283 5114
.


# [RSpecRunTime] Finishing example group spec/controllers/projects_controller_spec.rb. It took 2 minutes 20.9 seconds. Expected to take 2 minutes 10.95 seconds.
# [RSpecRunTime] Starting example group spec/requests/api/labels_spec.rb. Expected to take 1 minute 45.33 seconds.

API::Labels
  GET /projects/:id/labels
    returns all available labels to the project
    when search param is provided
      and user is subscribed
        returns subscribed true
# [RSpecRunTime] RSpec elapsed time: 15 minutes 27.2 seconds. Current RSS: ~1485M. Threads: 6. load average: 1.13 1.14 1.21 1/283 5115
.

      and user is not subscribed
        returns subscribed false
# [RSpecRunTime] RSpec elapsed time: 15 minutes 28.47 seconds. Current RSS: ~1487M. Threads: 6. load average: 1.13 1.14 1.21 1/283 5116
.

    when the with_counts parameter is set
      includes counts in the response
# [RSpecRunTime] RSpec elapsed time: 15 minutes 30.52 seconds. Current RSS: ~1480M. Threads: 6. load average: 1.12 1.14 1.21 1/283 5117
.

    with subgroups
      when the include_ancestor_groups parameter is not set
        behaves like fetches labels
          returns correct labels
# [RSpecRunTime] RSpec elapsed time: 15 minutes 32.18 seconds. Current RSS: ~1475M. Threads: 6. load average: 1.12 1.14 1.21 1/283 5118
.

        when search param is provided
          behaves like fetches labels
            returns correct labels
# [RSpecRunTime] RSpec elapsed time: 15 minutes 33.86 seconds. Current RSS: ~1469M. Threads: 6. load average: 1.12 1.14 1.21 1/283 5119
.

      when the include_ancestor_groups parameter is set to false
        behaves like fetches labels
          returns correct labels
# [RSpecRunTime] RSpec elapsed time: 15 minutes 35.56 seconds. Current RSS: ~1469M. Threads: 6. load average: 1.11 1.13 1.20 1/283 5120
.

        when search param is provided
          behaves like fetches labels
            returns correct labels
# [RSpecRunTime] RSpec elapsed time: 15 minutes 37.2 seconds. Current RSS: ~1469M. Threads: 6. load average: 1.11 1.13 1.20 1/283 5121
.

  POST /projects/:id/labels
    returns created label when all params
    returns created label when only required params
    creates a prioritized label
    returns a 400 bad request if name not given
    returns a 400 bad request if color not given
    returns 400 for invalid color
    returns 400 for too long color code
    returns 400 for invalid name
    returns 409 if label already exists in group
    returns 400 for invalid priority
    returns 409 if label already exists in project
# [RSpecRunTime] RSpec elapsed time: 15 minutes 46.9 seconds. Current RSS: ~1471M. Threads: 6. load average: 1.16 1.14 1.21 1/283 5122
.

  DELETE /projects/:id/labels
    returns 404 for non existing label
    returns 400 for wrong parameters
    fails if label_id and name are given in params
    behaves like label delete API
      returns 204 for existing label (deprecated route)
      returns 204 for existing label (rest route)
# [RSpecRunTime] RSpec elapsed time: 15 minutes 51.14 seconds. Current RSS: ~1474M. Threads: 6. load average: 1.15 1.14 1.21 1/283 5123
.

    behaves like label delete API
      returns 204 for existing label (deprecated route)
      returns 204 for existing label (rest route)
# [RSpecRunTime] RSpec elapsed time: 15 minutes 52.92 seconds. Current RSS: ~1473M. Threads: 6. load average: 1.15 1.14 1.21 1/283 5124
.

    behaves like 412 response
      for a modified resource
        returns 412 with a JSON error
      for an unmodified resource
        returns 204 with an empty body
    when lock_on_merge
      returns 400 because label could not be deleted
    with group label
      returns 401 if user does not have access
      returns 204 if user has access
# [RSpecRunTime] RSpec elapsed time: 15 minutes 57.98 seconds. Current RSS: ~1476M. Threads: 6. load average: 1.14 1.14 1.20 1/283 5125
.

  PUT /projects/:id/labels
    returns 404 if label does not exist
    returns 404 if label by id does not exist
    returns 400 if no label name and id is given
    fails if label_id and name are given in params
    when using name
      behaves like label update API
        returns 200 if name is changed (deprecated route)
        returns 200 if colors is changed (deprecated route)
        returns 200 if a priority is added (deprecated route)
        returns 400 if no new parameters given (deprecated route)
        returns 400 when color code is too short (deprecated route)
        returns 400 for too long color code (deprecated route)
        returns 400 for invalid priority (deprecated route)
        returns 200 if name and colors and description are changed (deprecated route)
        returns 400 for invalid name (deprecated route)
        returns 200 if description is changed (deprecated route)
        returns 200 if priority is changed (deprecated route)
        returns 200 if name is changed (rest route)
        returns 200 if colors is changed (rest route)
        returns 200 if a priority is added (rest route)
        returns 400 if no new parameters given (rest route)
        returns 400 when color code is too short (rest route)
        returns 400 for too long color code (rest route)
        returns 400 for invalid priority (rest route)
        returns 200 if name and colors and description are changed (rest route)
        returns 400 for invalid name (rest route)
        returns 200 if description is changed (rest route)
        returns 200 if priority is changed (rest route)
        returns 200 if a priority is removed (deprecated route)
        returns 200 if a priority is removed (rest route)
# [RSpecRunTime] RSpec elapsed time: 16 minutes 22.73 seconds. Current RSS: ~1478M. Threads: 6. load average: 1.09 1.13 1.20 1/283 5126
.

    when using label_id
      behaves like label update API
        returns 200 if name is changed (deprecated route)
        returns 200 if colors is changed (deprecated route)
        returns 200 if a priority is added (deprecated route)
        returns 400 if no new parameters given (deprecated route)
        returns 400 when color code is too short (deprecated route)
        returns 400 for too long color code (deprecated route)
        returns 400 for invalid priority (deprecated route)
        returns 200 if name and colors and description are changed (deprecated route)
        returns 400 for invalid name (deprecated route)
        returns 200 if description is changed (deprecated route)
        returns 200 if priority is changed (deprecated route)
        returns 200 if name is changed (rest route)
        returns 200 if colors is changed (rest route)
        returns 200 if a priority is added (rest route)
        returns 400 if no new parameters given (rest route)
        returns 400 when color code is too short (rest route)
        returns 400 for too long color code (rest route)
        returns 400 for invalid priority (rest route)
        returns 200 if name and colors and description are changed (rest route)
        returns 400 for invalid name (rest route)
        returns 200 if description is changed (rest route)
        returns 200 if priority is changed (rest route)
        returns 200 if a priority is removed (deprecated route)
        returns 200 if a priority is removed (rest route)
# [RSpecRunTime] RSpec elapsed time: 16 minutes 44.01 seconds. Current RSS: ~1472M. Threads: 6. load average: 1.21 1.15 1.20 1/283 5127
.

    with group label
      allows updating of group label priority
      returns 401 when updating other fields
      returns 200 when user has access to the group label
# [RSpecRunTime] RSpec elapsed time: 16 minutes 47.75 seconds. Current RSS: ~1469M. Threads: 6. load average: 1.20 1.15 1.20 1/283 5128
.

  PUT /projects/:id/labels/promote
    returns 200 if label is promoted
    returns 403 if guest promotes label
    returns 403 if reporter promotes label
    returns 404 if label does not exist
    returns 400 if no label name given
    returns 400 if project does not have a group
    if group label already exists
      returns a status of 200
      does not change the group label count
      does not change the group label max (reuses the same ID)
      changes the project label count
# [RSpecRunTime] RSpec elapsed time: 17 minutes 1.4 seconds. Current RSS: ~1462M. Threads: 6. load average: 1.15 1.14 1.20 1/282 5129
.

  POST /projects/:id/labels/:label_id/subscribe
    when label_id is a label title
      subscribes to the label
# [RSpecRunTime] RSpec elapsed time: 17 minutes 2.48 seconds. Current RSS: ~1463M. Threads: 6. load average: 1.15 1.14 1.20 1/282 5130
.

    when label_id is a label ID
      subscribes to the label
# [RSpecRunTime] RSpec elapsed time: 17 minutes 3.55 seconds. Current RSS: ~1463M. Threads: 6. load average: 1.15 1.14 1.20 1/282 5131
.

    when user is already subscribed to label
      returns 304
    when label ID is not found
      returns 404 error
  POST /projects/:id/labels/:label_id/unsubscribe
    when label_id is a label title
      unsubscribes from the label
    when label_id is a label ID
      unsubscribes from the label
    when user is already unsubscribed from label
      returns 304
    when label ID is not found
      returns 404 error

# [RSpecRunTime] Finishing example group spec/requests/api/labels_spec.rb. It took 1 minute 44.63 seconds. Expected to take 1 minute 45.33 seconds.
# [RSpecRunTime] Starting example group spec/requests/api/ci/variables_spec.rb. Expected to take 1 minute 17.92 seconds.

API::Ci::Variables
  GET /projects/:id/variables
    authorized user with proper permissions
      returns project variables
# [RSpecRunTime] RSpec elapsed time: 17 minutes 11.34 seconds. Current RSS: ~1462M. Threads: 6. load average: 1.13 1.14 1.19 1/282 5132
.

    authorized user with invalid permissions
      does not return project variables
# [RSpecRunTime] RSpec elapsed time: 17 minutes 13.59 seconds. Current RSS: ~1461M. Threads: 6. load average: 1.13 1.14 1.19 1/282 5133
.

    unauthorized user
      does not return project variables
# [RSpecRunTime] RSpec elapsed time: 17 minutes 15.64 seconds. Current RSS: ~1459M. Threads: 6. load average: 1.12 1.13 1.19 1/282 5134
.

  GET /projects/:id/variables/:key
    authorized user with proper permissions
      responds with 404 Not Found if requesting non-existing variable
      when variable is hidden
        returns project variable details and cut the value
        and feature flag `ci_hidden_variables is disabled`
          returns project variable details without changes
# [RSpecRunTime] RSpec elapsed time: 17 minutes 22.36 seconds. Current RSS: ~1453M. Threads: 6. load average: 1.11 1.13 1.19 1/282 5135
.

      when variable is not hidden
        returns project variable details
        and feature flag `ci_hidden_variables is disabled`
          returns project variable details
# [RSpecRunTime] RSpec elapsed time: 17 minutes 26.8 seconds. Current RSS: ~1451M. Threads: 6. load average: 1.10 1.13 1.19 1/282 5136
.

      when there are two variables with the same key on different env
        when filter[environment_scope] is not passed
          returns 409
# [RSpecRunTime] RSpec elapsed time: 17 minutes 29.11 seconds. Current RSS: ~1451M. Threads: 6. load average: 1.10 1.13 1.19 1/282 5137
.

        when filter[environment_scope] is passed
          returns the variable
# [RSpecRunTime] RSpec elapsed time: 17 minutes 31.3 seconds. Current RSS: ~1450M. Threads: 6. load average: 1.09 1.13 1.19 1/282 5138
.

        when wrong filter[environment_scope] is passed
          returns not_found
          when there is only one variable with provided key
            returns not_found
# [RSpecRunTime] RSpec elapsed time: 17 minutes 35.58 seconds. Current RSS: ~1448M. Threads: 6. load average: 1.08 1.12 1.19 1/282 5139
.

    authorized user with invalid permissions
      does not return project variable details
# [RSpecRunTime] RSpec elapsed time: 17 minutes 38.06 seconds. Current RSS: ~1448M. Threads: 6. load average: 1.08 1.12 1.19 1/282 5140
.

    unauthorized user
      does not return project variable details
# [RSpecRunTime] RSpec elapsed time: 17 minutes 40.2 seconds. Current RSS: ~1446M. Threads: 6. load average: 1.08 1.12 1.19 1/282 5141
.

  POST /projects/:id/variables
    authorized user with proper permissions
      when the project is below the plan limit for variables
        creates variable
        creates variable with masked and hidden
        masks the new value when logging
        creates variable with optional attributes
        does not allow to duplicate variable key
        creates variable with a specific environment scope
        allows duplicated variable key given different environment scopes
# [RSpecRunTime] RSpec elapsed time: 17 minutes 54.91 seconds. Current RSS: ~1444M. Threads: 6. load average: 1.14 1.13 1.19 1/282 5142
.

      when the project is at the plan limit for variables
        returns a variable limit error
# [RSpecRunTime] RSpec elapsed time: 17 minutes 57.2 seconds. Current RSS: ~1444M. Threads: 6. load average: 1.13 1.13 1.19 1/282 5143
.

    authorized user with invalid permissions
      does not create variable
# [RSpecRunTime] RSpec elapsed time: 17 minutes 59.48 seconds. Current RSS: ~1443M. Threads: 6. load average: 1.13 1.13 1.19 1/282 5144
.

    unauthorized user
      does not create variable
# [RSpecRunTime] RSpec elapsed time: 18 minutes 1.51 seconds. Current RSS: ~1443M. Threads: 6. load average: 1.12 1.13 1.19 2/283 5145
.

  PUT /projects/:id/variables/:key
    authorized user with proper permissions
      updates variable data
      masks the new value when logging
      responds with 404 Not Found if requesting non-existing variable
      when variable is hidden
        unable to update masked attribute
# [RSpecRunTime] RSpec elapsed time: 18 minutes 9.95 seconds. Current RSS: ~1439M. Threads: 6. load average: 1.11 1.13 1.18 1/282 5146
.

      when variable is not hidden
        updates masked attribute
# [RSpecRunTime] RSpec elapsed time: 18 minutes 12.3 seconds. Current RSS: ~1439M. Threads: 6. load average: 1.10 1.12 1.18 1/282 5147
.

      when there are two variables with the same key on different env
        when filter[environment_scope] is not passed
          returns 409
# [RSpecRunTime] RSpec elapsed time: 18 minutes 14.6 seconds. Current RSS: ~1437M. Threads: 6. load average: 1.10 1.12 1.18 1/282 5148
.

        when filter[environment_scope] is passed
          updates the variable
# [RSpecRunTime] RSpec elapsed time: 18 minutes 17.04 seconds. Current RSS: ~1436M. Threads: 6. load average: 1.09 1.12 1.18 1/282 5149
.

        when wrong filter[environment_scope] is passed
          returns not_found
# [RSpecRunTime] RSpec elapsed time: 18 minutes 19.42 seconds. Current RSS: ~1437M. Threads: 6. load average: 1.09 1.12 1.18 2/282 5150
.

    authorized user with invalid permissions
      does not update variable
# [RSpecRunTime] RSpec elapsed time: 18 minutes 21.7 seconds. Current RSS: ~1438M. Threads: 6. load average: 1.17 1.14 1.19 1/282 5151
.

    unauthorized user
      does not update variable
# [RSpecRunTime] RSpec elapsed time: 18 minutes 23.93 seconds. Current RSS: ~1437M. Threads: 6. load average: 1.17 1.14 1.19 1/282 5152
.

  DELETE /projects/:id/variables/:key
    authorized user with proper permissions
      deletes variable
      responds with 404 Not Found if requesting non-existing variable
      when there are two variables with the same key on different env
        when filter[environment_scope] is not passed
          returns 409
# [RSpecRunTime] RSpec elapsed time: 18 minutes 30.56 seconds. Current RSS: ~1436M. Threads: 6. load average: 1.14 1.13 1.18 1/282 5153
.

        when filter[environment_scope] is passed
          deletes the variable
# [RSpecRunTime] RSpec elapsed time: 18 minutes 32.81 seconds. Current RSS: ~1438M. Threads: 6. load average: 1.14 1.13 1.18 1/282 5154
.

        when wrong filter[environment_scope] is passed
          returns not_found
# [RSpecRunTime] RSpec elapsed time: 18 minutes 35.16 seconds. Current RSS: ~1440M. Threads: 6. load average: 1.14 1.13 1.18 1/282 5155
.

    authorized user with invalid permissions
      does not delete variable
# [RSpecRunTime] RSpec elapsed time: 18 minutes 37.28 seconds. Current RSS: ~1441M. Threads: 6. load average: 1.13 1.13 1.18 1/282 5156
.

    unauthorized user
      does not delete variable
# [RSpecRunTime] RSpec elapsed time: 18 minutes 39.51 seconds. Current RSS: ~1441M. Threads: 6. load average: 1.13 1.13 1.18 1/282 5157
.


# [RSpecRunTime] Finishing example group spec/requests/api/ci/variables_spec.rb. It took 1 minute 30.51 seconds. Expected to take 1 minute 17.92 seconds.
# [RSpecRunTime] Starting example group spec/requests/api/graphql/mutations/work_items/update_spec.rb. Expected to take 56.46 seconds.

Update a work item
  the user is not allowed to update a work item
    behaves like a mutation that returns a top-level access error
      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"
# [RSpecRunTime] RSpec elapsed time: 18 minutes 41.73 seconds. Current RSS: ~1438M. Threads: 6. load average: 1.04 1.11 1.18 1/282 5158
.

  when user has permissions to update a work item
    behaves like has spam protection
      #check_spam_action_response!
        when the object is spam (DISALLOW)
          and no CAPTCHA is available
            behaves like disallow response
              informs the client that the request was denied as spam
          and a CAPTCHA is required
            behaves like disallow response
              informs the client that the request was denied as spam
        when the object is not spam (CONDITIONAL ALLOW)
          and no CAPTCHA is required
            does not return a top-level error
          and a CAPTCHA is required
            informs the client that the request may be retried after solving the CAPTCHA
    when the work item is open
      closes and updates the work item
    when the work item is closed
      reopens the work item
    when updating confidentiality
      when setting as confidential
        behaves like toggling confidentiality
          successfully updates work item
      when setting as non-confidential
        behaves like toggling confidentiality
          successfully updates work item
    with description widget input
      behaves like update work item description widget
        updates the description widget
        when the updated work item is not valid
          returns validation errors without the work item
# [RSpecRunTime] RSpec elapsed time: 18 minutes 48.45 seconds. Current RSS: ~1455M. Threads: 6. load average: 1.04 1.11 1.17 1/282 5159
.

        when the edited description includes quick action(s)
          with /title quick action
            behaves like quick action is applied
              applies the quick action(s)
          with /shrug, /tableflip and /cc quick action
            behaves like quick action is applied
              applies the quick action(s)
          with /close
            behaves like quick action is applied
              applies the quick action(s)
          with /reopen
            behaves like quick action is applied
              applies the quick action(s)
    with labels widget input
      when only removing labels
        behaves like mutation updating work item labels
          updates labels
        with quick action
          behaves like mutation updating work item labels
            updates labels
        when work item belongs directly to the group
          behaves like mutation updating work item labels
            updates labels
          with quick action
            behaves like mutation updating work item labels
              updates labels
      when only adding labels
        behaves like mutation updating work item labels
          updates labels
        with quick action
          behaves like mutation updating work item labels
            updates labels
        when work item belongs directly to the group
          behaves like mutation updating work item labels
            updates labels
          with quick action
            behaves like mutation updating work item labels
              updates labels
      when adding and removing labels
        behaves like mutation updating work item labels
          updates labels
        with quick action
          behaves like mutation updating work item labels
            updates labels
        when work item belongs directly to the group
          behaves like mutation updating work item labels
            updates labels
      when the work item type does not support labels widget
        ignores the quick action
    with due and start date widget input
      updates start and due date
      when using quick action
        when removing due date
          updates start and due date
# [RSpecRunTime] RSpec elapsed time: 19 minutes 1.49 seconds. Current RSS: ~1445M. Threads: 6. load average: 1.03 1.10 1.17 1/283 5160
.

        when setting due date
          updates due date
        when the work item type does not support start and due date widget
          ignores the quick action
      when provided input is invalid
        returns validation errors without the work item
      when dates were already set for the work item
        when updating only start date
          allows setting a single date to null
        when updating only due date
          allows setting a single date to null
    with hierarchy widget input
      when updating parent
        when parent work item type is invalid
          returns response with errors
        when parent work item has a valid type
          updates work item parent
          when a parent is already present
            is replaced with new parent
# [RSpecRunTime] RSpec elapsed time: 19 minutes 7.32 seconds. Current RSS: ~1447M. Threads: 6. load average: 1.02 1.10 1.17 1/283 5161
.

          when updating relative position
            when incomplete positioning arguments are given
              behaves like returns "relative position is not valid" error message
                is expected to contain exactly "Relative position is not valid."
            when moving after adjacent
              behaves like updates work item parent and sets the relative position
                is expected to be between 513 and 1026 (inclusive)
            when moving before adjacent
              behaves like updates work item parent and sets the relative position
                is expected to be between 513 and 1026 (inclusive)
        when parentId is null
          when parent is present
            removes parent and returns success message
          when parent is not present
            does not change work item and returns success message
        when parent work item is not found
          returns a top level error
      when reordering existing child
        when parent is already assigned
          when incomplete positioning arguments are given
            behaves like returns "relative position is not valid" error message
              is expected to contain exactly "Relative position is not valid."
# [RSpecRunTime] RSpec elapsed time: 19 minutes 13.2 seconds. Current RSS: ~1447M. Threads: 6. load average: 1.02 1.10 1.17 2/283 5162
.

          when moving after adjacent
            behaves like sets the relative position and does not update work item parent
              is expected to be between 513 and 1026 (inclusive)
          when moving before adjacent
            behaves like sets the relative position and does not update work item parent
              is expected to be between 513 and 1026 (inclusive)
      when updating children
        when child work item type is invalid
          returns response with errors
        when there is a mix of existing and non existing work items
          returns a top level error and does not add valid work item
        when child work item type is valid
          updates the work item children
# [RSpecRunTime] RSpec elapsed time: 19 minutes 16.6 seconds. Current RSS: ~1454M. Threads: 6. load average: 1.02 1.10 1.17 1/282 5163
.

    when updating assignees
      updates the work item assignee
      when using quick action
        when assigning a user
          updates the work item assignee
# [RSpecRunTime] RSpec elapsed time: 19 minutes 18.34 seconds. Current RSS: ~1463M. Threads: 6. load average: 1.02 1.10 1.17 1/282 5164
.

        when unassigning a user
          updates the work item assignee
        when changing work item type
          with multiple commands
            updates the work item type and other attributes
# [RSpecRunTime] RSpec elapsed time: 19 minutes 20.27 seconds. Current RSS: ~1472M. Threads: 6. load average: 1.02 1.10 1.17 1/282 5165
.

          when conversion is not permitted
            does not update the work item type
          when new type does not support a widget
            updates the work item type and clear widget attributes
      when the work item type does not support the assignees widget
        ignores the quick action
    when updating milestone
      when user cannot set work item metadata
        behaves like work item's milestone is not updated
          ignores the update request
      when user can set work item metadata
        when assigning a project milestone
          behaves like work item's milestone is updated
            updates the work item's milestone
        when assigning a group milestone
          behaves like work item's milestone is updated
            updates the work item's milestone
        when unsetting the work item's milestone
          behaves like work item's milestone is updated
            updates the work item's milestone
    when updating notifications subscription
      when work item update fails
        behaves like subscription update ignored
          when user is subscribed with a subscription record
            ignores the update request
          when user is subscribed by being a participant
            ignores the update request
      when user cannot update work item
        behaves like subscription update ignored
          when user is subscribed with a subscription record
            ignores the update request
          when user is subscribed by being a participant
            ignores the update request
      when user can update work item
        when subscribing to notifications
          behaves like subscription updated successfully
            updates existing work item's subscription state
        when unsubscribing from notifications
          behaves like subscription updated successfully
            updates existing work item's subscription state
          when user is subscribed by being a participant
            creates a subscription with desired state
    when updating currentUserTodos
      when adding a new todo
        when user can create todos
          adds a new todo for the user on the work item
          when a base attribute is present
            behaves like a mutation that returns top-level errors
              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"
# [RSpecRunTime] RSpec elapsed time: 19 minutes 30.36 seconds. Current RSS: ~1489M. Threads: 6. load average: 1.02 1.09 1.17 1/282 5166
.

        when user has no access
          does not create a new todo
      when marking all todos of the work item as done
        when user has access
          marks all todos of the user on the work item as done
# [RSpecRunTime] RSpec elapsed time: 19 minutes 32.3 seconds. Current RSS: ~1489M. Threads: 6. load average: 1.02 1.09 1.17 1/282 5167
.

        when user has no access
          does not mark todos as done
      when marking one todo of the work item as done
        when user has access
          marks the todo of the work item as done
# [RSpecRunTime] RSpec elapsed time: 19 minutes 34.2 seconds. Current RSS: ~1487M. Threads: 6. load average: 1.02 1.09 1.17 1/282 5168
.

        when user has no access
          does not mark the todo as done
    when updating awardEmoji
      when user cannot award work item
        ignores the update request
      when user can award work item
        when adding award emoji
          behaves like request that adds emoji
            updates work item's award emoji
          when the emoji name is not valid
            behaves like request with error
              ignores update and returns an error
        when removing award emoji
          when emoji was awarded by current user
            behaves like request that removes emoji
              updates work item's award emoji
          when emoji was awarded by a different user
            behaves like request with error
              ignores update and returns an error
        when toggling award emoji
          when emoji award is present
            behaves like request that removes emoji
              updates work item's award emoji
          when emoji award is not present
            behaves like request that adds emoji
              updates work item's award emoji
    with notes widget input
      behaves like work item is not updated
        ignores the update
      when user has permissions to update the work item
        updates work item discussion locked attribute on notes widget
        when using quick action
          updates work item discussion locked attribute on notes widget
          when unlocking discussion
            updates work item discussion locked attribute on notes widget
# [RSpecRunTime] RSpec elapsed time: 19 minutes 41.34 seconds. Current RSS: ~1492M. Threads: 6. load average: 1.01 1.09 1.16 1/282 5169
.

          when the work item type does not support the notes widget
            behaves like work item is not updated
              ignores the update
    with time tracking widget input
      when adding time estimate and time spent
        when mutating the work item
          when work item belongs to a project
            behaves like mutation updating work item with time tracking data
              updates time tracking
          when work item belongs to a group
            behaves like mutation updating work item with time tracking data
              updates time tracking
          when time estimate format is invalid
            behaves like request with error
              ignores update and returns an error
          when time spent format is invalid
            behaves like request with error
              ignores update and returns an error
        with quick action
          when work item belongs to a project
            behaves like mutation updating work item with time tracking data
              updates time tracking
          when work item belongs to a group
            behaves like mutation updating work item with time tracking data
              updates time tracking
      when the work item type does not support time tracking widget
        with quick action
          ignores the quick action
    when unsupported widget input is sent
      behaves like a mutation that returns top-level errors
        is expected to contain exactly "Following widget keys are not supported by Test Case type: [:assignees_widget]"

# [RSpecRunTime] Finishing example group spec/requests/api/graphql/mutations/work_items/update_spec.rb. It took 1 minute 7.41 seconds. Expected to take 56.46 seconds.
# [RSpecRunTime] Starting example group spec/requests/api/usage_data_non_sql_metrics_spec.rb. Expected to take 53.1 seconds.

API::UsageDataNonSqlMetrics
  GET /usage_data/non_sql_metrics
    with authentication
      returns non sql metrics if user is admin
      returns forbidden if user is not admin
      behaves like GET request permissions for admin mode
        behaves like when admin
          behaves like makes request
            returns
# [RSpecRunTime] RSpec elapsed time: 20 minutes 40.19 seconds. Current RSS: ~1493M. Threads: 6. load average: 1.05 1.08 1.16 1/283 5214
.

          behaves like makes request
            returns
        behaves like when user
          returns
          behaves like makes request
            returns
    without authentication
      returns unauthorized
    when feature_flag is disabled
      returns not_found for admin
      returns forbidden for non-admin

# [RSpecRunTime] Finishing example group spec/requests/api/usage_data_non_sql_metrics_spec.rb. It took 54.47 seconds. Expected to take 53.1 seconds.
# [RSpecRunTime] Starting example group spec/requests/api/graphql/mutations/work_items/create_spec.rb. Expected to take 40.09 seconds.

Create a work item
  the user is not allowed to create a work item
    behaves like a mutation that returns a top-level access error
      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"
# [RSpecRunTime] RSpec elapsed time: 20 minutes 42.76 seconds. Current RSS: ~1508M. Threads: 6. load average: 1.05 1.08 1.16 1/283 5215
.

  when user has permissions to create a work item
    when creating work items in a project
      with projectPath
        behaves like creates work item
          creates the work item
          when input is invalid
            does not create and returns validation errors
# [RSpecRunTime] RSpec elapsed time: 20 minutes 44.65 seconds. Current RSS: ~1512M. Threads: 6. load average: 1.05 1.08 1.16 1/283 5216
.

          behaves like has spam protection
            #check_spam_action_response!
              when the object is spam (DISALLOW)
                and no CAPTCHA is available
                  behaves like disallow response
                    informs the client that the request was denied as spam
                and a CAPTCHA is required
                  behaves like disallow response
                    informs the client that the request was denied as spam
              when the object is not spam (CONDITIONAL ALLOW)
                and no CAPTCHA is required
                  does not return a top-level error
                and a CAPTCHA is required
                  informs the client that the request may be retried after solving the CAPTCHA
          with hierarchy widget input
            when setting parent
              updates the work item parent
              when parent work item type is invalid
                returns error
# [RSpecRunTime] RSpec elapsed time: 20 minutes 49.25 seconds. Current RSS: ~1515M. Threads: 6. load average: 1.04 1.08 1.16 1/283 5217
.

              when parent work item is not found
                returns a top level error
              when adjacent is already in place
                creates work item and sets the relative position to be AFTER adjacent
# [RSpecRunTime] RSpec elapsed time: 20 minutes 50.67 seconds. Current RSS: ~1516M. Threads: 6. load average: 1.04 1.08 1.16 1/283 5218
.

            when unsupported widget input is sent
              behaves like a mutation that returns top-level errors
                is expected to contain exactly "Following widget keys are not supported by Test Case type: [:hierarchy_widget]"
          with milestone widget input
            when setting milestone on work item creation
              when assigning a project milestone
                behaves like work item's milestone is set
                  sets the work item's milestone
              when assigning a group milestone
                behaves like work item's milestone is set
                  sets the work item's milestone
          with assignee widget input
            when setting assignee on work item creation
              sets the work item's assignee
# [RSpecRunTime] RSpec elapsed time: 20 minutes 54.02 seconds. Current RSS: ~1511M. Threads: 6. load average: 1.04 1.08 1.16 1/283 5219
.

          with labels widget input
            when setting labels on work item creation
              sets the work item's labels
      with namespacePath
        behaves like creates work item
          creates the work item
          when input is invalid
            does not create and returns validation errors
# [RSpecRunTime] RSpec elapsed time: 20 minutes 56.32 seconds. Current RSS: ~1511M. Threads: 6. load average: 1.04 1.08 1.15 1/283 5220
.

          behaves like has spam protection
            #check_spam_action_response!
              when the object is spam (DISALLOW)
                and no CAPTCHA is available
                  behaves like disallow response
                    informs the client that the request was denied as spam
                and a CAPTCHA is required
                  behaves like disallow response
                    informs the client that the request was denied as spam
              when the object is not spam (CONDITIONAL ALLOW)
                and no CAPTCHA is required
                  does not return a top-level error
                and a CAPTCHA is required
                  informs the client that the request may be retried after solving the CAPTCHA
          with hierarchy widget input
            when setting parent
              updates the work item parent
              when parent work item type is invalid
                returns error
# [RSpecRunTime] RSpec elapsed time: 21 minutes 0.93 second. Current RSS: ~1510M. Threads: 6. load average: 1.11 1.09 1.16 1/283 5221
.

              when parent work item is not found
                returns a top level error
              when adjacent is already in place
                creates work item and sets the relative position to be AFTER adjacent
# [RSpecRunTime] RSpec elapsed time: 21 minutes 2.35 seconds. Current RSS: ~1510M. Threads: 6. load average: 1.11 1.09 1.16 1/283 5222
.

            when unsupported widget input is sent
              behaves like a mutation that returns top-level errors
                is expected to contain exactly "Following widget keys are not supported by Test Case type: [:hierarchy_widget]"
          with milestone widget input
            when setting milestone on work item creation
              when assigning a project milestone
                behaves like work item's milestone is set
                  sets the work item's milestone
              when assigning a group milestone
                behaves like work item's milestone is set
                  sets the work item's milestone
          with assignee widget input
            when setting assignee on work item creation
              sets the work item's assignee
          with labels widget input
            when setting labels on work item creation
              sets the work item's labels
        when the namespace_level_work_items feature flag is disabled
          behaves like creates work item
            creates the work item
            when input is invalid
              does not create and returns validation errors
# [RSpecRunTime] RSpec elapsed time: 21 minutes 7.62 seconds. Current RSS: ~1515M. Threads: 6. load average: 1.10 1.09 1.16 1/283 5223
.

            behaves like has spam protection
              #check_spam_action_response!
                when the object is spam (DISALLOW)
                  and no CAPTCHA is available
                    behaves like disallow response
                      informs the client that the request was denied as spam
                  and a CAPTCHA is required
                    behaves like disallow response
                      informs the client that the request was denied as spam
                when the object is not spam (CONDITIONAL ALLOW)
                  and no CAPTCHA is required
                    does not return a top-level error
                  and a CAPTCHA is required
                    informs the client that the request may be retried after solving the CAPTCHA
            with hierarchy widget input
              when setting parent
                updates the work item parent
                when parent work item type is invalid
                  returns error
# [RSpecRunTime] RSpec elapsed time: 21 minutes 12.32 seconds. Current RSS: ~1515M. Threads: 6. load average: 1.10 1.09 1.16 1/283 5224
.

                when parent work item is not found
                  returns a top level error
                when adjacent is already in place
                  creates work item and sets the relative position to be AFTER adjacent
              when unsupported widget input is sent
                behaves like a mutation that returns top-level errors
                  is expected to contain exactly "Following widget keys are not supported by Test Case type: [:hierarchy_widget]"
            with milestone widget input
              when setting milestone on work item creation
                when assigning a project milestone
                  behaves like work item's milestone is set
                    sets the work item's milestone
                when assigning a group milestone
                  behaves like work item's milestone is set
                    sets the work item's milestone
            with assignee widget input
              when setting assignee on work item creation
                sets the work item's assignee
            with labels widget input
              when setting labels on work item creation
                sets the work item's labels (FAILED - 5)
    when creating work items in a group
      behaves like creates work item
        creates the work item
        when input is invalid
          does not create and returns validation errors
# [RSpecRunTime] RSpec elapsed time: 21 minutes 18.43 seconds. Current RSS: ~1521M. Threads: 6. load average: 1.09 1.09 1.16 1/283 5225
.

        behaves like has spam protection
          #check_spam_action_response!
            when the object is spam (DISALLOW)
              and no CAPTCHA is available
                behaves like disallow response
                  informs the client that the request was denied as spam
              and a CAPTCHA is required
                behaves like disallow response
                  informs the client that the request was denied as spam
            when the object is not spam (CONDITIONAL ALLOW)
              and no CAPTCHA is required
                does not return a top-level error
              and a CAPTCHA is required
                informs the client that the request may be retried after solving the CAPTCHA
        with hierarchy widget input
          when setting parent
            updates the work item parent
            when parent work item type is invalid
              returns error
# [RSpecRunTime] RSpec elapsed time: 21 minutes 22.76 seconds. Current RSS: ~1520M. Threads: 6. load average: 1.08 1.09 1.16 1/283 5226
.

            when parent work item is not found
              returns a top level error
            when adjacent is already in place
              creates work item and sets the relative position to be AFTER adjacent
# [RSpecRunTime] RSpec elapsed time: 21 minutes 24.28 seconds. Current RSS: ~1518M. Threads: 6. load average: 1.08 1.09 1.16 1/283 5227
.

          when unsupported widget input is sent
            behaves like a mutation that returns top-level errors
              is expected to contain exactly "Following widget keys are not supported by Test Case type: [:hierarchy_widget]"
        with milestone widget input
          when setting milestone on work item creation
            when assigning a project milestone
              behaves like work item's milestone is set
                sets the work item's milestone (PENDING: cannot set a project level milestone to a group level work item)
            when assigning a group milestone
              behaves like work item's milestone is set
                sets the work item's milestone
        with assignee widget input
          when setting assignee on work item creation
            sets the work item's assignee
        with labels widget input
          when setting labels on work item creation
            sets the work item's labels
      when the namespace_level_work_items feature flag is disabled
        behaves like a mutation that returns top-level errors
          is expected to contain exactly "namespace_level_work_items feature flag is disabled. Only project paths allowed."
    when both projectPath and namespacePath are passed
      behaves like a mutation that returns top-level errors
        is expected to contain exactly "Please provide either projectPath or namespacePath argument, but not both."
    when neither of projectPath nor namespacePath are passed
      behaves like a mutation that returns top-level errors
        is expected to contain exactly "Please provide either projectPath or namespacePath argument, but not both."
  with time tracking widget input
    when adding time estimate and time spent
      with quick action
        behaves like mutation creating work item with time tracking data
          creates work item with time tracking data
      when work item belongs directly to the group
        behaves like mutation creating work item with time tracking data
          creates work item with time tracking data
    when the work item type does not support time tracking widget
      ignores the quick action

# [RSpecRunTime] Finishing example group spec/requests/api/graphql/mutations/work_items/create_spec.rb. It took 48.82 seconds. Expected to take 40.09 seconds.
# [RSpecRunTime] Starting example group spec/requests/api/ci/runner/jobs_artifacts_spec.rb. Expected to take 38.12 seconds.

API::Ci::Runner
  /api/v4/jobs
    artifacts
      POST /api/v4/jobs/:id/artifacts/authorize
        reject requests that did not go through gitlab-workhorse
        when using token as parameter
          and the artifact is too large
            behaves like rejecting artifacts that are too large
              based on plan limit setting
                behaves like failed request
                  responds with payload too large error
# [RSpecRunTime] RSpec elapsed time: 21 minutes 32.96 seconds. Current RSS: ~1513M. Threads: 6. load average: 1.07 1.08 1.15 1/283 5228
.

              based on application setting
                behaves like failed request
                  responds with payload too large error
              based on root namespace setting
                behaves like failed request
                  responds with payload too large error
              based on child namespace setting
                behaves like failed request
                  responds with payload too large error
              based on project setting
                behaves like failed request
                  responds with payload too large error
          posting artifacts to running job
            doesn't update runner info
            behaves like API::CI::Runner application context metadata
              contains correct context metadata
            behaves like runner migrations backoff
              when executing locking database migrations
                returns 429 error
                with runner_migrations_backoff disabled
                  does not return 429
            when using local storage
              behaves like authorizes local file
                succeeds
            when using remote storage
              when direct upload is enabled
                succeeds
              when direct upload is disabled
                behaves like authorizes local file
                  succeeds
            when job does not exist anymore
              returns 403 Forbidden
        when using token as header
          authorizes posting artifacts to running job
          fails to post too large artifact
        when using runners token
          fails to authorize artifacts posting
        authorization token is invalid
          responds with forbidden
        authorize uploading of an lsif artifact
          adds ProcessLsif header
          tracks code_intelligence usage ping
      POST /api/v4/jobs/:id/artifacts
        doesn't update runner info
        behaves like API::CI::Runner application context metadata
          contains correct context metadata
        behaves like runner migrations backoff
          when executing locking database migrations
            returns 429 error
            with runner_migrations_backoff disabled
              does not return 429
        when the artifact is too large
          behaves like rejecting artifacts that are too large
            based on plan limit setting
              behaves like failed request
                responds with payload too large error
            based on application setting
              behaves like failed request
                responds with payload too large error
            based on root namespace setting
              behaves like failed request
                responds with payload too large error
            based on child namespace setting
              behaves like failed request
                responds with payload too large error
            based on project setting
              behaves like failed request
                responds with payload too large error
        when artifacts are being stored inside of tmp path
          when job has been erased
            responds with forbidden
          when job does not exist anymore
            returns 403 Forbidden
          when job is running
            when uses accelerated file post
              for file stored locally
                behaves like successful artifacts upload
                  updates successfully
              for file stored remotely
                when uploaded file has matching pending remote upload to its final location
                  behaves like successful artifacts upload
                    updates successfully
                when uploaded file is uploaded to temporary location
                  and matching temporary remote_id is used
                    behaves like successful artifacts upload
                      updates successfully
                  and invalid remote_id is used
                    responds with internal server error
            when using runners token
              responds with forbidden
          when artifacts post request does not contain file
            fails to post artifacts without file
          GitLab Workhorse is not configured
            fails to post artifacts without GitLab-Workhorse
          Is missing GitLab Workhorse token headers
            fails to post artifacts without GitLab-Workhorse
          when setting an expire date
            when an expire_in is given
              updates when specified
            when no expire_in is given
              ignores if not specified
              with application default
                when default is 5 days
                  sets to application default
                when default is 0
                  does not set expire_in
                when value is never
                  does not set expire_in
          posts artifacts file and metadata file
            when posts data accelerated by workhorse is correct
              stores artifacts and artifacts metadata
            with a malicious file.path param
              rejects the request
            when workhorse header is missing
              rejects the request
            when there is no artifacts file in post data
              is expected to respond with bad request
              does not store metadata
          when access level is private
            sets job artifact access level to private
          when access level is public
            sets job artifact access level to public
          when access level is unknown
            sets job artifact access level to public
          when artifact_type is archive
            when artifact_format is zip
              stores junit test report
              behaves like storing arguments in the application context
                places the expected params in the application context
              behaves like not executing any extra queries for the application context
                does not execute more queries than without adding anything to the application context
            when artifact_format is gzip
              returns an error
          when artifact_type is junit
            when artifact_format is gzip
              stores junit test report
            when artifact_format is raw
              returns an error
          when artifact_type is metrics_referee
            when artifact_format is gzip
              stores metrics_referee data
            when artifact_format is raw
              returns an error
          when artifact_type is network_referee
            when artifact_format is gzip
              stores network_referee data
            when artifact_format is raw
              returns an error
          when artifact_type is dotenv
            when artifact_format is gzip
              stores dotenv file
              parses dotenv file
              when parse error happens
                returns an error
# [RSpecRunTime] RSpec elapsed time: 21 minutes 58.97 seconds. Current RSS: ~1515M. Threads: 6. load average: 1.17 1.11 1.16 1/285 5237
.

            when artifact_format is raw
              returns an error
        when artifacts already exist for the job
          when sha256 is the same of the existing artifact
            ignores the new artifact
          when sha256 is different than the existing artifact
            logs and returns an error
        when object storage throws errors
          does not store artifacts
        when artifacts are being stored outside of tmp path
          fails to post artifacts for outside of tmp path
      GET /api/v4/jobs/:id/artifacts
        doesn't update runner info
        behaves like API::CI::Runner application context metadata
          contains correct context metadata
        behaves like runner migrations backoff
          when executing locking database migrations
            returns 429 error
            with runner_migrations_backoff disabled
              does not return 429
        when job has artifacts
          when using job token
            behaves like successful artifact download
              when artifacts are stored locally
                downloads artifacts
              when artifacts are stored remotely
                when proxy download is being used
                  uses workhorse send-url
                when direct download is being used
                  receives redirect for downloading artifacts
            when the job is no longer running
              behaves like unauthorized request
                responds with unauthorized
          when using token belonging to the dependent job
            behaves like successful artifact download
              when artifacts are stored locally
                downloads artifacts
              when artifacts are stored remotely
                when proxy download is being used
                  uses workhorse send-url
                when direct download is being used
                  receives redirect for downloading artifacts
            when the dependent job is no longer running
              behaves like unauthorized request
                responds with unauthorized
          when using token belonging to another job created by another project member
            behaves like successful artifact download
              when artifacts are stored locally
                downloads artifacts
              when artifacts are stored remotely
                when proxy download is being used
                  uses workhorse send-url
                when direct download is being used
                  receives redirect for downloading artifacts
          when using token belonging to a pending dependent job
            behaves like unauthorized request
              responds with unauthorized
          when using a token from a cross pipeline build
            behaves like successful artifact download
              when artifacts are stored locally
                downloads artifacts
              when artifacts are stored remotely
                when proxy download is being used
                  uses workhorse send-url
                when direct download is being used
                  receives redirect for downloading artifacts
          when using a token from an unrelated project
            responds with forbidden
# [RSpecRunTime] RSpec elapsed time: 22 minutes 13.17 seconds. Current RSS: ~1506M. Threads: 6. load average: 1.14 1.10 1.16 1/283 5238
.

          when using runnners token
            behaves like unauthorized request
              responds with unauthorized
          when using an invalid token
            behaves like unauthorized request
              responds with unauthorized
        when job does not have artifacts
          responds with not found
        when job does not exist anymore
          responds with 403 Forbidden

# [RSpecRunTime] Finishing example group spec/requests/api/ci/runner/jobs_artifacts_spec.rb. It took 44.43 seconds. Expected to take 38.12 seconds.
# [RSpecRunTime] Starting example group spec/requests/api/todos_spec.rb. Expected to take 34.19 seconds.

API::Todos
  GET /todos
    avoids N+1 queries
    when unauthenticated
      returns authentication error
# [RSpecRunTime] RSpec elapsed time: 22 minutes 30.39 seconds. Current RSS: ~1469M. Threads: 6. load average: 1.10 1.10 1.15 1/288 5442
.

    when authenticated
      returns an array of pending todos for current user
      when invalid params
        invalid action
          returns 400
# [RSpecRunTime] RSpec elapsed time: 22 minutes 31.83 seconds. Current RSS: ~1469M. Threads: 6. load average: 1.10 1.10 1.15 1/288 5455
.

        invalid state
          returns 400
        invalid type
          returns 400
      when current user does not have access to one of the TODO's target
        filters out unauthorized todos
# [RSpecRunTime] RSpec elapsed time: 22 minutes 34.99 seconds. Current RSS: ~1483M. Threads: 6. load average: 1.10 1.10 1.15 1/289 5602
.

      and using the author filter
        filters based on author_id param
      and using the type filter
        filters based on type param
# [RSpecRunTime] RSpec elapsed time: 22 minutes 36.79 seconds. Current RSS: ~1485M. Threads: 6. load average: 1.09 1.09 1.15 1/288 5615
.

      and using the state filter
        filters based on state param
# [RSpecRunTime] RSpec elapsed time: 22 minutes 38.34 seconds. Current RSS: ~1487M. Threads: 6. load average: 1.09 1.09 1.15 1/288 5616
.

      and using the project filter
        filters based on project_id param
      and using the group filter
        filters based on project_id param
      and using the action filter
        filters based on action param
    when there is a Design Todo
      is expected to respond with numeric status code ok
      avoids N+1 queries
      includes the Design Todo in the response
# [RSpecRunTime] RSpec elapsed time: 22 minutes 46.77 seconds. Current RSS: ~1477M. Threads: 6. load average: 1.07 1.09 1.15 1/288 5689
.

  POST /todos/:id/mark_as_done
    when unauthenticated
      returns authentication error
    when authenticated
      marks a todo as done
      updates todos cache
      returns 404 if the todo does not belong to the current user
  POST /mark_as_done
    when unauthenticated
      returns authentication error
    when authenticated
      marks all todos as done
      updates todos cache
  POST :id/issuable_type/:issuable_id/todo
    for an issue
      returns an error if the issue author does not have access
      behaves like an issuable
        creates a todo on an issuable
        returns 304 there already exist a todo on that issuable
        returns 404 if the issuable is not found
        returns an error if the issuable is not accessible
# [RSpecRunTime] RSpec elapsed time: 22 minutes 50.66 seconds. Current RSS: ~1491M. Threads: 6. load average: 1.07 1.09 1.15 1/288 5690
.

    for a merge request
      returns an error if the merge request author does not have access
      behaves like an issuable
        creates a todo on an issuable
        returns 304 there already exist a todo on that issuable
        returns 404 if the issuable is not found
        returns an error if the issuable is not accessible
# [RSpecRunTime] RSpec elapsed time: 22 minutes 53.14 seconds. Current RSS: ~1491M. Threads: 6. load average: 1.07 1.09 1.15 1/289 5787
.


# [RSpecRunTime] Finishing example group spec/requests/api/todos_spec.rb. It took 38.5 seconds. Expected to take 34.19 seconds.
# [RSpecRunTime] Starting example group spec/requests/api/graphql/group_query_spec.rb. Expected to take 29.87 seconds.

getting group information
  Query group(fullPath)
    behaves like a working graphql query
      returns a successful response
# [RSpecRunTime] RSpec elapsed time: 22 minutes 55.11 seconds. Current RSS: ~1491M. Threads: 6. load average: 1.07 1.09 1.15 1/288 5788
.

    when unauthenticated
      returns nil for a private group
      returns a public group
# [RSpecRunTime] RSpec elapsed time: 22 minutes 56.87 seconds. Current RSS: ~1493M. Threads: 6. load average: 1.06 1.09 1.15 1/288 5789
.

    when authenticated as user
      returns one of user1's groups
      does not return a non existing group
      does not return a group not attached to user1
      avoids N+1 queries (PENDING: See: https://gitlab.com/gitlab-org/gitlab/-/issues/245272)
      when querying group's descendant groups
        returns all descendant groups user has access to
# [RSpecRunTime] RSpec elapsed time: 23 minutes 10.91 seconds. Current RSS: ~1471M. Threads: 6. load average: 1.05 1.08 1.15 1/284 5790
.

    with timelog categories
      when user is guest
        includes empty timelog categories array
# [RSpecRunTime] RSpec elapsed time: 23 minutes 12.53 seconds. Current RSS: ~1476M. Threads: 6. load average: 1.05 1.08 1.15 1/284 5791
.

      when user has reporter role
        returns the timelog category with all its fields
        when timelog_categories flag is disabled
          returns no timelog categories
# [RSpecRunTime] RSpec elapsed time: 23 minutes 16.23 seconds. Current RSS: ~1482M. Threads: 6. load average: 1.04 1.08 1.14 1/284 5792
.

      for N+1 queries
        avoids N+1 database queries (PENDING: See: https://gitlab.com/gitlab-org/gitlab/-/issues/369396)
    when authenticated as admin
      returns any existing group
      does not return a non existing group
# [RSpecRunTime] RSpec elapsed time: 23 minutes 19.31 seconds. Current RSS: ~1486M. Threads: 6. load average: 1.04 1.08 1.14 1/285 5793
.

    maxAccessLevel
      returns access level of the current user in the group
      behaves like public group in which the user has no membership
        returns no access
# [RSpecRunTime] RSpec elapsed time: 23 minutes 22.81 seconds. Current RSS: ~1479M. Threads: 6. load average: 1.04 1.08 1.14 1/284 5794
.

      when the user is not authenticated
        behaves like public group in which the user has no membership
          returns no access
# [RSpecRunTime] RSpec elapsed time: 23 minutes 23.92 seconds. Current RSS: ~1469M. Threads: 6. load average: 1.04 1.08 1.14 1/284 5795
.


# [RSpecRunTime] Finishing example group spec/requests/api/graphql/group_query_spec.rb. It took 30.77 seconds. Expected to take 29.87 seconds.
# [RSpecRunTime] Starting example group spec/requests/groups_controller_spec.rb. Expected to take 26.88 seconds.

GroupsController
  token authentication
    when public group
      behaves like authenticates sessionless user for the request spec
        show atom
          when the 'private_token' param is populated with the personal access token
            when valid token
              when resource is public
                authenticates user and returns response with ok status
                when user with expired password
                  does not authenticate user and returns response with ok status
# [RSpecRunTime] RSpec elapsed time: 23 minutes 25.21 seconds. Current RSS: ~1473M. Threads: 6. load average: 1.04 1.08 1.14 1/284 5796
.

              when the personal access token has no api scope
                when resource is public
                  does not authenticate user and returns response with ok status
            when invalid token
              when resource is public
                does not authenticate user and returns response with ok status
          when the 'PRIVATE-TOKEN' header is populated with the personal access token
            when valid token
              when resource is public
                authenticates user and returns response with ok status
                when user with expired password
                  does not authenticate user and returns response with ok status
              when the personal access token has no api scope
                when resource is public
                  does not authenticate user and returns response with ok status
            when invalid token
              when resource is public
                does not authenticate user and returns response with ok status
          when the 'feed_token' param is populated with the feed token
            when valid token
              when resource is public
                authenticates user and returns response with ok status
                when user with expired password
                  does not authenticate user and returns response with ok status
            when invalid token
              when resource is public
                does not authenticate user and returns response with ok status
      behaves like authenticates sessionless user for the request spec
        issues atom
          when the 'private_token' param is populated with the personal access token
            when valid token
              when resource is public
                authenticates user and returns response with ok status
                when user with expired password
                  does not authenticate user and returns response with ok status
              when the personal access token has no api scope
                when resource is public
                  does not authenticate user and returns response with ok status
            when invalid token
              when resource is public
                does not authenticate user and returns response with ok status
          when the 'PRIVATE-TOKEN' header is populated with the personal access token
            when valid token
              when resource is public
                authenticates user and returns response with ok status
                when user with expired password
                  does not authenticate user and returns response with ok status
              when the personal access token has no api scope
                when resource is public
                  does not authenticate user and returns response with ok status
            when invalid token
              when resource is public
                does not authenticate user and returns response with ok status
          when the 'feed_token' param is populated with the feed token
            when valid token
              when resource is public
                authenticates user and returns response with ok status
                when user with expired password
                  does not authenticate user and returns response with ok status
            when invalid token
              when resource is public
                does not authenticate user and returns response with ok status
      behaves like authenticates sessionless user for the request spec
        issues_calendar ics
          when the 'private_token' param is populated with the personal access token
            when valid token
              when resource is public
                authenticates user and returns response with ok status
                when user with expired password
                  does not authenticate user and returns response with ok status
              when the personal access token has no api scope
                when resource is public
                  does not authenticate user and returns response with ok status
            when invalid token
              when resource is public
                does not authenticate user and returns response with ok status
          when the 'PRIVATE-TOKEN' header is populated with the personal access token
            when valid token
              when resource is public
                authenticates user and returns response with ok status
                when user with expired password
                  does not authenticate user and returns response with ok status
              when the personal access token has no api scope
                when resource is public
                  does not authenticate user and returns response with ok status
            when invalid token
              when resource is public
                does not authenticate user and returns response with ok status
          when the 'feed_token' param is populated with the feed token
            when valid token
              when resource is public
                authenticates user and returns response with ok status
                when user with expired password
                  does not authenticate user and returns response with ok status
            when invalid token
              when resource is public
                does not authenticate user and returns response with ok status
    when private group
      behaves like authenticates sessionless user for the request spec
        show atom
          when the 'private_token' param is populated with the personal access token
            when valid token
              when resource is private
                authenticates user and returns response with ok status
                when user with expired password
                  does not return response with ok status
# [RSpecRunTime] RSpec elapsed time: 23 minutes 34.86 seconds. Current RSS: ~1509M. Threads: 6. load average: 1.03 1.08 1.14 1/285 5798
.

                when password expiration is not applicable
                  when ldap user
                    authenticates user and returns response with ok status
              when the personal access token has no api scope
                when resource is private
                  does not return response with ok status
            when invalid token
              when resource is private
                does not return response with ok status
          when the 'PRIVATE-TOKEN' header is populated with the personal access token
            when valid token
              when resource is private
                authenticates user and returns response with ok status
                when user with expired password
                  does not return response with ok status
                when password expiration is not applicable
                  when ldap user
                    authenticates user and returns response with ok status
              when the personal access token has no api scope
                when resource is private
                  does not return response with ok status
            when invalid token
              when resource is private
                does not return response with ok status
          when the 'feed_token' param is populated with the feed token
            when valid token
              when resource is private
                authenticates user and returns response with ok status
                when user with expired password
                  does not return response with ok status
                when password expiration is not applicable
                  when ldap user
                    authenticates user and returns response with ok status
            when invalid token
              when resource is private
                does not return response with ok status
      behaves like authenticates sessionless user for the request spec
        issues atom
          when the 'private_token' param is populated with the personal access token
            when valid token
              when resource is private
                authenticates user and returns response with ok status
                when user with expired password
                  does not return response with ok status
# [RSpecRunTime] RSpec elapsed time: 23 minutes 41.42 seconds. Current RSS: ~1500M. Threads: 6. load average: 1.03 1.07 1.14 1/284 5799
.

                when password expiration is not applicable
                  when ldap user
                    authenticates user and returns response with ok status
              when the personal access token has no api scope
                when resource is private
                  does not return response with ok status
            when invalid token
              when resource is private
                does not return response with ok status
          when the 'PRIVATE-TOKEN' header is populated with the personal access token
            when valid token
              when resource is private
                authenticates user and returns response with ok status
                when user with expired password
                  does not return response with ok status
                when password expiration is not applicable
                  when ldap user
                    authenticates user and returns response with ok status
              when the personal access token has no api scope
                when resource is private
                  does not return response with ok status
            when invalid token
              when resource is private
                does not return response with ok status
          when the 'feed_token' param is populated with the feed token
            when valid token
              when resource is private
                authenticates user and returns response with ok status
                when user with expired password
                  does not return response with ok status
                when password expiration is not applicable
                  when ldap user
                    authenticates user and returns response with ok status
            when invalid token
              when resource is private
                does not return response with ok status
      behaves like authenticates sessionless user for the request spec
        issues_calendar ics
          when the 'private_token' param is populated with the personal access token
            when valid token
              when resource is private
                authenticates user and returns response with ok status
                when user with expired password
                  does not return response with ok status
                when password expiration is not applicable
                  when ldap user
                    authenticates user and returns response with ok status
              when the personal access token has no api scope
                when resource is private
                  does not return response with ok status
            when invalid token
              when resource is private
                does not return response with ok status
          when the 'PRIVATE-TOKEN' header is populated with the personal access token
            when valid token
              when resource is private
                authenticates user and returns response with ok status
                when user with expired password
                  does not return response with ok status
                when password expiration is not applicable
                  when ldap user
                    authenticates user and returns response with ok status
              when the personal access token has no api scope
                when resource is private
                  does not return response with ok status
            when invalid token
              when resource is private
                does not return response with ok status
          when the 'feed_token' param is populated with the feed token
            when valid token
              when resource is private
                authenticates user and returns response with ok status
                when user with expired password
                  does not return response with ok status
                when password expiration is not applicable
                  when ldap user
                    authenticates user and returns response with ok status
            when invalid token
              when resource is private
                does not return response with ok status
  POST #preview_markdown
    when type is WorkItem
      when work item exists at the group level
        returns the markdown preview HTML

# [RSpecRunTime] Finishing example group spec/requests/groups_controller_spec.rb. It took 29.73 seconds. Expected to take 26.88 seconds.
# [RSpecRunTime] Starting example group spec/controllers/ldap/omniauth_callbacks_controller_spec.rb. Expected to take 26.49 seconds.

Ldap::OmniauthCallbacksController
  allows sign in
  creates an authentication event record
  respects remember me checkbox
  with sign in prevented
    does not allow sign in
# [RSpecRunTime] RSpec elapsed time: 24 minutes 5.19 seconds. Current RSS: ~1437M. Threads: 6. load average: 1.02 1.07 1.14 1/284 5800
.

  with 2FA
    passes remember_me to the Devise view
# [RSpecRunTime] RSpec elapsed time: 24 minutes 7.67 seconds. Current RSS: ~1438M. Threads: 6. load average: 1.02 1.07 1.14 1/284 5801
.

  access denied
    warns the user
    doesn't authenticate user
# [RSpecRunTime] RSpec elapsed time: 24 minutes 12.51 seconds. Current RSS: ~1434M. Threads: 6. load average: 1.02 1.06 1.13 1/284 5802
.

  sign up
    is allowed
# [RSpecRunTime] RSpec elapsed time: 24 minutes 15.01 seconds. Current RSS: ~1433M. Threads: 6. load average: 1.02 1.06 1.13 1/284 5803
.

  enable admin mode
    with a regular user
      cannot be enabled
# [RSpecRunTime] RSpec elapsed time: 24 minutes 17.57 seconds. Current RSS: ~1435M. Threads: 6. load average: 1.01 1.06 1.13 1/284 5804
.

    with an admin user
      when requested first
        can be enabled
# [RSpecRunTime] RSpec elapsed time: 24 minutes 20.13 seconds. Current RSS: ~1434M. Threads: 6. load average: 1.01 1.06 1.13 1/284 5805
.

      when not requested first
        cannot be enabled
# [RSpecRunTime] RSpec elapsed time: 24 minutes 22.87 seconds. Current RSS: ~1437M. Threads: 6. load average: 1.01 1.06 1.13 1/284 5806
.


# [RSpecRunTime] Finishing example group spec/controllers/ldap/omniauth_callbacks_controller_spec.rb. It took 31.32 seconds. Expected to take 26.49 seconds.
# [RSpecRunTime] RSpec elapsed time: 24 minutes 25.17 seconds. Current RSS: ~1437M. Threads: 6. load average: 1.01 1.06 1.13 1/284 5807
.

# [RSpecRunTime] Starting example group spec/requests/api/graphql/boards/board_list_issues_query_spec.rb. Expected to take 22.62 seconds.

get board lists
  for a project
    behaves like group and project board list issues query
      when the user does not have access to the board
        returns nil
# [RSpecRunTime] RSpec elapsed time: 24 minutes 28.75 seconds. Current RSS: ~1429M. Threads: 6. load average: 1.01 1.06 1.13 1/284 5808
.

      when user can read the board
        can access the issues
        does not set the relative positions of the issues not being returned
        when filtering by confidential
          returns matching issue
# [RSpecRunTime] RSpec elapsed time: 24 minutes 36.64 seconds. Current RSS: ~1482M. Threads: 6. load average: 1.08 1.07 1.14 1/284 5809
.

        when filtering by a unioned argument
          returns correctly filtered issues
# [RSpecRunTime] RSpec elapsed time: 24 minutes 39.14 seconds. Current RSS: ~1489M. Threads: 6. load average: 1.08 1.07 1.14 1/284 5810
.

  for a group
    behaves like group and project board list issues query
      when the user does not have access to the board
        returns nil
# [RSpecRunTime] RSpec elapsed time: 24 minutes 40.79 seconds. Current RSS: ~1482M. Threads: 6. load average: 1.08 1.07 1.13 1/284 5811
.

      when user can read the board
        can access the issues
        does not set the relative positions of the issues not being returned
        when filtering by confidential
          returns matching issue
# [RSpecRunTime] RSpec elapsed time: 24 minutes 48.25 seconds. Current RSS: ~1485M. Threads: 6. load average: 1.07 1.07 1.13 1/284 5812
.

        when filtering by a unioned argument
          returns correctly filtered issues
# [RSpecRunTime] RSpec elapsed time: 24 minutes 50.59 seconds. Current RSS: ~1476M. Threads: 6. load average: 1.06 1.07 1.13 1/284 5813
.


# [RSpecRunTime] Finishing example group spec/requests/api/graphql/boards/board_list_issues_query_spec.rb. It took 25.56 seconds. Expected to take 22.62 seconds.
# [RSpecRunTime] Starting example group spec/requests/api/ml/mlflow/runs_spec.rb. Expected to take 21.07 seconds.

API::Ml::Mlflow::Runs
  POST /projects/:id/ml/mlflow/api/2.0/mlflow/runs/log-metric
    logs the metric
    Error Cases
      behaves like MLflow|shared error cases
        behaves like MLflow|an endpoint that requires authentication
          when not authenticated
            is Unauthorized
# [RSpecRunTime] RSpec elapsed time: 24 minutes 52.52 seconds. Current RSS: ~1473M. Threads: 6. load average: 1.06 1.07 1.13 1/284 5814
.

          when user does not have access
            is Not Found
        when model experiments is unavailable
          is Not Found
      behaves like MLflow|Requires api scope and write permission
        when user has access but token has wrong scope
          is expected to respond with numeric status code forbidden
        when user has access but is not allowed to write
          is Unauthorized
      behaves like MLflow|run_id param error cases
        when run id is not passed
          is Bad Request
        when run_id is invalid
          is Resource Does Not Exist
        when run_id is not in in the project
          is Resource Does Not Exist
      behaves like MLflow|Bad Request on missing required
        when "key" is missing
          behaves like MLflow|Bad Request
            is Bad Request
        when "value" is missing
          behaves like MLflow|Bad Request
            is Bad Request
        when "timestamp" is missing
          behaves like MLflow|Bad Request
            is Bad Request
  GET /projects/:id/ml/mlflow/api/2.0/mlflow/runs/get
    gets the run
    with a relative root URL
      gets a run including a valid artifact_uri
    Error States
      behaves like MLflow|run_id param error cases
        when run id is not passed
          is Bad Request
        when run_id is invalid
          is Resource Does Not Exist
        when run_id is not in in the project
          is Resource Does Not Exist
      behaves like MLflow|shared error cases
        behaves like MLflow|an endpoint that requires authentication
          when not authenticated
            is Unauthorized
          when user does not have access
            is Not Found
        when model experiments is unavailable
          is Not Found
      behaves like MLflow|Requires read_api scope
        when user has access but token has wrong scope
          is expected to respond with numeric status code forbidden
  POST /projects/:id/ml/mlflow/api/2.0/mlflow/runs/search
    searches runs for a project
    pagination and ordering
      when ordering is not provided
        behaves like a paginated search runs request with order
          paginates respecting the provided order by
# [RSpecRunTime] RSpec elapsed time: 24 minutes 58.25 seconds. Current RSS: ~1504M. Threads: 6. load average: 1.06 1.07 1.13 1/284 5815
.

      when order by column is provided and column exists
        behaves like a paginated search runs request with order
          paginates respecting the provided order by
      when order by column is provided and column does not exist
        behaves like a paginated search runs request with order
          paginates respecting the provided order by
      when order by metric is provided and metric exists
        behaves like a paginated search runs request with order
          paginates respecting the provided order by
      when order by metric is provided and metric does not exist
        returns no results
      when order by params is provided
        behaves like a paginated search runs request with order
          paginates respecting the provided order by
    Error States
      when experiment_ids is not passed
        behaves like MLflow|Bad Request
          is Bad Request
      when experiment_ids is empty
        behaves like MLflow|Not Found - Resource Does Not Exist
          is Resource Does Not Exist
      when experiment_ids is invalid
        behaves like MLflow|Not Found - Resource Does Not Exist
          is Resource Does Not Exist
      behaves like MLflow|shared error cases
        behaves like MLflow|an endpoint that requires authentication
          when not authenticated
            is Unauthorized
          when user does not have access
            is Not Found
        when model experiments is unavailable
          is Not Found
      behaves like MLflow|Requires read_api scope
        when user has access but token has wrong scope
          is expected to respond with numeric status code forbidden
  POST /projects/:id/ml/mlflow/api/2.0/mlflow/runs/log-batch
    logs parameters and metrics
    when parameter was already logged
      does not log
    when tag was already logged
      logs only 1
    Error Cases
      when required metric key is missing
        behaves like MLflow|Bad Request
          is Bad Request
      when required param key is missing
        behaves like MLflow|Bad Request
          is Bad Request
      behaves like MLflow|shared error cases
        behaves like MLflow|an endpoint that requires authentication
          when not authenticated
            is Unauthorized
          when user does not have access
            is Not Found
        when model experiments is unavailable
          is Not Found
      behaves like MLflow|Requires api scope and write permission
        when user has access but token has wrong scope
          is expected to respond with numeric status code forbidden
        when user has access but is not allowed to write
          is Unauthorized
      behaves like MLflow|run_id param error cases
        when run id is not passed
          is Bad Request
        when run_id is invalid
          is Resource Does Not Exist
        when run_id is not in in the project
          is Resource Does Not Exist
  POST /projects/:id/ml/mlflow/api/2.0/mlflow/runs/log-parameter
    logs the parameter
    Error Cases
      when parameter was already logged
        behaves like MLflow|Bad Request
          is Bad Request
      behaves like MLflow|shared error cases
        behaves like MLflow|an endpoint that requires authentication
          when not authenticated
            is Unauthorized
          when user does not have access
            is Not Found
        when model experiments is unavailable
          is Not Found
      behaves like MLflow|Requires api scope and write permission
        when user has access but token has wrong scope
          is expected to respond with numeric status code forbidden
        when user has access but is not allowed to write
          is Unauthorized
      behaves like MLflow|run_id param error cases
        when run id is not passed
          is Bad Request
        when run_id is invalid
          is Resource Does Not Exist
        when run_id is not in in the project
          is Resource Does Not Exist
      behaves like MLflow|Bad Request on missing required
        when "key" is missing
          behaves like MLflow|Bad Request
            is Bad Request
        when "value" is missing
          behaves like MLflow|Bad Request
            is Bad Request
  POST /projects/:id/ml/mlflow/api/2.0/mlflow/runs/set-tag
    logs the tag
    Error Cases
      when tag was already logged
        behaves like MLflow|Bad Request
          is Bad Request
      behaves like MLflow|shared error cases
        behaves like MLflow|an endpoint that requires authentication
          when not authenticated
            is Unauthorized
          when user does not have access
            is Not Found
        when model experiments is unavailable
          is Not Found
      behaves like MLflow|Requires api scope and write permission
        when user has access but token has wrong scope
          is expected to respond with numeric status code forbidden
        when user has access but is not allowed to write
          is Unauthorized
      behaves like MLflow|run_id param error cases
        when run id is not passed
          is Bad Request
        when run_id is invalid
          is Resource Does Not Exist
        when run_id is not in in the project
          is Resource Does Not Exist
      behaves like MLflow|Bad Request on missing required
        when "key" is missing
          behaves like MLflow|Bad Request
            is Bad Request
        when "value" is missing
          behaves like MLflow|Bad Request
            is Bad Request
  POST /projects/:id/ml/mlflow/api/2.0/mlflow/runs/update
    updates the run
    Error States
      when status in invalid
        behaves like MLflow|Bad Request
          is Bad Request
      when end_time is invalid
        behaves like MLflow|Bad Request
          is Bad Request
      behaves like MLflow|shared error cases
        behaves like MLflow|an endpoint that requires authentication
          when not authenticated
            is Unauthorized
          when user does not have access
            is Not Found
        when model experiments is unavailable
          is Not Found
      behaves like MLflow|Requires api scope and write permission
        when user has access but token has wrong scope
          is expected to respond with numeric status code forbidden
        when user has access but is not allowed to write
          is Unauthorized
      behaves like MLflow|run_id param error cases
        when run id is not passed
          is Bad Request
        when run_id is invalid
          is Resource Does Not Exist
        when run_id is not in in the project
          is Resource Does Not Exist
  POST /projects/:id/ml/mlflow/api/2.0/mlflow/runs/create
    creates the run
    Error States
      when experiment id is not passed
        behaves like MLflow|Bad Request
          is Bad Request
      when experiment id does not exist
        behaves like MLflow|Not Found - Resource Does Not Exist
          is Resource Does Not Exist
      when experiment exists but is not part of the project
        behaves like MLflow|Not Found - Resource Does Not Exist
          is Resource Does Not Exist
      behaves like MLflow|shared error cases
        behaves like MLflow|an endpoint that requires authentication
          when not authenticated
            is Unauthorized
          when user does not have access
            is Not Found
        when model experiments is unavailable
          is Not Found
      behaves like MLflow|Requires api scope and write permission
        when user has access but token has wrong scope
          is expected to respond with numeric status code forbidden
        when user has access but is not allowed to write
          is Unauthorized

# [RSpecRunTime] Finishing example group spec/requests/api/ml/mlflow/runs_spec.rb. It took 21.88 seconds. Expected to take 21.07 seconds.
# [RSpecRunTime] Starting example group spec/controllers/projects/artifacts_controller_spec.rb. Expected to take 19.22 seconds.

Projects::ArtifactsController
  GET index
    renders the page with data for the artifacts app
# [RSpecRunTime] RSpec elapsed time: 25 minutes 15.52 seconds. Current RSS: ~1533M. Threads: 6. load average: 1.04 1.06 1.13 1/285 5864
.

  DELETE destroy
    deletes the artifact
    redirects to artifacts index page
    sets the notice
    when artifact deletion fails
      redirects to artifacts index page
      sets the notice
# [RSpecRunTime] RSpec elapsed time: 25 minutes 17.64 seconds. Current RSS: ~1527M. Threads: 6. load average: 1.04 1.06 1.13 1/285 5865
.

    when user is not authorized
      does not delete the artifact
  GET download
    when no file type is supplied
      sends the artifacts file
    when artifact is set as private
      and user is not authoirized
        returns forbidden
      and user has access to project
        downloads
    when a file type is supplied
      when an invalid file type is supplied
        returns 404
      when codequality file type is supplied
        when file is stored locally
          sends the codequality report
        when file is stored remotely
          sends the codequality report
          when proxied
            sends the codequality report
          when Google CDN is configured
            redirects to a Google CDN request
    when downloading a debug trace
      when the user does not have update_build permissions
        denies the user access
      when the user has update_build permissions
        sends the trace
  GET browse
    when the directory exists
      renders the browse view
    when the directory does not exist
      responds Not Found
  GET external_file
    when the file exists
      renders the file view
    when the file does not exist
      responds Not Found
  GET file
    when the file is served by GitLab Pages
      when the file exists
        when the external redirect page is enabled
          redirects to the user-generated content warning page
        when the external redirect page is disabled
          renders the file view
    when the file is served through Rails
      when the file exists
        renders the file view
      when the file does not exist
        responds Not Found
    when the project is private
      does not redirect the request
# [RSpecRunTime] RSpec elapsed time: 25 minutes 27.13 seconds. Current RSS: ~1517M. Threads: 6. load average: 1.03 1.06 1.13 1/283 5894
.

    when the project is private and pages access control is enabled
      renders the file view
# [RSpecRunTime] RSpec elapsed time: 25 minutes 28.7 seconds. Current RSS: ~1523M. Threads: 6. load average: 1.03 1.06 1.13 1/284 5924
.

  GET raw
    when the file exists
      when using local file storage
        behaves like a valid file
          serves the file using workhorse
      when using remote file storage
        behaves like a valid file
          serves the file using workhorse
      when artifacts archive is missing
        returns 404
      fetching an artifact of different type
        when the artifact is zip
          behaves like a valid file
            serves the file using workhorse
        when the artifact is not zip
          responds with not found
  GET latest_succeeded
    cannot find the job
      has no such ref
        behaves like not found
          is expected to respond with numeric status code not_found
      has no such job
        behaves like not found
          is expected to respond with numeric status code not_found
      has no path
        behaves like not found
          is expected to respond with numeric status code not_found
    found the job and redirect
      with regular branch
        behaves like redirect to the job
          redirects
      with branch name containing slash
        behaves like redirect to the job
          redirects
      with branch name and path containing slashes
        redirects
      with a failed pipeline on an updated master
        behaves like redirect to the job
          redirects

# [RSpecRunTime] Finishing example group spec/controllers/projects/artifacts_controller_spec.rb. It took 21.63 seconds. Expected to take 19.22 seconds.
# [RSpecRunTime] Starting example group spec/requests/api/graphql/mutations/namespace/package_settings/update_spec.rb. Expected to take 17.27 seconds.

Updating the package settings
  post graphql mutation
    with existing package settings
      user_role: :owner, shared_examples_name: "accepting the mutation request updating the package settings"
        behaves like accepting the mutation request updating the package settings
          behaves like updating the namespace package setting attributes
            updates the namespace package setting
            behaves like not creating the namespace package setting
              doesn't create the namespace package setting
# [RSpecRunTime] RSpec elapsed time: 25 minutes 35.54 seconds. Current RSS: ~1511M. Threads: 6. load average: 1.03 1.06 1.12 1/289 6033
.

          behaves like returning a success
            returns the updated package settings
            behaves like returning response status
              returns success
          behaves like rejecting invalid regex
            for field mavenDuplicateExceptionRegex
              returns an error
              behaves like returning response status
                returns success
              behaves like not creating the namespace package setting
                doesn't create the namespace package setting
      user_role: :maintainer, shared_examples_name: "denying the mutation request"
        behaves like denying the mutation request
          returns no response
          behaves like not creating the namespace package setting
            doesn't create the namespace package setting
# [RSpecRunTime] RSpec elapsed time: 25 minutes 38.86 seconds. Current RSS: ~1506M. Threads: 6. load average: 1.03 1.06 1.12 1/289 6034
.

          behaves like returning response status
            returns success
      user_role: :developer, shared_examples_name: "denying the mutation request"
        behaves like denying the mutation request
          returns no response
          behaves like not creating the namespace package setting
            doesn't create the namespace package setting
          behaves like returning response status
            returns success
      user_role: :reporter, shared_examples_name: "denying the mutation request"
        behaves like denying the mutation request
          returns no response
          behaves like not creating the namespace package setting
            doesn't create the namespace package setting
          behaves like returning response status
            returns success
      user_role: :guest, shared_examples_name: "denying the mutation request"
        behaves like denying the mutation request
          returns no response
          behaves like not creating the namespace package setting
            doesn't create the namespace package setting
          behaves like returning response status
            returns success
      user_role: :anonymous, shared_examples_name: "denying the mutation request"
        behaves like denying the mutation request
          returns no response
          behaves like not creating the namespace package setting
            doesn't create the namespace package setting
          behaves like returning response status
            returns success
    without existing package settings
      user_role: :owner, shared_examples_name: "accepting the mutation request creating the package settings"
        behaves like accepting the mutation request creating the package settings
          behaves like creating the namespace package setting
            creates a new package setting
            saves the settings
            behaves like returning a success
              returns the updated package settings
              behaves like returning response status
                returns success
# [RSpecRunTime] RSpec elapsed time: 25 minutes 46.32 seconds. Current RSS: ~1504M. Threads: 6. load average: 1.02 1.05 1.12 1/284 6035
.

          behaves like returning a success
            returns the updated package settings
            behaves like returning response status
              returns success
          behaves like rejecting invalid regex
            for field mavenDuplicateExceptionRegex
              returns an error
              behaves like returning response status
                returns success
              behaves like not creating the namespace package setting
                doesn't create the namespace package setting
      user_role: :maintainer, shared_examples_name: "denying the mutation request"
        behaves like denying the mutation request
          returns no response
          behaves like not creating the namespace package setting
            doesn't create the namespace package setting
          behaves like returning response status
            returns success
      user_role: :developer, shared_examples_name: "denying the mutation request"
        behaves like denying the mutation request
          returns no response
          behaves like not creating the namespace package setting
            doesn't create the namespace package setting
          behaves like returning response status
            returns success
      user_role: :reporter, shared_examples_name: "denying the mutation request"
        behaves like denying the mutation request
          returns no response
          behaves like not creating the namespace package setting
            doesn't create the namespace package setting
          behaves like returning response status
            returns success
      user_role: :guest, shared_examples_name: "denying the mutation request"
        behaves like denying the mutation request
          returns no response
          behaves like not creating the namespace package setting
            doesn't create the namespace package setting
          behaves like returning response status
            returns success
      user_role: :anonymous, shared_examples_name: "denying the mutation request"
        behaves like denying the mutation request
          returns no response
          behaves like not creating the namespace package setting
            doesn't create the namespace package setting
          behaves like returning response status
            returns success

# [RSpecRunTime] Finishing example group spec/requests/api/graphql/mutations/namespace/package_settings/update_spec.rb. It took 20.64 seconds. Expected to take 17.27 seconds.
# [RSpecRunTime] Starting example group spec/controllers/projects/merge_requests/content_controller_spec.rb. Expected to take 16.47 seconds.

Projects::MergeRequests::ContentController
  user has access to the project
    GET cached_widget
      renders widget MR entity as json
      closes an MR with moved source project
# [RSpecRunTime] RSpec elapsed time: 25 minutes 59.82 seconds. Current RSS: ~1507M. Threads: 6. load average: 1.02 1.05 1.12 1/293 6330
.

    GET widget
      checks whether the MR can be merged
      merged merge request
        renders widget MR entity as json
# [RSpecRunTime] RSpec elapsed time: 26 minutes 5.61 seconds. Current RSS: ~1506M. Threads: 6. load average: 1.02 1.05 1.12 1/293 6616
.

      with coverage data
        renders widget MR entity as json
# [RSpecRunTime] RSpec elapsed time: 26 minutes 9.48 seconds. Current RSS: ~1499M. Threads: 6. load average: 1.02 1.05 1.12 1/293 6887
.

  user does not have access to the project
    GET cached_widget
      returns 404
# [RSpecRunTime] RSpec elapsed time: 26 minutes 11.4 seconds. Current RSS: ~1499M. Threads: 6. load average: 1.01 1.05 1.12 1/293 7020
.

    GET widget
      returns 404
# [RSpecRunTime] RSpec elapsed time: 26 minutes 13.34 seconds. Current RSS: ~1504M. Threads: 6. load average: 1.01 1.05 1.12 1/293 7153
.


# [RSpecRunTime] Finishing example group spec/controllers/projects/merge_requests/content_controller_spec.rb. It took 18.6 seconds. Expected to take 16.47 seconds.
# [RSpecRunTime] Starting example group spec/commands/metrics_server/metrics_server_spec.rb. Expected to take 14.75 seconds.

GitLab metrics server
  behaves like spawns a server
    targeting puma
      behaves like serves metrics endpoint
        serves /metrics endpoint
# [RSpecRunTime] RSpec elapsed time: 26 minutes 19.03 seconds. Current RSS: ~1487M. Threads: 6. load average: 1.01 1.05 1.12 1/293 7160
.

      when using Pathname instance as target directory
        behaves like serves metrics endpoint
          serves /metrics endpoint
# [RSpecRunTime] RSpec elapsed time: 26 minutes 22.39 seconds. Current RSS: ~1486M. Threads: 6. load average: 1.01 1.05 1.11 1/293 7167
.

  behaves like spawns a server
    targeting sidekiq
      behaves like serves metrics endpoint
        serves /metrics endpoint
# [RSpecRunTime] RSpec elapsed time: 26 minutes 25.74 seconds. Current RSS: ~1486M. Threads: 6. load average: 0.93 1.03 1.11 1/288 7174
.

      when using Pathname instance as target directory
        behaves like serves metrics endpoint
          serves /metrics endpoint
# [RSpecRunTime] RSpec elapsed time: 26 minutes 30.25 seconds. Current RSS: ~1489M. Threads: 6. load average: 0.93 1.03 1.11 1/288 7181
.


# [RSpecRunTime] Finishing example group spec/commands/metrics_server/metrics_server_spec.rb. It took 17.18 seconds. Expected to take 14.75 seconds.
# [RSpecRunTime] Starting example group spec/requests/projects/issue_links_controller_spec.rb. Expected to take 14.25 seconds.

Projects::IssueLinksController
  GET /*namespace_id/:project_id/issues/:issue_id/links
    returns JSON response
    when linked issue is a task
      returns a work item path for the linked task using the iid in the path
# [RSpecRunTime] RSpec elapsed time: 26 minutes 34.15 seconds. Current RSS: ~1489M. Threads: 6. load average: 0.86 1.01 1.10 1/287 7202
.

  POST /*namespace_id/:project_id/issues/:issue_id/links
    with success
      returns success JSON
# [RSpecRunTime] RSpec elapsed time: 26 minutes 36.0 seconds. Current RSS: ~1486M. Threads: 6. load average: 0.87 1.01 1.10 1/287 7213
.

    with failure
      when unauthorized
        returns 403
# [RSpecRunTime] RSpec elapsed time: 26 minutes 37.21 seconds. Current RSS: ~1486M. Threads: 6. load average: 0.87 1.01 1.10 1/287 7224
.

      when failing service result
        returns failure JSON
# [RSpecRunTime] RSpec elapsed time: 26 minutes 38.66 seconds. Current RSS: ~1488M. Threads: 6. load average: 0.87 1.01 1.10 1/288 7239
.

  DELETE /*namespace_id/:project_id/issues/:issue_id/link/:id
    when unauthorized
      when no authorization on current project
        returns 403
# [RSpecRunTime] RSpec elapsed time: 26 minutes 39.87 seconds. Current RSS: ~1486M. Threads: 6. load average: 0.87 1.01 1.10 1/288 7250
.

      when no authorization on the related issue project
        returns 404
# [RSpecRunTime] RSpec elapsed time: 26 minutes 41.84 seconds. Current RSS: ~1479M. Threads: 6. load average: 0.96 1.03 1.11 1/288 7261
.

    when authorized
      returns success JSON
# [RSpecRunTime] RSpec elapsed time: 26 minutes 43.94 seconds. Current RSS: ~1478M. Threads: 6. load average: 0.96 1.03 1.11 1/288 7272
.

    when none of issues of the link is not the issue requested in the path
      returns 404
      does not delete the link
# [RSpecRunTime] RSpec elapsed time: 26 minutes 46.82 seconds. Current RSS: ~1479M. Threads: 6. load average: 0.96 1.03 1.10 1/288 7293
.


# [RSpecRunTime] Finishing example group spec/requests/projects/issue_links_controller_spec.rb. It took 16.29 seconds. Expected to take 14.25 seconds.
# [RSpecRunTime] Starting example group spec/requests/api/clusters/agents_spec.rb. Expected to take 12.86 seconds.

API::Clusters::Agents
  GET /projects/:id/cluster_agents
    avoids N+1 queries
    authorized user
      returns project agents
      returns empty list when no agents registered
# [RSpecRunTime] RSpec elapsed time: 26 minutes 50.42 seconds. Current RSS: ~1483M. Threads: 6. load average: 0.96 1.03 1.10 1/287 7294
.

    unauthorized user
      unable to access agents
  GET /projects/:id/cluster_agents/:agent_id
    authorized user
      returns a project agent
      returns a 404 error if agent id is not available
# [RSpecRunTime] RSpec elapsed time: 26 minutes 52.44 seconds. Current RSS: ~1487M. Threads: 6. load average: 0.97 1.03 1.10 1/287 7295
.

    unauthorized user
      unable to access an existing agent
  POST /projects/:id/cluster_agents
    adds agent to project
    returns a 400 error if name not given
    returns a 400 error if name is invalid
    returns 404 error if project does not exist
# [RSpecRunTime] RSpec elapsed time: 26 minutes 55.52 seconds. Current RSS: ~1492M. Threads: 6. load average: 0.97 1.03 1.10 1/287 7296
.

  DELETE /projects/:id/cluster_agents/:agent_id
    deletes agent from project
    returns a 404 error when deleting non existent agent
    returns a 404 error if agent id not given
    returns a 403 if the user is unauthorized to delete
    behaves like 412 response
      for a modified resource
        returns 412 with a JSON error
# [RSpecRunTime] RSpec elapsed time: 26 minutes 58.71 seconds. Current RSS: ~1489M. Threads: 6. load average: 1.05 1.04 1.11 1/287 7297
.

      for an unmodified resource
        returns 204 with an empty body

# [RSpecRunTime] Finishing example group spec/requests/api/clusters/agents_spec.rb. It took 12.53 seconds. Expected to take 12.86 seconds.
# [RSpecRunTime] Starting example group spec/controllers/projects/badges_controller_spec.rb. Expected to take 12.34 seconds.

Projects::BadgesController
  #pipeline
    behaves like a badge resource
      format
        renders the `flat` badge layout by default
        when style param is set to `flat`
          renders the `flat` badge layout
# [RSpecRunTime] RSpec elapsed time: 27 minutes 1.49 seconds. Current RSS: ~1493M. Threads: 6. load average: 1.04 1.04 1.11 1/288 7326
.

        when style param is set to an invalid type
          renders the `flat` (default) badge layout
        when style param is set to `flat-square`
          renders the `flat-square` badge layout
      behaves like customization
        when key_text param is used
          sets custom key text
        when key_width param is used
          sets custom key width
      behaves like when pipelines are public
        behaves like renders badge irrespective of project access levels
          when project is public
            returns the pipeline badge to unauthenticated users
          when project is restricted
            returns the pipeline badge to guest users
      behaves like when pipelines are not public
        when project is public
          returns 404 to unauthenticated users
        when project is restricted to the user
          defaults to project permissions
    with ignore_skipped param
      returns skipped badge if set to false
      does not return skipped badge if set to true
  #coverage
    behaves like a badge resource
      format
        renders the `flat` badge layout by default
        when style param is set to `flat`
          renders the `flat` badge layout
        when style param is set to an invalid type
          renders the `flat` (default) badge layout
        when style param is set to `flat-square`
          renders the `flat-square` badge layout
      behaves like customization
        when key_text param is used
          sets custom key text
        when key_width param is used
          sets custom key width
      behaves like when pipelines are public
        behaves like renders badge irrespective of project access levels
          when project is public
            returns the coverage badge to unauthenticated users
          when project is restricted
            returns the coverage badge to guest users
      behaves like when pipelines are not public
        when project is public
          returns 404 to unauthenticated users
        when project is restricted to the user
          defaults to project permissions
  #release
    behaves like a badge resource
      format
        renders the `flat` badge layout by default
        when style param is set to `flat`
          renders the `flat` badge layout
        when style param is set to an invalid type
          renders the `flat` (default) badge layout
        when style param is set to `flat-square`
          renders the `flat-square` badge layout
      behaves like customization
        when key_text param is used
          sets custom key text
        when key_width param is used
          sets custom key width
        when value_width param is used
          sets custom value width
    behaves like renders badge irrespective of project access levels
      when project is public
        returns the release badge to unauthenticated users
      when project is restricted
        returns the release badge to guest users

# [RSpecRunTime] Finishing example group spec/controllers/projects/badges_controller_spec.rb. It took 14.53 seconds. Expected to take 12.34 seconds.
# [RSpecRunTime] Starting example group spec/requests/import/gitlab_groups_controller_spec.rb. Expected to take 11.32 seconds.

Import::GitlabGroupsController
  POST create
    when importing without a parent group
      successfully creates the group
      imports the group data
# [RSpecRunTime] RSpec elapsed time: 27 minutes 18.35 seconds. Current RSS: ~1512M. Threads: 6. load average: 1.03 1.04 1.10 1/290 7336
.

    when importing to a parent group
      creates a new group under the parent
      when the parent is Public
        imports a Public group
# [RSpecRunTime] RSpec elapsed time: 27 minutes 20.32 seconds. Current RSS: ~1514M. Threads: 6. load average: 1.03 1.04 1.10 1/287 7337
.

      when the parent is Internal
        imports a Internal group
# [RSpecRunTime] RSpec elapsed time: 27 minutes 21.5 seconds. Current RSS: ~1511M. Threads: 6. load average: 1.11 1.06 1.11 1/287 7339
.

      when the parent is Private
        imports a Private group
# [RSpecRunTime] RSpec elapsed time: 27 minutes 22.64 seconds. Current RSS: ~1507M. Threads: 6. load average: 1.11 1.06 1.11 1/287 7341
.

    when supplied invalid params
      responds with an error
    when the user is not authorized to create groups
      returns an error
    when the requests exceed the rate limit
      throttles the requests
    when the parent group is invalid
      does not create a new group
    when the user is not an owner of the parent group
      returns an error
  POST authorize
    behaves like handle uploads authorize request
      POST authorize
        authorizes workhorse header
        rejects requests that bypassed gitlab-workhorse
        when using remote storage
          when direct upload is enabled
            responds with status 200, location of file remote store and object details
          when direct upload is disabled
            handles as a local file

# [RSpecRunTime] Finishing example group spec/requests/import/gitlab_groups_controller_spec.rb. It took 10.83 seconds. Expected to take 11.32 seconds.
# [RSpecRunTime] Starting example group spec/mailers/emails/pipelines_spec.rb. Expected to take 10.56 seconds.

Emails::Pipelines
  #pipeline_success_email
    behaves like correct pipeline information
      has a correct information
      when pipeline on master branch has a merge request
        has correct information that there is no merge request link
# [RSpecRunTime] RSpec elapsed time: 27 minutes 27.39 seconds. Current RSS: ~1511M. Threads: 6. load average: 1.10 1.06 1.11 1/293 7498
.

      when pipeline for merge requests
        has correct information that there is a merge request link
# [RSpecRunTime] RSpec elapsed time: 27 minutes 28.45 seconds. Current RSS: ~1509M. Threads: 6. load average: 1.10 1.06 1.11 1/293 7597
.

      when branch pipeline is set to a merge request as a head pipeline
        has correct information that there is a merge request link
# [RSpecRunTime] RSpec elapsed time: 27 minutes 29.51 seconds. Current RSS: ~1507M. Threads: 6. load average: 1.10 1.06 1.11 1/293 7698
.

    behaves like only accepts a single recipient
      raises an ArgumentError
  #pipeline_failed_email
    behaves like correct pipeline information
      has a correct information
      when pipeline on master branch has a merge request
        has correct information that there is no merge request link
# [RSpecRunTime] RSpec elapsed time: 27 minutes 31.07 seconds. Current RSS: ~1506M. Threads: 6. load average: 1.09 1.05 1.11 1/293 7815
.

      when pipeline for merge requests
        has correct information that there is a merge request link
# [RSpecRunTime] RSpec elapsed time: 27 minutes 32.13 seconds. Current RSS: ~1506M. Threads: 6. load average: 1.09 1.05 1.11 1/293 7913
.

      when branch pipeline is set to a merge request as a head pipeline
        has correct information that there is a merge request link
# [RSpecRunTime] RSpec elapsed time: 27 minutes 33.21 seconds. Current RSS: ~1506M. Threads: 6. load average: 1.09 1.05 1.11 1/293 8014
.

    behaves like only accepts a single recipient
      raises an ArgumentError
  #pipeline_fixed_email
    behaves like correct pipeline information
      has a correct information
      when pipeline on master branch has a merge request
        has correct information that there is no merge request link
# [RSpecRunTime] RSpec elapsed time: 27 minutes 34.72 seconds. Current RSS: ~1507M. Threads: 6. load average: 1.09 1.05 1.11 1/293 8132
.

      when pipeline for merge requests
        has correct information that there is a merge request link
# [RSpecRunTime] RSpec elapsed time: 27 minutes 35.76 seconds. Current RSS: ~1510M. Threads: 6. load average: 1.09 1.05 1.11 1/293 8230
.

      when branch pipeline is set to a merge request as a head pipeline
        has correct information that there is a merge request link
# [RSpecRunTime] RSpec elapsed time: 27 minutes 36.78 seconds. Current RSS: ~1499M. Threads: 6. load average: 1.09 1.05 1.11 1/293 8331
.

    behaves like only accepts a single recipient
      raises an ArgumentError

# [RSpecRunTime] Finishing example group spec/mailers/emails/pipelines_spec.rb. It took 12.4 seconds. Expected to take 10.56 seconds.
# [RSpecRunTime] Starting example group spec/requests/api/graphql/boards/board_lists_query_spec.rb. Expected to take 9.77 seconds.

get board lists
  for a project
    behaves like group and project board lists query
      when the user does not have access to the board
        returns nil
# [RSpecRunTime] RSpec elapsed time: 27 minutes 38.4 seconds. Current RSS: ~1498M. Threads: 6. load average: 1.09 1.05 1.11 1/293 8342
.

      when user can read the board
        sorting and pagination
          when using default sorting
            when ascending
              behaves like sorted paginated query
                behaves like requires variables
                  shared example requires variables to be set
                
                  when sorting
                    sorts correctly
                    when paginating
                      paginates correctly
# [RSpecRunTime] RSpec elapsed time: 27 minutes 40.25 seconds. Current RSS: ~1498M. Threads: 6. load average: 1.09 1.05 1.11 1/292 8343
.

      when querying for a single list
        returns the correct list with issue count for matching issue filters
        when filtering by a unioned argument
          returns correctly filtered issues
# [RSpecRunTime] RSpec elapsed time: 27 minutes 42.94 seconds. Current RSS: ~1501M. Threads: 6. load average: 1.16 1.07 1.11 1/292 8344
.

  for a group
    behaves like group and project board lists query
      when the user does not have access to the board
        returns nil
      when user can read the board
        sorting and pagination
          when using default sorting
            when ascending
              behaves like sorted paginated query
                behaves like requires variables
                  shared example requires variables to be set
                
                  when sorting
                    sorts correctly
                    when paginating
                      paginates correctly
# [RSpecRunTime] RSpec elapsed time: 27 minutes 45.22 seconds. Current RSS: ~1499M. Threads: 6. load average: 1.16 1.07 1.11 1/292 8345
.

      when querying for a single list
        returns the correct list with issue count for matching issue filters
        when filtering by a unioned argument
          returns correctly filtered issues
# [RSpecRunTime] RSpec elapsed time: 27 minutes 48.05 seconds. Current RSS: ~1491M. Threads: 6. load average: 1.15 1.07 1.11 1/287 8346
.


# [RSpecRunTime] Finishing example group spec/requests/api/graphql/boards/board_lists_query_spec.rb. It took 10.94 seconds. Expected to take 9.77 seconds.
# [RSpecRunTime] Starting example group spec/requests/projects/service_desk/custom_email_controller_spec.rb. Expected to take 8.91 seconds.

Projects::ServiceDesk::CustomEmailController
  when user is anonymous
    behaves like a controller that responds with status
      responds with found for GET custom email
      responds with found for POST custom email
      responds with found for PUT custom email
      responds with found for DELETE custom email
# [RSpecRunTime] RSpec elapsed time: 27 minutes 49.77 seconds. Current RSS: ~1487M. Threads: 6. load average: 1.15 1.07 1.11 1/287 8347
.

  with illegitimate user signed in
    behaves like a controller that responds with status
      responds with not_found for GET custom email
      responds with not_found for POST custom email
      responds with not_found for PUT custom email
      responds with not_found for DELETE custom email
# [RSpecRunTime] RSpec elapsed time: 27 minutes 50.87 seconds. Current RSS: ~1497M. Threads: 6. load average: 1.13 1.07 1.11 1/287 8348
.

  with legitimate user signed in
    GET custom email
      behaves like a json response with empty values
        returns json response with empty values
    POST custom email
      adds custom email and kicks of verification
      when custom_email param is not valid
        does not add custom email
      when smtp_password param is not valid
        does not add custom email
      when the verification process fails fast
        adds custom email and kicks of verification and returns verification error state
    PUT custom email
      does not update records
    DELETE custom email
      does not touch any records
    when custom email is set up
      and verification started
        behaves like a deletable resource
          DELETE custom email
            behaves like a json response with empty values
              returns json response with empty values
        GET custom email
          returns custom email in its current state
        POST custom email
          returns custom email in its current state
        PUT custom email
          marks custom email as enabled
      and verification finished
        behaves like a deletable resource
          DELETE custom email
            behaves like a json response with empty values
              returns json response with empty values
        GET custom email
          returns custom email in its current state
        PUT custom email
          marks custom email as enabled
      and verification failed
        behaves like a deletable resource
          DELETE custom email
            behaves like a json response with empty values
              returns json response with empty values
        GET custom email
          returns custom email in its current state
        PUT custom email
          does not mark custom email as enabled

# [RSpecRunTime] Finishing example group spec/requests/projects/service_desk/custom_email_controller_spec.rb. It took 9.02 seconds. Expected to take 8.91 seconds.
# [RSpecRunTime] Starting example group spec/requests/api/graphql/mutations/issues/set_crm_contacts_spec.rb. Expected to take 8.47 seconds.

Setting issues crm contacts
  when the user has no permission
    returns expected error
# [RSpecRunTime] RSpec elapsed time: 27 minutes 58.52 seconds. Current RSS: ~1503M. Threads: 6. load average: 1.12 1.07 1.11 1/287 8349
.

  when the user has permission
    behaves like successful mutation
      replace
        updates the issue with correct contacts
        with an empty list of contacts
          removes all contacts
# [RSpecRunTime] RSpec elapsed time: 28 minutes 0.26 second. Current RSS: ~1500M. Threads: 6. load average: 1.12 1.07 1.11 1/287 8350
.

      append
        updates the issue with correct contacts
      remove
        updates the issue with correct contacts
    when the contact does not exist
      returns expected error
    when the contact belongs to a different group
      returns expected error
# [RSpecRunTime] RSpec elapsed time: 28 minutes 3.97 seconds. Current RSS: ~1490M. Threads: 6. load average: 1.11 1.06 1.11 1/287 8351
.

    when attempting to add more than 6
      returns expected error
    when trying to remove non-existent contact
      raises expected error
  when crm_enabled is false
    raises expected error
# [RSpecRunTime] RSpec elapsed time: 28 minutes 6.71 seconds. Current RSS: ~1484M. Threads: 6. load average: 1.10 1.06 1.11 1/287 8352
.


# [RSpecRunTime] Finishing example group spec/requests/api/graphql/mutations/issues/set_crm_contacts_spec.rb. It took 9.64 seconds. Expected to take 8.47 seconds.
# [RSpecRunTime] Starting example group spec/requests/api/admin/batched_background_migrations_spec.rb. Expected to take 8.02 seconds.

API::Admin::BatchedBackgroundMigrations
  GET /admin/batched_background_migrations/:id
    fetches the batched background migration
    behaves like GET request permissions for admin mode
      behaves like when admin
        behaves like makes request
          returns
        behaves like makes request
          returns
      behaves like when user
        returns
        behaves like makes request
          returns
    when the batched background migration does not exist
      returns 404
    when multiple database is enabled
      uses the correct connection
      when migration has completed jobs
        calculates the progress using the CI database
    when the database name does not exist
      returns bad request
  GET /admin/batched_background_migrations
    behaves like GET request permissions for admin mode
      behaves like when admin
        behaves like makes request
          returns
        behaves like makes request
          returns
      behaves like when user
        returns
        behaves like makes request
          returns
    when is an admin user
      returns batched background migrations
      when multiple database is enabled
        when CI database is provided
          uses CI database connection
          returns CI database records
          when the database name does not exist
            returns bad request
# [RSpecRunTime] RSpec elapsed time: 28 minutes 11.84 seconds. Current RSS: ~1498M. Threads: 6. load average: 1.18 1.08 1.11 1/287 8353
.

  PUT /admin/batched_background_migrations/:id/resume
    pauses the batched background migration
    behaves like PUT request permissions for admin mode
      behaves like when admin
        behaves like makes request
          returns
        behaves like makes request
          returns
      behaves like when user
        returns
        behaves like makes request
          returns
    when the batched background migration does not exist
      returns 404
    when the migration is not paused
      returns 422
    when multiple database is enabled
      uses the correct connection
      when the database name does not exist
        returns bad request
  PUT /admin/batched_background_migrations/:id/pause
    pauses the batched background migration
    behaves like PUT request permissions for admin mode
      behaves like when admin
        behaves like makes request
          returns
        behaves like makes request
          returns
      behaves like when user
        returns
        behaves like makes request
          returns
    when the batched background migration does not exist
      returns 404
    when the migration is not active
      returns 422
    when multiple database is enabled
      uses the correct connection
      when the database name does not exist
        returns bad request

# [RSpecRunTime] Finishing example group spec/requests/api/admin/batched_background_migrations_spec.rb. It took 9.95 seconds. Expected to take 8.02 seconds.
# [RSpecRunTime] Starting example group spec/requests/api/ci/runners_reset_registration_token_spec.rb. Expected to take 7.23 seconds.

API::Ci::Runners
  /api/v4/runners/reset_registration_token
    POST /api/v4/runners/reset_registration_token
      does not reset runner registration token
      when unauthenticated
        behaves like unauthenticated
          returns 401 error
# [RSpecRunTime] RSpec elapsed time: 28 minutes 18.7 seconds. Current RSS: ~1514M. Threads: 6. load average: 1.16 1.08 1.11 1/287 8354
.

      when unauthorized
        with a non-admin instance member
          behaves like unauthorized
            returns 403 error
# [RSpecRunTime] RSpec elapsed time: 28 minutes 19.83 seconds. Current RSS: ~1537M. Threads: 6. load average: 1.16 1.08 1.11 1/287 8355
.

      when runner registration is allowed
        resets runner registration token
# [RSpecRunTime] RSpec elapsed time: 28 minutes 21.13 seconds. Current RSS: ~1549M. Threads: 6. load average: 1.15 1.08 1.11 2/288 8356
.

  /api/v4/groups/:id/runners/reset_registration_token
    POST /api/v4/groups/:id/runners/reset_registration_token
      does not reset runner registration token
      when unauthorized
        when not a group member
          behaves like not found
            returns 404 error
# [RSpecRunTime] RSpec elapsed time: 28 minutes 22.39 seconds. Current RSS: ~1543M. Threads: 6. load average: 1.15 1.08 1.11 1/287 8357
.

        with a non-admin group member
          behaves like unauthorized
            returns 403 error
      when malformed id is provided
        behaves like not found
          returns 404 error
      when runner registration is allowed
        resets runner registration token
  /api/v4/projects/:id/runners/reset_registration_token
    POST /api/v4/projects/:id/runners/reset_registration_token
      does not reset runner registration token
      when unauthorized
        when not a project member
          behaves like not found
            returns 404 error
# [RSpecRunTime] RSpec elapsed time: 28 minutes 26.57 seconds. Current RSS: ~1514M. Threads: 6. load average: 1.14 1.07 1.11 1/287 8358
.

        with a non-admin project member
          behaves like unauthorized
            returns 403 error
      when malformed id is provided
        behaves like not found
          returns 404 error
      when runner registration is allowed
        resets runner registration token

# [RSpecRunTime] Finishing example group spec/requests/api/ci/runners_reset_registration_token_spec.rb. It took 11.18 seconds. Expected to take 7.23 seconds.
# [RSpecRunTime] Starting example group spec/requests/api/admin/broadcast_messages_spec.rb. Expected to take 6.99 seconds.

API::Admin::BroadcastMessages
  GET /broadcast_messages
    returns an Array of BroadcastMessages
  GET /broadcast_messages/:id
    returns the specified message
  POST /broadcast_messages
    returns a 401 for anonymous users
    behaves like POST request permissions for admin mode
      behaves like when admin
        behaves like makes request
          returns
        behaves like makes request
          returns
      behaves like when user
        returns
        behaves like makes request
          returns
    as an admin
      requires the `message` parameter
      defines sane default start and end times
      accepts a custom background and foreground color
      accepts target access levels
      accepts a target path
      accepts a broadcast type
      uses default broadcast type
      errors for invalid broadcast type
      accepts an active dismissable value
      when create does not persist record
        calls render_validation_error!
# [RSpecRunTime] RSpec elapsed time: 28 minutes 31.62 seconds. Current RSS: ~1537M. Threads: 6. load average: 1.12 1.07 1.11 1/287 8359
.

  PUT /broadcast_messages/:id
    returns a 401 for anonymous users
    behaves like PUT request permissions for admin mode
      behaves like when admin
        behaves like makes request
          returns
        behaves like makes request
          returns
      behaves like when user
        returns
        behaves like makes request
          returns
    as an admin
      accepts new background and foreground colors
      accepts new start and end times
      accepts a new message
      accepts a new target_access_levels
      accepts a new target_path
      accepts a new broadcast_type
      errors for invalid broadcast type
      accepts a new dismissable value
      when update fails
        calls render_validation_error!
# [RSpecRunTime] RSpec elapsed time: 28 minutes 34.53 seconds. Current RSS: ~1544M. Threads: 6. load average: 1.12 1.07 1.11 1/287 8360
.

  DELETE /broadcast_messages/:id
    returns a 401 for anonymous users
    deletes the broadcast message for admins
    behaves like DELETE request permissions for admin mode
      behaves like when admin
        behaves like makes request
          returns
        behaves like makes request
          returns
      behaves like when user
        returns
        behaves like makes request
          returns
    behaves like 412 response
      for a modified resource
        returns 412 with a JSON error
      for an unmodified resource
        returns 204 with an empty body

# [RSpecRunTime] Finishing example group spec/requests/api/admin/broadcast_messages_spec.rb. It took 8.29 seconds. Expected to take 6.99 seconds.
# [RSpecRunTime] Starting example group spec/requests/api/graphql/mutations/issues/set_due_date_spec.rb. Expected to take 6.24 seconds.

Setting Due Date of an issue
  returns an error if the user is not allowed to update the issue
  when due date value is a valid date
    updates the issue due date
# [RSpecRunTime] RSpec elapsed time: 28 minutes 38.99 seconds. Current RSS: ~1519M. Threads: 6. load average: 1.11 1.07 1.11 1/287 8361
.

  when due date value is null
    updates the issue to remove the due date
# [RSpecRunTime] RSpec elapsed time: 28 minutes 40.38 seconds. Current RSS: ~1518M. Threads: 6. load average: 1.11 1.07 1.11 1/287 8362
.

  when due date argument is not given
    returns an error
# [RSpecRunTime] RSpec elapsed time: 28 minutes 41.54 seconds. Current RSS: ~1518M. Threads: 6. load average: 1.11 1.07 1.11 1/287 8363
.

  when the due date value is not a valid time
    returns a coercion error
# [RSpecRunTime] RSpec elapsed time: 28 minutes 42.77 seconds. Current RSS: ~1509M. Threads: 6. load average: 1.11 1.07 1.11 1/287 8364
.


# [RSpecRunTime] Finishing example group spec/requests/api/graphql/mutations/issues/set_due_date_spec.rb. It took 6.63 seconds. Expected to take 6.24 seconds.
# [RSpecRunTime] Starting example group spec/requests/api/import_bitbucket_server_spec.rb. Expected to take 6.13 seconds.

API::ImportBitbucketServer
  POST /import/bitbucket_server
    with no optional parameters
      rejects requests when Bitbucket Server Importer is disabled
      returns 201 response when the project is imported successfully
# [RSpecRunTime] RSpec elapsed time: 28 minutes 44.27 seconds. Current RSS: ~1496M. Threads: 6. load average: 1.11 1.07 1.11 1/287 8365
.

    with a new project name
      returns 201 response when the project is imported successfully with a new project name
    with an invalid URL
      returns 400 response due to a blocked URL
    with an invalid timeout strategy
      returns 400 response due to a blocked URL
    with a new namespace
      returns 201 response when the project is imported successfully to a new namespace
# [RSpecRunTime] RSpec elapsed time: 28 minutes 47.74 seconds. Current RSS: ~1489M. Threads: 6. load average: 1.18 1.08 1.11 1/287 8366
.

    with a private inaccessible namespace
      returns 401 response when user can not create projects in the chosen namespace
    with an inaccessible bitbucket server instance
      raises a connection error

# [RSpecRunTime] Finishing example group spec/requests/api/import_bitbucket_server_spec.rb. It took 6.25 seconds. Expected to take 6.13 seconds.
# [RSpecRunTime] Starting example group spec/requests/projects/merge_requests/context_commit_diffs_spec.rb. Expected to take 5.84 seconds.

Merge Requests Context Commit Diffs
  GET diffs_batch
    without caching
      behaves like serializes diffs with expected arguments
        serializes paginated merge request diff collection
# [RSpecRunTime] RSpec elapsed time: 28 minutes 51.88 seconds. Current RSS: ~1497M. Threads: 6. load average: 1.16 1.08 1.11 1/293 8533
.

    with caching
      when the request has not been cached
        behaves like serializes diffs with expected arguments
          serializes paginated merge request diff collection
      when the request has already been cached
        does not serialize diffs
        with the different user
          behaves like serializes diffs with expected arguments
            serializes paginated merge request diff collection
# [RSpecRunTime] RSpec elapsed time: 28 minutes 55.23 seconds. Current RSS: ~1492M. Threads: 6. load average: 1.16 1.08 1.11 1/292 8675
.


# [RSpecRunTime] Finishing example group spec/requests/projects/merge_requests/context_commit_diffs_spec.rb. It took 6.21 seconds. Expected to take 5.84 seconds.
# [RSpecRunTime] Starting example group spec/requests/projects/settings/packages_and_registries_controller_spec.rb. Expected to take 5.29 seconds.

Projects::Settings::PackagesAndRegistriesController
  GET #show
    when user is authorized
      pushes the feature flag "packages_protected_packages" to the view
      pushes the feature flag "container_registry_protected_containers" to the view
      when feature flag "packages_protected_packages" is disabled
        does not push the feature flag "packages_protected_packages" to the view
# [RSpecRunTime] RSpec elapsed time: 28 minutes 58.18 seconds. Current RSS: ~1486M. Threads: 6. load average: 1.15 1.08 1.11 1/292 8676
.

      when feature flag "container_registry_protected_containers" is disabled
        does not push the feature flag "container_registry_protected_containers" to the view
  GET #cleanup_tags
    when user is unauthorized
      shows 404
    when user is authorized
      renders content
      when registry is disabled
        shows 404
# [RSpecRunTime] RSpec elapsed time: 29 minutes 0.73 second. Current RSS: ~1489M. Threads: 6. load average: 1.14 1.08 1.11 1/293 8677
.

      when container registry is disabled on project
        shows 404

# [RSpecRunTime] Finishing example group spec/requests/projects/settings/packages_and_registries_controller_spec.rb. It took 5.86 seconds. Expected to take 5.29 seconds.
# [RSpecRunTime] Starting example group spec/requests/api/graphql/jobs_query_spec.rb. Expected to take 5.07 seconds.

getting job information
  when user is admin
    has full access to all jobs
    when filtered by status
      gets pending jobs
      gets pending and failed jobs
# [RSpecRunTime] RSpec elapsed time: 29 minutes 5.19 seconds. Current RSS: ~1485M. Threads: 6. load average: 1.14 1.08 1.11 1/292 8678
.

    when N+1 queries
      avoids N+1 queries successfully
# [RSpecRunTime] RSpec elapsed time: 29 minutes 6.57 seconds. Current RSS: ~1486M. Threads: 6. load average: 1.13 1.08 1.11 1/287 8679
.

  if the user is not an admin
    has no access to the jobs

# [RSpecRunTime] Finishing example group spec/requests/api/graphql/jobs_query_spec.rb. It took 5.82 seconds. Expected to take 5.07 seconds.
# [RSpecRunTime] Starting example group spec/requests/api/graphql/project/work_item_types_spec.rb. Expected to take 5.0 seconds.

getting a list of work item types for a project
  behaves like graphql work item type list request spec
    when user has access to the resource parent
      returns all default work item types
      prevents N+1 queries
      behaves like a working graphql query that returns data
        contains data
        behaves like a working graphql query
          returns a successful response
# [RSpecRunTime] RSpec elapsed time: 29 minutes 12.75 seconds. Current RSS: ~1466M. Threads: 6. load average: 1.12 1.08 1.11 1/287 8680
.

    when user doesn't have access to the parent
      does not return the parent

# [RSpecRunTime] Finishing example group spec/requests/api/graphql/project/work_item_types_spec.rb. It took 6.38 seconds. Expected to take 5.0 seconds.
# [RSpecRunTime] Starting example group spec/requests/api/graphql/mutations/ci/job/retry_spec.rb. Expected to take 4.56 seconds.

JobRetry
  returns an error if the user is not allowed to retry the job
  when the job is not retryable
    returns an error
# [RSpecRunTime] RSpec elapsed time: 29 minutes 15.19 seconds. Current RSS: ~1465M. Threads: 6. load average: 1.12 1.08 1.11 1/287 8681
.

  when given CI variables
    applies them to a retried manual job
# [RSpecRunTime] RSpec elapsed time: 29 minutes 16.42 seconds. Current RSS: ~1471M. Threads: 6. load average: 1.19 1.09 1.11 1/287 8682
.

  when the job is a Ci::Build
    retries the build
# [RSpecRunTime] RSpec elapsed time: 29 minutes 17.52 seconds. Current RSS: ~1476M. Threads: 6. load average: 1.19 1.09 1.11 1/287 8683
.

  when the job is a Ci::Bridge
    retries the bridge

# [RSpecRunTime] Finishing example group spec/requests/api/graphql/mutations/ci/job/retry_spec.rb. It took 5.05 seconds. Expected to take 4.56 seconds.
# [RSpecRunTime] Starting example group spec/requests/admin/projects_controller_spec.rb. Expected to take 4.44 seconds.

Admin::ProjectsController
  PUT #update
    when changing the name
      returns success
      changes the name
# [RSpecRunTime] RSpec elapsed time: 29 minutes 20.05 seconds. Current RSS: ~1480M. Threads: 6. load average: 1.19 1.09 1.11 1/287 8684
.

    when changing the description
      returns success
      changes the project description
# [RSpecRunTime] RSpec elapsed time: 29 minutes 21.08 seconds. Current RSS: ~1482M. Threads: 6. load average: 1.17 1.09 1.11 2/288 8685
.

    when changing the name to an invalid name
      does not change the name
    when disabling runner registration
      changes runner registration
      resets the registration token
    when enabling runner registration
      changes runner registration
      does not reset the registration token

# [RSpecRunTime] Finishing example group spec/requests/admin/projects_controller_spec.rb. It took 5.38 seconds. Expected to take 4.44 seconds.
# [RSpecRunTime] Starting example group spec/requests/api/graphql/mutations/labels/create_spec.rb. Expected to take 4.11 seconds.

Mutations::Labels::Create
  when creating a project label
    behaves like labels create mutation
      when the user does not have permission to create a label
        does not create the label
        behaves like a mutation that returns a top-level access error
          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"
# [RSpecRunTime] RSpec elapsed time: 29 minutes 25.45 seconds. Current RSS: ~1484M. Threads: 6. load average: 1.17 1.09 1.11 1/287 8686
.

      when the user has permission to create a label
        when the parent (project_path or group_path) param is given
          creates the label
          does not create a label when there are errors
  when creating a group label
    behaves like labels create mutation
      when the user does not have permission to create a label
        does not create the label
        behaves like a mutation that returns a top-level access error
          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"
      when the user has permission to create a label
        when the parent (project_path or group_path) param is given
          creates the label
          does not create a label when there are errors
# [RSpecRunTime] RSpec elapsed time: 29 minutes 28.16 seconds. Current RSS: ~1488M. Threads: 6. load average: 1.16 1.09 1.11 1/287 8687
.

  when neither project_path nor group_path param is given
    does not create the label
    behaves like a mutation that returns top-level errors
      is expected to contain exactly "Exactly one of group_path or project_path arguments is required"

# [RSpecRunTime] Finishing example group spec/requests/api/graphql/mutations/labels/create_spec.rb. It took 5.0 seconds. Expected to take 4.11 seconds.
# [RSpecRunTime] Starting example group spec/controllers/admin/topics_controller_spec.rb. Expected to take 3.93 seconds.

Admin::TopicsController
  GET #index
    renders the template
    as a normal user
      renders a 404 error
  GET #new
    renders the template
    as a normal user
      renders a 404 error
  GET #edit
    renders the template
    as a normal user
      renders a 404 error
  POST #create
    creates topic
    shows error message for invalid topic name
    shows error message if topic name not unique (case insensitive)
    shows error message for invalid topic title
    redirects to the topics list
    as a normal user
      renders a 404 error
  PUT #update
    updates topic
    shows error message for invalid topic
    shows error message if topic not unique (case insensitive)
    as a normal user
      renders a 404 error
  DELETE #destroy
    removes topic
    as a normal user
      renders a 404 error
  POST #merge
    merges source topic into target topic
    renders a 404 error for non-existing id
    renders a 400 error for identical topic ids
    as a normal user
      renders a 404 error

# [RSpecRunTime] Finishing example group spec/controllers/admin/topics_controller_spec.rb. It took 4.28 seconds. Expected to take 3.93 seconds.
# [RSpecRunTime] Starting example group spec/requests/api/graphql/subscriptions/notes/updated_spec.rb. Expected to take 3.62 seconds.

Subscriptions::Notes::Updated
  when user is unauthorized
    does not receive any data
# [RSpecRunTime] RSpec elapsed time: 29 minutes 34.43 seconds. Current RSS: ~1508M. Threads: 6. load average: 1.14 1.09 1.11 1/287 8688
.

  when user is authorized
    receives updated note data
    when note is confidential
      and user has permission to read confidential notes
        receives updated note data
# [RSpecRunTime] RSpec elapsed time: 29 minutes 35.91 seconds. Current RSS: ~1507M. Threads: 6. load average: 1.13 1.09 1.11 1/287 8689
.

      and user does not have permission to read confidential notes
        does not receive updated note data

# [RSpecRunTime] Finishing example group spec/requests/api/graphql/subscriptions/notes/updated_spec.rb. It took 3.58 seconds. Expected to take 3.62 seconds.
# [RSpecRunTime] Starting example group spec/requests/api/graphql/mutations/discussions/toggle_resolve_spec.rb. Expected to take 3.54 seconds.

Toggling the resolve status of a discussion
  when the user does not have permission
    behaves like a mutation that returns a top-level access error
      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"
# [RSpecRunTime] RSpec elapsed time: 29 minutes 39.05 seconds. Current RSS: ~1507M. Threads: 6. load average: 1.13 1.09 1.11 1/293 8850
.

  when user has permission
    returns the discussion without errors
    when an error is encountered
      behaves like a mutation that returns errors in the response
        is expected to contain exactly "Discussion failed to be resolved"
# [RSpecRunTime] RSpec elapsed time: 29 minutes 40.55 seconds. Current RSS: ~1498M. Threads: 6. load average: 1.13 1.09 1.11 1/293 8889
.


# [RSpecRunTime] Finishing example group spec/requests/api/graphql/mutations/discussions/toggle_resolve_spec.rb. It took 3.95 seconds. Expected to take 3.54 seconds.
# [RSpecRunTime] Starting example group spec/requests/api/graphql/mutations/achievements/award_spec.rb. Expected to take 3.44 seconds.

Mutations::Achievements::Award
  when the user does not have permission
    does not create an achievement
    behaves like a mutation that returns a top-level access error
      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"
# [RSpecRunTime] RSpec elapsed time: 29 minutes 42.08 seconds. Current RSS: ~1489M. Threads: 6. load average: 1.28 1.12 1.12 1/292 8890
.

  when the user has permission
    creates an achievement
    returns the new achievement
    when the params are invalid
      returns the validation error
# [RSpecRunTime] RSpec elapsed time: 29 minutes 43.22 seconds. Current RSS: ~1487M. Threads: 6. load average: 1.28 1.12 1.12 1/292 8891
.

    when the recipient_id is invalid
      returns the validation error
    when the achievement_id is invalid
      returns the validation error
    when the feature flag is disabled
      returns the relevant error

# [RSpecRunTime] Finishing example group spec/requests/api/graphql/mutations/achievements/award_spec.rb. It took 3.61 seconds. Expected to take 3.44 seconds.
# [RSpecRunTime] Starting example group spec/controllers/health_check_controller_spec.rb. Expected to take 3.18 seconds.

HealthCheckController
  GET #index
    when services are up but accessed from outside whitelisted ips
      returns a not found page
      when services are accessed with token
        supports passing the token in the header
        supports passing the token in query params
# [RSpecRunTime] RSpec elapsed time: 29 minutes 46.03 seconds. Current RSS: ~1507M. Threads: 6. load average: 1.26 1.12 1.12 1/292 8892
.

    when services are up and accessed from whitelisted ips
      supports successful plaintext response
      supports successful json response
      supports successful xml response
      supports successful responses for specific checks
# [RSpecRunTime] RSpec elapsed time: 29 minutes 47.09 seconds. Current RSS: ~1506M. Threads: 6. load average: 1.26 1.12 1.12 1/292 8893
.

    when a service is down but NO access token
      returns a not found page
    when a service is down and an endpoint is accessed from whitelisted ip
      supports failure plaintext response
      supports failure json response
      supports failure xml response
      supports failure responses for specific checks

# [RSpecRunTime] Finishing example group spec/controllers/health_check_controller_spec.rb. It took 3.67 seconds. Expected to take 3.18 seconds.
# [RSpecRunTime] Starting example group spec/requests/projects/network_controller_spec.rb. Expected to take 3.16 seconds.

Projects::NetworkController
  GET #show
    when user is unauthorized
      shows 404
# [RSpecRunTime] RSpec elapsed time: 29 minutes 49.18 seconds. Current RSS: ~1510M. Threads: 6. load average: 1.26 1.12 1.12 1/292 8920
.

    when user is authorized
      renders content
      assigns url
      when ref_type is provided
        assigns url with ref_type
# [RSpecRunTime] RSpec elapsed time: 29 minutes 52.94 seconds. Current RSS: ~1506M. Threads: 6. load average: 1.24 1.11 1.12 1/291 8949
.


# [RSpecRunTime] Finishing example group spec/requests/projects/network_controller_spec.rb. It took 5.09 seconds. Expected to take 3.16 seconds.
# [RSpecRunTime] Starting example group spec/requests/users/pins_spec.rb. Expected to take 2.9 seconds.

Pinning navigation menu items
  PUT /-/users/pins
    with valid params
      saves the menu_item_ids for the correct panel
      does not change menu_item_ids of other panels
      responds OK
# [RSpecRunTime] RSpec elapsed time: 29 minutes 54.15 seconds. Current RSS: ~1496M. Threads: 6. load average: 1.24 1.11 1.12 1/291 8950
.

    with invalid params
      when panel name is unknown
        behaves like unchanged data and error response
          does not modify existing panel data
          responds with error
      when menu_item_ids is not array of strings
        behaves like unchanged data and error response
          does not modify existing panel data
          responds with error
      when params are not permitted
        behaves like unchanged data and error response
          does not modify existing panel data
          responds with error
    when request size exceeds 100 kilobyte
      responds with :payload_too_large

# [RSpecRunTime] Finishing example group spec/requests/users/pins_spec.rb. It took 3.31 seconds. Expected to take 2.9 seconds.
# [RSpecRunTime] Starting example group spec/requests/admin/slacks_controller_spec.rb. Expected to take 2.84 seconds.

Admin::SlacksController
  behaves like Integrations::SlackControllerSettings
    GET slack_auth
      when valid CSRF token is provided
        calls service and redirects with no alerts if result is successful
        calls service and redirects with an alert if there is a service error
        when the flag is disabled
          responds with status :not_found
# [RSpecRunTime] RSpec elapsed time: 29 minutes 57.45 seconds. Current RSS: ~1503M. Threads: 6. load average: 1.22 1.11 1.11 1/291 8951
.

        when user is unauthorized
          returns not found response
      when no CSRF token is provided
        returns 403
      when there was an OAuth error
        redirects with an alert
    DELETE destroy
      destroys the record and redirects back to #edit
      enqueues a worker job
      when the flag is disabled
        responds with status :not_found
# [RSpecRunTime] RSpec elapsed time: 29 minutes 59.3 seconds. Current RSS: ~1501M. Threads: 6. load average: 1.22 1.11 1.11 1/291 8952
.

      when user is unauthorized
        returns not found response

# [RSpecRunTime] Finishing example group spec/requests/admin/slacks_controller_spec.rb. It took 3.38 seconds. Expected to take 2.84 seconds.
# [RSpecRunTime] Starting example group spec/requests/api/graphql/project/branch_protections/merge_access_levels_spec.rb. Expected to take 2.73 seconds.

getting merge access levels for a branch protection
  behaves like a GraphQL query for access levels
    when request AccessLevel type objects as a guest user
      is expected not to be present
      behaves like a working graphql query
        returns a successful response
# [RSpecRunTime] RSpec elapsed time: 30 minutes 1.55 seconds. Current RSS: ~1498M. Threads: 6. load average: 1.20 1.11 1.11 1/290 8953
.

    when request AccessLevel type objects as a maintainer
      query
        avoids N+1 queries
      response
        returns all the access level attributes
        behaves like a working graphql query
          returns a successful response

# [RSpecRunTime] Finishing example group spec/requests/api/graphql/project/branch_protections/merge_access_levels_spec.rb. It took 3.17 seconds. Expected to take 2.73 seconds.
# [RSpecRunTime] Starting example group spec/controllers/projects/work_items_controller_spec.rb. Expected to take 2.5 seconds.

Projects::WorkItemsController
  POST authorize
    is expected to have request urgency :high
    when user is anonymous
      behaves like redirects to new session path
        redirects to sign in
# [RSpecRunTime] RSpec elapsed time: 30 minutes 4.25 seconds. Current RSS: ~1494M. Threads: 6. load average: 1.20 1.11 1.11 1/287 8954
.

  GET show
    is expected to have request urgency :low
  POST import_csv
    is expected to have request urgency :low
    with authorized user
      when feature is available
        when the upload is processed successfully
          renders the correct message
        when file is not valid
          renders the error message
        when service response includes errors
          renders the error message
      when feature is not available
        behaves like response with 404 status
          renders a not found message
    with unauthorised user
      behaves like response with 404 status
        renders a not found message
    with anonymous user
      redirects to sign in page

# [RSpecRunTime] Finishing example group spec/controllers/projects/work_items_controller_spec.rb. It took 3.29 seconds. Expected to take 2.5 seconds.
# [RSpecRunTime] Starting example group spec/requests/api/graphql/mutations/environments/update_spec.rb. Expected to take 2.45 seconds.

Update Environment
  when updating tier
    updates successfully
# [RSpecRunTime] RSpec elapsed time: 30 minutes 7.99 seconds. Current RSS: ~1507M. Threads: 6. load average: 1.18 1.11 1.11 1/288 8982
.

  when updating external URL
    updates successfully
    when url is invalid
      returns error

# [RSpecRunTime] Finishing example group spec/requests/api/graphql/mutations/environments/update_spec.rb. It took 2.72 seconds. Expected to take 2.45 seconds.
# [RSpecRunTime] Starting example group spec/requests/admin/impersonation_tokens_controller_spec.rb. Expected to take 2.41 seconds.

Admin::ImpersonationTokensController
  when impersonation is enabled
    responds ok
  when impersonation is disabled
    shows error page for index page
    responds with 404 for create action
    responds with 404 for revoke action
  #create
    behaves like #create access token
      when POST is successful
        renders JSON with a new token
      when POST is unsuccessful
        renders JSON with an error

# [RSpecRunTime] Finishing example group spec/requests/admin/impersonation_tokens_controller_spec.rb. It took 2.57 seconds. Expected to take 2.41 seconds.
# [RSpecRunTime] Starting example group spec/requests/groups/group_members_controller_spec.rb. Expected to take 2.19 seconds.

Groups::GroupMembersController
  GET /groups/*group_id/-/group_members
    pushes feature flag to frontend
  GET /groups/*group_id/-/group_members/request_access
    behaves like request_accessable
      when not signed in
        redirects to sign in page
      when signed in
        redirects back to group members page and displays the relevant notice
        when something goes wrong
          redirects back to group members page and displays the relevant notice
        when already a member
          redirects back to group members page and displays the relevant notice
        when a pending access request exists
          redirects back to group members page and displays the relevant notice

# [RSpecRunTime] Finishing example group spec/requests/groups/group_members_controller_spec.rb. It took 2.6 seconds. Expected to take 2.19 seconds.
# [RSpecRunTime] Starting example group spec/controllers/projects/web_ide_schemas_controller_spec.rb. Expected to take 2.07 seconds.

Projects::WebIdeSchemasController
  GET show
    when branch is invalid
      returns 422
# [RSpecRunTime] RSpec elapsed time: 30 minutes 15.46 seconds. Current RSS: ~1506M. Threads: 6. load average: 1.17 1.11 1.11 1/289 9013
.

    when a valid schema exists
      returns the schema
    when an error occurs parsing the schema
      returns 422 with the error

# [RSpecRunTime] Finishing example group spec/controllers/projects/web_ide_schemas_controller_spec.rb. It took 2.28 seconds. Expected to take 2.07 seconds.
# [RSpecRunTime] Starting example group spec/requests/api/graphql/mutations/incident_management/timeline_event/create_spec.rb. Expected to take 1.99 seconds.

Creating an incident timeline event
  creates incident timeline event
  when note is more than 280 characters long
    behaves like timeline event mutation responds with validation error
      responds with a validation error
# [RSpecRunTime] RSpec elapsed time: 30 minutes 18.23 seconds. Current RSS: ~1499M. Threads: 6. load average: 1.24 1.12 1.12 1/293 9030
.

  when timeline event tags are passed
    creates incident timeline event with tags

# [RSpecRunTime] Finishing example group spec/requests/api/graphql/mutations/incident_management/timeline_event/create_spec.rb. It took 2.46 seconds. Expected to take 1.99 seconds.
# [RSpecRunTime] Starting example group spec/requests/api/integrations/slack/events_spec.rb. Expected to take 1.83 seconds.

API::Integrations::Slack::Events
  POST /integrations/slack/events
    behaves like Slack request verification
      unauthorized request
        when the slack_app_signing_secret setting is not set
          behaves like an unauthorized request
            is expected to respond with numeric status code unauthorized
        when the timestamp header has expired
          behaves like an unauthorized request
            is expected to respond with numeric status code unauthorized
        when the timestamp header is missing
          behaves like an unauthorized request
            is expected to respond with numeric status code unauthorized
        when the signature header is missing
          behaves like an unauthorized request
            is expected to respond with numeric status code unauthorized
        when the signature is not verified
          behaves like an unauthorized request
            is expected to respond with numeric status code unauthorized
        when type param is missing
          behaves like a successful request that generates a tracked error
            is expected to be empty
    when type param is unknown
      generates a tracked error
    when type param is url_verification
      responds in-request with the challenge
    when event.type param is app_home_opened
      calls the Slack API (integration-style test)

# [RSpecRunTime] Finishing example group spec/requests/api/integrations/slack/events_spec.rb. It took 2.25 seconds. Expected to take 1.83 seconds.
# [RSpecRunTime] Starting example group spec/mailers/emails/imports_spec.rb. Expected to take 1.8 seconds.

Emails::Imports
  #bulk_import_csv_user_mapping
    when bulk_import does not have errors
      sends success email
    when bulk_import has errors
      sends failed email
    behaves like appearance header and footer enabled
      contains header and footer
    behaves like appearance header and footer not enabled
      does not contain header and footer
  #github_gists_import_errors_email
    sends success email
    behaves like appearance header and footer enabled
      contains header and footer
    behaves like appearance header and footer not enabled
      does not contain header and footer
  #bulk_import_complete
    sends complete email

# [RSpecRunTime] Finishing example group spec/mailers/emails/imports_spec.rb. It took 1.87 seconds. Expected to take 1.8 seconds.
# [RSpecRunTime] Starting example group spec/controllers/profiles/emails_controller_spec.rb. Expected to take 1.63 seconds.

Profiles::EmailsController
  #create
    sends an email confirmation
    when email address is invalid
      does not send an email confirmation
    behaves like respects the rate limit
      after the rate limit is exceeded
        does not send any email
        displays an alert
  #resend_confirmation_instructions
    resends an email confirmation
    email does not exist
      does not send an email confirmation
    behaves like respects the rate limit
      after the rate limit is exceeded
        does not send any email
        displays an alert

# [RSpecRunTime] Finishing example group spec/controllers/profiles/emails_controller_spec.rb. It took 1.69 seconds. Expected to take 1.63 seconds.
# [RSpecRunTime] Starting example group spec/requests/api/graphql/mutations/ci/job/unschedule_spec.rb. Expected to take 1.54 seconds.

JobUnschedule
  unschedules a job
  returns an error if the user is not allowed to unschedule the job

# [RSpecRunTime] Finishing example group spec/requests/api/graphql/mutations/ci/job/unschedule_spec.rb. It took 1.84 seconds. Expected to take 1.54 seconds.
# [RSpecRunTime] RSpec elapsed time: 30 minutes 26.59 seconds. Current RSS: ~1507M. Threads: 6. load average: 1.20 1.12 1.11 1/292 9031
.

# [RSpecRunTime] Starting example group spec/controllers/admin/cohorts_controller_spec.rb. Expected to take 1.51 seconds.

Admin::CohortsController
  GET #index
    behaves like tracking unique visits
      tracks unique visit if the format is HTML
      tracks unique visit if DNT is not enabled
      does not track unique visit if DNT is enabled
      does not track unique visit if the format is JSON
# [RSpecRunTime] RSpec elapsed time: 30 minutes 28.0 seconds. Current RSS: ~1504M. Threads: 6. load average: 1.20 1.12 1.11 1/288 9032
.

    behaves like Snowplow event tracking with RedisHLL context
      behaves like Snowplow event tracking
        is emitted

# [RSpecRunTime] Finishing example group spec/controllers/admin/cohorts_controller_spec.rb. It took 1.83 seconds. Expected to take 1.51 seconds.
# [RSpecRunTime] Starting example group spec/requests/api/graphql/mutations/alert_management/alerts/todo/create_spec.rb. Expected to take 1.39 seconds.

Creating a todo for the alert
  creates a todo for the current user
  todo already exists
    surfaces an error
# [RSpecRunTime] RSpec elapsed time: 30 minutes 29.97 seconds. Current RSS: ~1500M. Threads: 6. load average: 1.20 1.12 1.11 1/288 9033
.


# [RSpecRunTime] Finishing example group spec/requests/api/graphql/mutations/alert_management/alerts/todo/create_spec.rb. It took 1.68 seconds. Expected to take 1.39 seconds.
# [RSpecRunTime] Starting example group spec/requests/api/graphql/mutations/admin/sidekiq_queues/delete_jobs_spec.rb. Expected to take 1.27 seconds.

Deleting Sidekiq jobs
  when the user is not an admin
    behaves like a mutation that returns top-level errors
      is expected to contain exactly "You must be an admin to use this mutation"
  when the user is an admin
    when valid request
      returns info about the deleted jobs
    when no required params are provided
      behaves like a mutation that returns errors in the response
        is expected to contain exactly "No metadata provided"
    when the queue does not exist
      behaves like a mutation that returns top-level errors
        is expected to contain exactly "Queue authorized_projects_2 not found"

# [RSpecRunTime] Finishing example group spec/requests/api/graphql/mutations/admin/sidekiq_queues/delete_jobs_spec.rb. It took 1.66 seconds. Expected to take 1.27 seconds.
# [RSpecRunTime] Starting example group spec/requests/whats_new_controller_spec.rb. Expected to take 1.18 seconds.

WhatsNewController
  GET #index
    with no page param
      responds with paginated data and headers
    with page param
      passes the page parameter
      returns a 404 if page param is negative
    with whats_new_variant = disabled
      returns a 404

# [RSpecRunTime] Finishing example group spec/requests/whats_new_controller_spec.rb. It took 1.27 seconds. Expected to take 1.18 seconds.
# [RSpecRunTime] Starting example group spec/controllers/oauth/authorized_applications_controller_spec.rb. Expected to take 1.11 seconds.

Oauth::AuthorizedApplicationsController
  includes Two-factor enforcement concern
  GET #index
    responds with 404
  DELETE #destroy
    revokes both access grants and tokens when id is passed
    revokes a specific token when token_id is passed

# [RSpecRunTime] Finishing example group spec/controllers/oauth/authorized_applications_controller_spec.rb. It took 1.39 seconds. Expected to take 1.11 seconds.
# [RSpecRunTime] Starting example group spec/controllers/users/callouts_controller_spec.rb. Expected to take 0.93 second.

Users::CalloutsController
  POST #create
    with valid feature name
      when callout entry does not exist
        creates a callout entry with dismissed state
        returns success
      when callout entry already exists
        returns success
    with invalid feature name
      returns bad request

# [RSpecRunTime] Finishing example group spec/controllers/users/callouts_controller_spec.rb. It took 0.95 second. Expected to take 0.93 second.
# [RSpecRunTime] Starting example group spec/requests/profiles/comment_templates_controller_spec.rb. Expected to take 0.9 second.

Profiles::CommentTemplatesController
  GET #index
    is expected to respond with numeric status code ok
    sets hide search settings ivar

# [RSpecRunTime] Finishing example group spec/requests/profiles/comment_templates_controller_spec.rb. It took 1.1 seconds. Expected to take 0.9 second.
# [RSpecRunTime] Starting example group spec/controllers/concerns/content_security_policy_patch_spec.rb. Expected to take 0.69 second.

ContentSecurityPolicyPatch
  calls helper method
  does not emit any warnings
  with Rails version 7.2
    emits a deprecation warning

# [RSpecRunTime] Finishing example group spec/controllers/concerns/content_security_policy_patch_spec.rb. It took 0.73 second. Expected to take 0.69 second.
# [RSpecRunTime] Starting example group spec/controllers/profiles/avatars_controller_spec.rb. Expected to take 0.53 second.

Profiles::AvatarsController
  removes avatar from DB by calling destroy

# [RSpecRunTime] Finishing example group spec/controllers/profiles/avatars_controller_spec.rb. It took 0.54 second. Expected to take 0.53 second.
# [RSpecRunTime] Starting example group spec/controllers/jira_connect/app_descriptor_controller_spec.rb. Expected to take 0.37 second.

JiraConnect::AppDescriptorController
  #show
    GET #show
      returns JSON app descriptor

# [RSpecRunTime] Finishing example group spec/controllers/jira_connect/app_descriptor_controller_spec.rb. It took 0.38 second. Expected to take 0.37 second.
auto_explain log contains 1637 entries for main, writing to /builds/gitlab-org/gitlab/auto_explain/rspec-integration-pg14-6-16.339.main.ndjson.gz
took 33.834115402
auto_explain log contains 1638 entries for ci, writing to /builds/gitlab-org/gitlab/auto_explain/rspec-integration-pg14-6-16.339.ci.ndjson.gz
took 33.110108913
[TEST PROF INFO] EventProf results for sql.active_record

Total time: 06:23.511 of 30:30.466 (20.95%)
Total events: 263661

Top 5 slowest suites (by time):

Notify (./spec/mailers/notify_spec.rb:6) – 02:08.935 (86149 / 950) of 09:22.398 (22.93%)
API::Users (./spec/requests/api/users_spec.rb:5) – 00:32.770 (29019 / 718) of 03:33.592 (15.34%)
API::Labels (./spec/requests/api/labels_spec.rb:5) – 00:29.746 (21030 / 104) of 01:44.624 (28.43%)
API::Ci::Variables (./spec/requests/api/ci/variables_spec.rb:5) – 00:27.600 (18942 / 41) of 01:30.510 (30.49%)
ProjectsController (./spec/controllers/projects_controller_spec.rb:5) – 00:26.570 (18276 / 162) of 02:20.902 (18.86%)

Knapsack report was generated. Preview:
{
  "spec/mailers/notify_spec.rb": 562.3982517049999,
  "spec/requests/api/users_spec.rb": 213.59235781400002,
  "spec/controllers/projects_controller_spec.rb": 140.9016745900003,
  "spec/requests/api/labels_spec.rb": 104.62451677099989,
  "spec/requests/api/ci/variables_spec.rb": 90.51001063600006,
  "spec/requests/api/graphql/mutations/work_items/update_spec.rb": 67.40773801600017,
  "spec/requests/api/usage_data_non_sql_metrics_spec.rb": 54.47311505300013,
  "spec/requests/api/graphql/mutations/work_items/create_spec.rb": 48.81533215299987,
  "spec/requests/api/ci/runner/jobs_artifacts_spec.rb": 44.42659686700017,
  "spec/requests/api/todos_spec.rb": 38.49759893700002,
  "spec/requests/api/graphql/group_query_spec.rb": 30.773274525000033,
  "spec/requests/groups_controller_spec.rb": 29.73039765400017,
  "spec/controllers/ldap/omniauth_callbacks_controller_spec.rb": 31.319594602000052,
  "spec/requests/api/graphql/boards/board_list_issues_query_spec.rb": 25.556542464999893,
  "spec/requests/api/ml/mlflow/runs_spec.rb": 21.87985582600004,
  "spec/controllers/projects/artifacts_controller_spec.rb": 21.63256520599998,
  "spec/requests/api/graphql/mutations/namespace/package_settings/update_spec.rb": 20.63853964000009,
  "spec/controllers/projects/merge_requests/content_controller_spec.rb": 18.599207253999793,
  "spec/commands/metrics_server/metrics_server_spec.rb": 17.175227826000082,
  "spec/requests/projects/issue_links_controller_spec.rb": 16.28188230700016,
  "spec/requests/api/clusters/agents_spec.rb": 12.529903065000326,
  "spec/controllers/projects/badges_controller_spec.rb": 14.527442818000054,
  "spec/requests/import/gitlab_groups_controller_spec.rb": 10.833403237999846,
  "spec/mailers/emails/pipelines_spec.rb": 12.400133508999716,
  "spec/requests/api/graphql/boards/board_lists_query_spec.rb": 10.941693914999632,
  "spec/requests/projects/service_desk/custom_email_controller_spec.rb": 9.017059863999748,
  "spec/requests/api/graphql/mutations/issues/set_crm_contacts_spec.rb": 9.641736792999836,
  "spec/requests/api/admin/batched_background_migrations_spec.rb": 9.953566137000053,
  "spec/requests/api/ci/runners_reset_registration_token_spec.rb": 11.175213589000123,
  "spec/requests/api/admin/broadcast_messages_spec.rb": 8.288543256999674,
  "spec/requests/api/graphql/mutations/issues/set_due_date_spec.rb": 6.632938855000248,
  "spec/requests/api/import_bitbucket_server_spec.rb": 6.246233138999742,
  "spec/requests/projects/merge_requests/context_commit_diffs_spec.rb": 6.21019575299988,
  "spec/requests/projects/settings/packages_and_registries_controller_spec.rb": 5.86384295300013,
  "spec/requests/api/graphql/jobs_query_spec.rb": 5.823368907999793,
  "spec/requests/api/graphql/project/work_item_types_spec.rb": 6.380809152999973,
  "spec/requests/api/graphql/mutations/ci/job/retry_spec.rb": 5.053616464999777,
  "spec/requests/admin/projects_controller_spec.rb": 5.383775237000009,
  "spec/requests/api/graphql/mutations/labels/create_spec.rb": 5.0042039610002576,
  "spec/controllers/admin/topics_controller_spec.rb": 4.283816002999629,
  "spec/requests/api/graphql/subscriptions/notes/updated_spec.rb": 3.5752555040003244,
  "spec/requests/api/graphql/mutations/discussions/toggle_resolve_spec.rb": 3.9506259199997658,
  "spec/requests/api/graphql/mutations/achievements/award_spec.rb": 3.612912129000051,
  "spec/controllers/health_check_controller_spec.rb": 3.671213082000122,
  "spec/requests/projects/network_controller_spec.rb": 5.0939206909997665,
  "spec/requests/users/pins_spec.rb": 3.307928264000111,
  "spec/requests/admin/slacks_controller_spec.rb": 3.3805164850000438,
  "spec/requests/api/graphql/project/branch_protections/merge_access_levels_spec.rb": 3.165456180000092,
  "spec/controllers/projects/work_items_controller_spec.rb": 3.291321634999804,
  "spec/requests/api/graphql/mutations/environments/update_spec.rb": 2.718502370999886,
  "spec/requests/admin/impersonation_tokens_controller_spec.rb": 2.574151946999791,
  "spec/requests/groups/group_members_controller_spec.rb": 2.6044131339999694,
  "spec/controllers/projects/web_ide_schemas_controller_spec.rb": 2.2824889500002428,
  "spec/requests/api/graphql/mutations/incident_management/timeline_event/create_spec.rb": 2.4614204399999835,
  "spec/requests/api/integrations/slack/events_spec.rb": 2.2486418940002295,
  "spec/mailers/emails/imports_spec.rb": 1.8712959070003308,
  "spec/controllers/profiles/emails_controller_spec.rb": 1.6938493180000478,
  "spec/requests/api/graphql/mutations/ci/job/unschedule_spec.rb": 1.8441952010002751,
  "spec/controllers/admin/cohorts_controller_spec.rb": 1.8293554420001783,
  "spec/requests/api/graphql/mutations/alert_management/alerts/todo/create_spec.rb": 1.684148377999918,
  "spec/requests/api/graphql/mutations/admin/sidekiq_queues/delete_jobs_spec.rb": 1.6589322720001292,
  "spec/requests/whats_new_controller_spec.rb": 1.2660069160001513,
  "spec/controllers/oauth/authorized_applications_controller_spec.rb": 1.3876800819998607,
  "spec/controllers/users/callouts_controller_spec.rb": 0.947580143000323,
  "spec/requests/profiles/comment_templates_controller_spec.rb": 1.0965630660002716,
  "spec/controllers/concerns/content_security_policy_patch_spec.rb": 0.7272237479996875,
  "spec/controllers/profiles/avatars_controller_spec.rb": 0.5421283179998682,
  "spec/controllers/jira_connect/app_descriptor_controller_spec.rb": 0.3787534369998866
}

Knapsack global time execution for tests: 30m 30s

Pending: (Failures listed here are expected and do not affect your suite's status)

  1) ProjectsController#update hashed storage behaves like updating a project when only renaming a project path upgrades and move project to hashed storage when project was originally legacy
     # No reason given
     # ./spec/controllers/projects_controller_spec.rb:769

  2) ProjectsController#update legacy storage behaves like updating a project when only renaming a project path doesnt change the disk_path when using hashed storage
     # No reason given
     # ./spec/controllers/projects_controller_spec.rb:754

  3) Create a work item when user has permissions to create a work item when creating work items in a group behaves like creates work item with milestone widget input when setting milestone on work item creation when assigning a project milestone behaves like work item's milestone is set sets the work item's milestone
     # cannot set a project level milestone to a group level work item
     # ./spec/requests/api/graphql/mutations/work_items/create_spec.rb:211

  4) getting group information Query group(fullPath) when authenticated as user avoids N+1 queries
     # See: https://gitlab.com/gitlab-org/gitlab/-/issues/245272
     Failure/Error:
       expect { post_multiplex(queries, current_user: admin) }
         .to issue_same_number_of_queries_as { post_graphql(group_query(group1), current_user: admin) }

       Expected 124 queries, but got 227

       SELECT "personal_access_tokens".* FROM "personal_access_tokens" WHERE "personal_access_tokens"."token_digest" = 'Xh7y/BjJsRXArqokcvp04Tv6iazMGnQeh5t+qTtCHmg=' LIMIT 1 /*application:test,correlation_id:36257c94977646ef753ee45f36da0b06,db_config_name:main,line:/app/models/concerns/token_authenticatable_strategies/digest.rb:12:in `find_token_authenticatable'*/

       SAVEPOINT active_record_2 /*application:test,correlation_id:36257c94977646ef753ee45f36da0b06,db_config_name:main,line:/ee/app/models/license.rb:94:in `filter_map'*/

       INSERT INTO "personal_access_tokens" ("user_id", "name", "expires_at", "created_at", "updated_at", "scopes", "token_digest") VALUES (1401, 'PAT 989', '2024-07-10', '2024-06-10 05:39:52.311122', '2024-06-10 05:39:52.311122', '---
       - api
       ', 'A1Z0aQurxysAx00NPpjNBiDF8s2UN5dj7gQiAhm3M70=') RETURNING "id" /*application:test,correlation_id:36257c94977646ef753ee45f36da0b06,db_config_name:main,line:/lib/gitlab/database/query_analyzers/prevent_cross_database_modification.rb:34:in `temporary_ignore_tables_in_transaction'*/

       RELEASE SAVEPOINT active_record_2 /*application:test,correlation_id:36257c94977646ef753ee45f36da0b06,db_config_name:main,line:<internal:kernel>:90:in `tap'*/

       SELECT "personal_access_tokens".* FROM "personal_access_tokens" WHERE "personal_access_tokens"."token_digest" = 'A1Z0aQurxysAx00NPpjNBiDF8s2UN5dj7gQiAhm3M70=' LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/concerns/token_authenticatable_strategies/digest.rb:12:in `find_token_authenticatable'*/

       SELECT 1 AS one FROM "geo_nodes" LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/ee/lib/gitlab/geo.rb:95:in `block in enabled?'*/

       UPDATE "personal_access_tokens" SET "last_used_at" = '2024-06-10 05:39:52.364645' WHERE "personal_access_tokens"."id" = 996 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/services/personal_access_tokens/last_used_service.rb:18:in `block in execute'*/

       SELECT "users".* FROM find_users_by_id(1401) AS users WHERE ("users"."id" IS NOT NULL) LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/concerns/use_sql_function_for_primary_key_lookups.rb:12:in `_query_by_sql'*/

       SELECT "namespaces"."id", "namespaces"."name", "namespaces"."path", "namespaces"."owner_id", "namespaces"."created_at", "namespaces"."updated_at", "namespaces"."type", "namespaces"."description", "namespaces"."avatar", "namespaces"."membership_lock", "namespaces"."share_with_group_lock", "namespaces"."visibility_level", "namespaces"."request_access_enabled", "namespaces"."ldap_sync_status", "namespaces"."ldap_sync_error", "namespaces"."ldap_sync_last_update_at", "namespaces"."ldap_sync_last_successful_update_at", "namespaces"."ldap_sync_last_sync_at", "namespaces"."description_html", "namespaces"."lfs_enabled", "namespaces"."parent_id", "namespaces"."shared_runners_minutes_limit", "namespaces"."repository_size_limit", "namespaces"."require_two_factor_authentication", "namespaces"."two_factor_grace_period", "namespaces"."cached_markdown_version", "namespaces"."project_creation_level", "namespaces"."runners_token", "namespaces"."file_template_project_id", "namespaces"."saml_discovery_token", "namespaces"."runners_token_encrypted", "namespaces"."custom_project_templates_group_id", "namespaces"."auto_devops_enabled", "namespaces"."extra_shared_runners_minutes_limit", "namespaces"."last_ci_minutes_notification_at", "namespaces"."last_ci_minutes_usage_notification_level", "namespaces"."subgroup_creation_level", "namespaces"."max_pages_size", "namespaces"."max_artifacts_size", "namespaces"."mentions_disabled", "namespaces"."default_branch_protection", "namespaces"."max_personal_access_token_lifetime", "namespaces"."push_rule_id", "namespaces"."shared_runners_enabled", "namespaces"."allow_descendants_override_disabled_shared_runners", "namespaces"."traversal_ids", "namespaces"."organization_id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND "namespaces"."id" IN (SELECT "routes"."source_id" FROM "routes" WHERE "routes"."source_type" = 'Namespace' AND ((LOWER(routes.path) = LOWER('group96')) OR (LOWER(routes.path) = LOWER('group97')))) /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/concerns/use_sql_function_for_primary_key_lookups.rb:12:in `_query_by_sql'*/

       SELECT "routes".* FROM "routes" WHERE "routes"."source_type" = 'Namespace' AND "routes"."source_id" IN (1773, 1774) /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/loaders/full_path_model_loader.rb:26:in `block in find'*/

       SELECT "saml_providers".* FROM "saml_providers" WHERE "saml_providers"."group_id" = 1773 LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/ee/app/models/ee/group.rb:402:in `block in root_saml_provider'*/

       SELECT "namespaces"."id", "namespaces"."name", "namespaces"."path", "namespaces"."owner_id", "namespaces"."created_at", "namespaces"."updated_at", "namespaces"."type", "namespaces"."description", "namespaces"."avatar", "namespaces"."membership_lock", "namespaces"."share_with_group_lock", "namespaces"."visibility_level", "namespaces"."request_access_enabled", "namespaces"."ldap_sync_status", "namespaces"."ldap_sync_error", "namespaces"."ldap_sync_last_update_at", "namespaces"."ldap_sync_last_successful_update_at", "namespaces"."ldap_sync_last_sync_at", "namespaces"."description_html", "namespaces"."lfs_enabled", "namespaces"."parent_id", "namespaces"."shared_runners_minutes_limit", "namespaces"."repository_size_limit", "namespaces"."require_two_factor_authentication", "namespaces"."two_factor_grace_period", "namespaces"."cached_markdown_version", "namespaces"."project_creation_level", "namespaces"."runners_token", "namespaces"."file_template_project_id", "namespaces"."saml_discovery_token", "namespaces"."runners_token_encrypted", "namespaces"."custom_project_templates_group_id", "namespaces"."auto_devops_enabled", "namespaces"."extra_shared_runners_minutes_limit", "namespaces"."last_ci_minutes_notification_at", "namespaces"."last_ci_minutes_usage_notification_level", "namespaces"."subgroup_creation_level", "namespaces"."max_pages_size", "namespaces"."max_artifacts_size", "namespaces"."mentions_disabled", "namespaces"."default_branch_protection", "namespaces"."max_personal_access_token_lifetime", "namespaces"."push_rule_id", "namespaces"."shared_runners_enabled", "namespaces"."allow_descendants_override_disabled_shared_runners", "namespaces"."traversal_ids", "namespaces"."organization_id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND "namespaces"."id" = 1773 LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/concerns/use_sql_function_for_primary_key_lookups.rb:12:in `_query_by_sql'*/

       SELECT "namespaces"."id", "namespaces"."name", "namespaces"."path", "namespaces"."owner_id", "namespaces"."created_at", "namespaces"."updated_at", "namespaces"."type", "namespaces"."description", "namespaces"."avatar", "namespaces"."membership_lock", "namespaces"."share_with_group_lock", "namespaces"."visibility_level", "namespaces"."request_access_enabled", "namespaces"."ldap_sync_status", "namespaces"."ldap_sync_error", "namespaces"."ldap_sync_last_update_at", "namespaces"."ldap_sync_last_successful_update_at", "namespaces"."ldap_sync_last_sync_at", "namespaces"."description_html", "namespaces"."lfs_enabled", "namespaces"."parent_id", "namespaces"."shared_runners_minutes_limit", "namespaces"."repository_size_limit", "namespaces"."require_two_factor_authentication", "namespaces"."two_factor_grace_period", "namespaces"."cached_markdown_version", "namespaces"."project_creation_level", "namespaces"."runners_token", "namespaces"."file_template_project_id", "namespaces"."saml_discovery_token", "namespaces"."runners_token_encrypted", "namespaces"."custom_project_templates_group_id", "namespaces"."auto_devops_enabled", "namespaces"."extra_shared_runners_minutes_limit", "namespaces"."last_ci_minutes_notification_at", "namespaces"."last_ci_minutes_usage_notification_level", "namespaces"."subgroup_creation_level", "namespaces"."max_pages_size", "namespaces"."max_artifacts_size", "namespaces"."mentions_disabled", "namespaces"."default_branch_protection", "namespaces"."max_personal_access_token_lifetime", "namespaces"."push_rule_id", "namespaces"."shared_runners_enabled", "namespaces"."allow_descendants_override_disabled_shared_runners", "namespaces"."traversal_ids", "namespaces"."organization_id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND "namespaces"."id" = 1773 LIMIT 1

       SELECT "namespaces"."id", "namespaces"."name", "namespaces"."path", "namespaces"."owner_id", "namespaces"."created_at", "namespaces"."updated_at", "namespaces"."type", "namespaces"."description", "namespaces"."avatar", "namespaces"."membership_lock", "namespaces"."share_with_group_lock", "namespaces"."visibility_level", "namespaces"."request_access_enabled", "namespaces"."ldap_sync_status", "namespaces"."ldap_sync_error", "namespaces"."ldap_sync_last_update_at", "namespaces"."ldap_sync_last_successful_update_at", "namespaces"."ldap_sync_last_sync_at", "namespaces"."description_html", "namespaces"."lfs_enabled", "namespaces"."parent_id", "namespaces"."shared_runners_minutes_limit", "namespaces"."repository_size_limit", "namespaces"."require_two_factor_authentication", "namespaces"."two_factor_grace_period", "namespaces"."cached_markdown_version", "namespaces"."project_creation_level", "namespaces"."runners_token", "namespaces"."file_template_project_id", "namespaces"."saml_discovery_token", "namespaces"."runners_token_encrypted", "namespaces"."custom_project_templates_group_id", "namespaces"."auto_devops_enabled", "namespaces"."extra_shared_runners_minutes_limit", "namespaces"."last_ci_minutes_notification_at", "namespaces"."last_ci_minutes_usage_notification_level", "namespaces"."subgroup_creation_level", "namespaces"."max_pages_size", "namespaces"."max_artifacts_size", "namespaces"."mentions_disabled", "namespaces"."default_branch_protection", "namespaces"."max_personal_access_token_lifetime", "namespaces"."push_rule_id", "namespaces"."shared_runners_enabled", "namespaces"."allow_descendants_override_disabled_shared_runners", "namespaces"."traversal_ids", "namespaces"."organization_id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND "namespaces"."id" = 1773 LIMIT 1

       SELECT "organizations".* FROM "organizations" WHERE "organizations"."id" = 1 LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/group_type.rb:426:in `organization_edit_path'*/

       SELECT "uploads".* FROM "uploads" WHERE "uploads"."uploader" = 'AvatarUploader' AND "uploads"."path" IN ('uploads/-/system/group/avatar/1773/banana_sample.gif', 'group/avatar/1773/banana_sample.gif') ORDER BY "uploads"."id" ASC LIMIT 1000 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/concerns/avatarable.rb:115:in `block in retrieve_upload_from_batch'*/

       SELECT "custom_emoji".* FROM "custom_emoji" WHERE "custom_emoji"."namespace_id" = 1773 ORDER BY "custom_emoji"."id" DESC LIMIT 101 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/pagination/keyset/connection.rb:122:in `block in limited_nodes'*/

       SELECT COUNT(*) FROM "custom_emoji" WHERE "custom_emoji"."namespace_id" = 1773 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/countable_connection_type.rb:20:in `count'*/

       SELECT "namespace_settings"."created_at", "namespace_settings"."updated_at", "namespace_settings"."namespace_id", "namespace_settings"."prevent_forking_outside_group", "namespace_settings"."allow_mfa_for_subgroups", "namespace_settings"."default_branch_name", "namespace_settings"."repository_read_only", "namespace_settings"."resource_access_token_creation_allowed", "namespace_settings"."prevent_sharing_groups_outside_hierarchy", "namespace_settings"."new_user_signups_cap", "namespace_settings"."setup_for_company", "namespace_settings"."jobs_to_be_done", "namespace_settings"."runner_token_expiration_interval", "namespace_settings"."subgroup_runner_token_expiration_interval", "namespace_settings"."project_runner_token_expiration_interval", "namespace_settings"."show_diff_preview_in_email", "namespace_settings"."enabled_git_access_protocol", "namespace_settings"."unique_project_download_limit", "namespace_settings"."unique_project_download_limit_interval_in_seconds", "namespace_settings"."unique_project_download_limit_allowlist", "namespace_settings"."auto_ban_user_on_excessive_projects_download", "namespace_settings"."only_allow_merge_if_pipeline_succeeds", "namespace_settings"."allow_merge_on_skipped_pipeline", "namespace_settings"."only_allow_merge_if_all_discussions_are_resolved", "namespace_settings"."default_compliance_framework_id", "namespace_settings"."runner_registration_enabled", "namespace_settings"."allow_runner_registration_token", "namespace_settings"."unique_project_download_limit_alertlist", "namespace_settings"."emails_enabled", "namespace_settings"."experiment_features_enabled", "namespace_settings"."default_branch_protection_defaults", "namespace_settings"."service_access_tokens_expiration_enforced", "namespace_settings"."product_analytics_enabled", "namespace_settings"."allow_merge_without_pipeline", "namespace_settings"."enforce_ssh_certificates", "namespace_settings"."toggle_security_policy_custom_ci", "namespace_settings"."lock_toggle_security_policy_custom_ci", "namespace_settings"."math_rendering_limits_enabled", "namespace_settings"."lock_math_rendering_limits_enabled", "namespace_settings"."duo_features_enabled", "namespace_settings"."lock_duo_features_enabled", "namespace_settings"."disable_personal_access_tokens", "namespace_settings"."enable_auto_assign_gitlab_duo_pro_seats", "namespace_settings"."early_access_program_participant", "namespace_settings"."remove_dormant_members", "namespace_settings"."remove_dormant_members_period" FROM "namespace_settings" WHERE "namespace_settings"."namespace_id" = 1773 LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/namespace.rb:471:in `emails_enabled?'*/

       SELECT "group_crm_settings".* FROM "group_crm_settings" WHERE "group_crm_settings"."group_id" = 1773 LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/group.rb:904:in `crm_enabled?'*/

       SELECT "issues"."id", "issues"."title", "issues"."author_id", "issues"."project_id", "issues"."created_at", "issues"."updated_at", "issues"."description", "issues"."milestone_id", "issues"."iid", "issues"."updated_by_id", "issues"."weight", "issues"."confidential", "issues"."due_date", "issues"."moved_to_id", "issues"."lock_version", "issues"."title_html", "issues"."description_html", "issues"."time_estimate", "issues"."relative_position", "issues"."service_desk_reply_to", "issues"."cached_markdown_version", "issues"."last_edited_at", "issues"."last_edited_by_id", "issues"."discussion_locked", "issues"."closed_at", "issues"."closed_by_id", "issues"."state_id", "issues"."duplicated_to_id", "issues"."promoted_to_epic_id", "issues"."health_status", "issues"."external_key", "issues"."sprint_id", "issues"."blocking_issues_count", "issues"."upvotes_count", "issues"."work_item_type_id", "issues"."namespace_id", "issues"."start_date", "issues"."imported_from" FROM "issues" INNER JOIN "projects" ON "projects"."id" = "issues"."project_id" LEFT JOIN project_features ON projects.id = project_features.project_id WHERE "projects"."namespace_id" = 1773 AND (EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1401 AND (project_authorizations.project_id = projects.id)) OR projects.visibility_level IN (0,10,20)) AND ("project_features"."issues_access_level" > 0 OR "project_features"."issues_access_level" IS NULL) AND ("issues"."project_id" IS NULL OR "projects"."archived" = FALSE) ORDER BY "issues"."created_at" DESC, "issues"."id" DESC LIMIT 101 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/pagination/keyset/connection.rb:122:in `block in limited_nodes'*/

       SELECT SUM("issues"."weight") FROM "issues" INNER JOIN "projects" ON "projects"."id" = "issues"."project_id" LEFT JOIN project_features ON projects.id = project_features.project_id WHERE "projects"."namespace_id" = 1773 AND (EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1401 AND (project_authorizations.project_id = projects.id)) OR projects.visibility_level IN (0,10,20)) AND ("project_features"."issues_access_level" > 0 OR "project_features"."issues_access_level" IS NULL) AND ("issues"."project_id" IS NULL OR "projects"."archived" = FALSE) /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/ee/app/graphql/ee/types/issue_connection_type.rb:19:in `weight'*/

       SELECT COUNT(*) FROM "issues" INNER JOIN "projects" ON "projects"."id" = "issues"."project_id" LEFT JOIN project_features ON projects.id = project_features.project_id WHERE "projects"."namespace_id" = 1773 AND (EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1401 AND (project_authorizations.project_id = projects.id)) OR projects.visibility_level IN (0,10,20)) AND ("project_features"."issues_access_level" > 0 OR "project_features"."issues_access_level" IS NULL) AND ("issues"."project_id" IS NULL OR "projects"."archived" = FALSE) /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/countable_connection_type.rb:20:in `count'*/

       SELECT "merge_requests"."id", "merge_requests"."target_branch", "merge_requests"."source_branch", "merge_requests"."source_project_id", "merge_requests"."author_id", "merge_requests"."assignee_id", "merge_requests"."title", "merge_requests"."created_at", "merge_requests"."updated_at", "merge_requests"."milestone_id", "merge_requests"."merge_status", "merge_requests"."target_project_id", "merge_requests"."iid", "merge_requests"."description", "merge_requests"."updated_by_id", "merge_requests"."merge_error", "merge_requests"."merge_params", "merge_requests"."merge_when_pipeline_succeeds", "merge_requests"."merge_user_id", "merge_requests"."merge_commit_sha", "merge_requests"."approvals_before_merge", "merge_requests"."rebase_commit_sha", "merge_requests"."in_progress_merge_commit_sha", "merge_requests"."lock_version", "merge_requests"."title_html", "merge_requests"."description_html", "merge_requests"."time_estimate", "merge_requests"."squash", "merge_requests"."cached_markdown_version", "merge_requests"."last_edited_at", "merge_requests"."last_edited_by_id", "merge_requests"."head_pipeline_id", "merge_requests"."merge_jid", "merge_requests"."discussion_locked", "merge_requests"."latest_merge_request_diff_id", "merge_requests"."allow_maintainer_to_push", "merge_requests"."state_id", "merge_requests"."rebase_jid", "merge_requests"."squash_commit_sha", "merge_requests"."sprint_id", "merge_requests"."merge_ref_sha", "merge_requests"."draft", "merge_requests"."prepared_at", "merge_requests"."merged_commit_sha", "merge_requests"."override_requested_changes", "merge_requests"."imported_from" FROM "merge_requests" INNER JOIN "projects" ON "projects"."id" = "merge_requests"."target_project_id" LEFT JOIN project_features ON projects.id = project_features.project_id WHERE "projects"."namespace_id" = 1773 AND (EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1401 AND (project_authorizations.project_id = projects.id)) OR projects.visibility_level IN (0,10,20)) AND ("project_features"."merge_requests_access_level" > 0 OR "project_features"."merge_requests_access_level" IS NULL) AND "projects"."archived" = FALSE ORDER BY "merge_requests"."created_at" DESC, "merge_requests"."id" DESC LIMIT 101 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/pagination/keyset/connection.rb:122:in `block in limited_nodes'*/

       SELECT EXTRACT(epoch FROM SUM(AGE(merge_request_metrics.merged_at, merge_request_metrics.created_at))) FROM "merge_requests" INNER JOIN "projects" ON "projects"."id" = "merge_requests"."target_project_id" INNER JOIN "merge_request_metrics" ON "merge_request_metrics"."merge_request_id" = "merge_requests"."id" LEFT JOIN project_features ON projects.id = project_features.project_id WHERE "projects"."namespace_id" = 1773 AND (EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1401 AND (project_authorizations.project_id = projects.id)) OR projects.visibility_level IN (0,10,20)) AND ("project_features"."merge_requests_access_level" > 0 OR "project_features"."merge_requests_access_level" IS NULL) AND "projects"."archived" = FALSE AND "merge_requests"."target_project_id" = "merge_request_metrics"."target_project_id" AND "merge_request_metrics"."merged_at" > "merge_request_metrics"."created_at" LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/merge_request.rb:505:in `total_time_to_merge'*/

       SELECT COUNT(*) FROM "merge_requests" INNER JOIN "projects" ON "projects"."id" = "merge_requests"."target_project_id" LEFT JOIN project_features ON projects.id = project_features.project_id WHERE "projects"."namespace_id" = 1773 AND (EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1401 AND (project_authorizations.project_id = projects.id)) OR projects.visibility_level IN (0,10,20)) AND ("project_features"."merge_requests_access_level" > 0 OR "project_features"."merge_requests_access_level" IS NULL) AND "projects"."archived" = FALSE /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/countable_connection_type.rb:20:in `count'*/

       SELECT "ci_group_variables"."environment_scope" FROM "ci_group_variables" WHERE "ci_group_variables"."group_id" = 1773 GROUP BY "ci_group_variables"."environment_scope" ORDER BY "ci_group_variables"."environment_scope" ASC LIMIT 100 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:ci,line:/app/models/ci/group_variable.rb:38:in `block in <class:GroupVariable>'*/

       SELECT "milestones".* FROM ((SELECT "milestones".* FROM "milestones" WHERE 1=0)
       UNION ALL
       (SELECT "milestones".* FROM "milestones" WHERE "milestones"."group_id" = 1773)) milestones ORDER BY "milestones"."due_date" ASC NULLS LAST, "milestones"."id" DESC LIMIT 101 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/pagination/keyset/connection.rb:122:in `block in limited_nodes'*/

       SELECT "boards".* FROM "boards" WHERE "boards"."group_id" = 1773 AND "boards"."id" IN (SELECT "boards"."id" FROM "boards" WHERE "boards"."group_id" = 1773 ORDER BY LOWER("boards"."name") ASC, "boards"."id" ASC LIMIT 1) ORDER BY "boards"."id" DESC LIMIT 2001 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/pagination/keyset/connection.rb:122:in `block in limited_nodes'*/

       SELECT "board_group_recent_visits".* FROM "board_group_recent_visits" WHERE "board_group_recent_visits"."user_id" = 1401 AND "board_group_recent_visits"."group_id" = 1773 ORDER BY "board_group_recent_visits"."updated_at" DESC LIMIT 4 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/concerns/board_recent_visit.rb:21:in `latest'*/

       SELECT "members".* FROM (SELECT DISTINCT ON (user_id, invite_email) * FROM "members" WHERE "members"."type" = 'GroupMember' AND "members"."source_type" = 'Namespace' AND "members"."requested_at" IS NULL AND "members"."source_id" IN (SELECT "namespaces"."id" FROM ((SELECT "namespaces"."id", "namespaces"."name", "namespaces"."path", "namespaces"."owner_id", "namespaces"."created_at", "namespaces"."updated_at", "namespaces"."type", "namespaces"."description", "namespaces"."avatar", "namespaces"."membership_lock", "namespaces"."share_with_group_lock", "namespaces"."visibility_level", "namespaces"."request_access_enabled", "namespaces"."ldap_sync_status", "namespaces"."ldap_sync_error", "namespaces"."ldap_sync_last_update_at", "namespaces"."ldap_sync_last_successful_update_at", "namespaces"."ldap_sync_last_sync_at", "namespaces"."description_html", "namespaces"."lfs_enabled", "namespaces"."parent_id", "namespaces"."shared_runners_minutes_limit", "namespaces"."repository_size_limit", "namespaces"."require_two_factor_authentication", "namespaces"."two_factor_grace_period", "namespaces"."cached_markdown_version", "namespaces"."project_creation_level", "namespaces"."runners_token", "namespaces"."file_template_project_id", "namespaces"."saml_discovery_token", "namespaces"."runners_token_encrypted", "namespaces"."custom_project_templates_group_id", "namespaces"."auto_devops_enabled", "namespaces"."extra_shared_runners_minutes_limit", "namespaces"."last_ci_minutes_notification_at", "namespaces"."last_ci_minutes_usage_notification_level", "namespaces"."subgroup_creation_level", "namespaces"."max_pages_size", "namespaces"."max_artifacts_size", "namespaces"."mentions_disabled", "namespaces"."default_branch_protection", "namespaces"."max_personal_access_token_lifetime", "namespaces"."push_rule_id", "namespaces"."shared_runners_enabled", "namespaces"."allow_descendants_override_disabled_shared_runners", "namespaces"."traversal_ids", "namespaces"."organization_id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND "namespaces"."id" = 1773)) namespaces WHERE "namespaces"."type" = 'Group') AND (members.access_level > 5) ORDER BY user_id, invite_email,
       CASE WHEN source_id = 1773 and source_type = 'Namespace'
       THEN access_level + 1 ELSE access_level END DESC,
       expires_at DESC, created_at ASC
       ) members WHERE "members"."type" = 'GroupMember' ORDER BY "members"."id" DESC LIMIT 101 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/pagination/keyset/connection.rb:122:in `block in limited_nodes'*/

       SELECT "namespaces"."id", "namespaces"."name", "namespaces"."path", "namespaces"."owner_id", "namespaces"."created_at", "namespaces"."updated_at", "namespaces"."type", "namespaces"."description", "namespaces"."avatar", "namespaces"."membership_lock", "namespaces"."share_with_group_lock", "namespaces"."visibility_level", "namespaces"."request_access_enabled", "namespaces"."ldap_sync_status", "namespaces"."ldap_sync_error", "namespaces"."ldap_sync_last_update_at", "namespaces"."ldap_sync_last_successful_update_at", "namespaces"."ldap_sync_last_sync_at", "namespaces"."description_html", "namespaces"."lfs_enabled", "namespaces"."parent_id", "namespaces"."shared_runners_minutes_limit", "namespaces"."repository_size_limit", "namespaces"."require_two_factor_authentication", "namespaces"."two_factor_grace_period", "namespaces"."cached_markdown_version", "namespaces"."project_creation_level", "namespaces"."runners_token", "namespaces"."file_template_project_id", "namespaces"."saml_discovery_token", "namespaces"."runners_token_encrypted", "namespaces"."custom_project_templates_group_id", "namespaces"."auto_devops_enabled", "namespaces"."extra_shared_runners_minutes_limit", "namespaces"."last_ci_minutes_notification_at", "namespaces"."last_ci_minutes_usage_notification_level", "namespaces"."subgroup_creation_level", "namespaces"."max_pages_size", "namespaces"."max_artifacts_size", "namespaces"."mentions_disabled", "namespaces"."default_branch_protection", "namespaces"."max_personal_access_token_lifetime", "namespaces"."push_rule_id", "namespaces"."shared_runners_enabled", "namespaces"."allow_descendants_override_disabled_shared_runners", "namespaces"."traversal_ids", "namespaces"."organization_id" FROM find_namespaces_by_id(1773) AS namespaces WHERE ("namespaces"."id" IS NOT NULL) LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/concerns/use_sql_function_for_primary_key_lookups.rb:12:in `_query_by_sql'*/

       SELECT "container_repositories"."id", "container_repositories"."project_id", "container_repositories"."name", "container_repositories"."created_at", "container_repositories"."updated_at", "container_repositories"."status", "container_repositories"."expiration_policy_started_at", "container_repositories"."expiration_policy_cleanup_status", "container_repositories"."expiration_policy_completed_at", "container_repositories"."last_cleanup_deleted_tags_count", "container_repositories"."delete_started_at", "container_repositories"."status_updated_at" FROM "container_repositories" INNER JOIN (SELECT "projects"."id" FROM "projects" LEFT JOIN project_features ON projects.id = project_features.project_id WHERE "projects"."namespace_id" IN (SELECT "namespaces"."id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1773}')) AND (traversal_ids < ('{1774}'))) AND ("project_features"."container_registry_access_level" > 0 OR "project_features"."container_registry_access_level" IS NULL)) projects on projects.id=container_repositories.project_id ORDER BY "container_repositories"."created_at" DESC, "container_repositories"."id" DESC LIMIT 101 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/pagination/keyset/connection.rb:122:in `block in limited_nodes'*/

       SELECT COUNT(*) FROM "container_repositories" INNER JOIN "projects" ON "container_repositories"."project_id" = "projects"."id" WHERE "projects"."namespace_id" = 1773 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/group_type.rb:357:in `container_repositories_count'*/

       SELECT "packages_packages".* FROM "packages_packages" WHERE "packages_packages"."project_id" IN (SELECT "projects"."id" FROM "projects" LEFT JOIN project_features ON projects.id = project_features.project_id WHERE "projects"."namespace_id" IN (SELECT "namespaces"."id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1773}')) AND (traversal_ids < ('{1774}'))) AND (EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1401 AND (project_authorizations.project_id = projects.id)) OR projects.visibility_level IN (0,10,20)) AND ("project_features"."repository_access_level" > 0 OR "project_features"."repository_access_level" IS NULL)) AND "packages_packages"."version" IS NOT NULL AND "packages_packages"."package_type" != 12 AND "packages_packages"."status" IN (0, 3) ORDER BY "packages_packages"."created_at" DESC, "packages_packages"."id" DESC LIMIT 101 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/pagination/keyset/connection.rb:122:in `block in limited_nodes'*/

       SELECT COUNT(*) FROM "packages_packages" WHERE "packages_packages"."project_id" IN (SELECT "projects"."id" FROM "projects" LEFT JOIN project_features ON projects.id = project_features.project_id WHERE "projects"."namespace_id" IN (SELECT "namespaces"."id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1773}')) AND (traversal_ids < ('{1774}'))) AND (EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1401 AND (project_authorizations.project_id = projects.id)) OR projects.visibility_level IN (0,10,20)) AND ("project_features"."repository_access_level" > 0 OR "project_features"."repository_access_level" IS NULL)) AND "packages_packages"."version" IS NOT NULL AND "packages_packages"."package_type" != 12 AND "packages_packages"."status" IN (0, 3) /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/countable_connection_type.rb:20:in `count'*/

       SELECT "dependency_proxy_group_settings".* FROM "dependency_proxy_group_settings" WHERE "dependency_proxy_group_settings"."group_id" = 1773 LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/group.rb:896:in `dependency_proxy_setting'*/

       SELECT "dependency_proxy_manifests".* FROM "dependency_proxy_manifests" WHERE "dependency_proxy_manifests"."group_id" = 1773 ORDER BY "dependency_proxy_manifests"."id" DESC LIMIT 101 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/pagination/keyset/connection.rb:122:in `block in limited_nodes'*/

       SELECT "dependency_proxy_blobs".* FROM "dependency_proxy_blobs" WHERE "dependency_proxy_blobs"."group_id" = 1773 ORDER BY "dependency_proxy_blobs"."id" DESC LIMIT 101 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/pagination/keyset/connection.rb:122:in `block in limited_nodes'*/

       SELECT COUNT(*) FROM "dependency_proxy_manifests" WHERE "dependency_proxy_manifests"."group_id" = 1773 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/group_type.rb:365:in `dependency_proxy_image_count'*/

       SELECT COUNT(*) FROM "dependency_proxy_blobs" WHERE "dependency_proxy_blobs"."group_id" = 1773 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/group_type.rb:369:in `dependency_proxy_blob_count'*/

       SELECT SUM("dependency_proxy_manifests"."size") FROM "dependency_proxy_manifests" WHERE "dependency_proxy_manifests"."group_id" = 1773 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/group_type.rb:383:in `dependency_proxy_total_size_bytes'*/

       SELECT SUM("dependency_proxy_blobs"."size") FROM "dependency_proxy_blobs" WHERE "dependency_proxy_blobs"."group_id" = 1773 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/group_type.rb:383:in `dependency_proxy_total_size_bytes'*/

       SELECT SUM("dependency_proxy_manifests"."size") FROM "dependency_proxy_manifests" WHERE "dependency_proxy_manifests"."group_id" = 1773

       SELECT SUM("dependency_proxy_blobs"."size") FROM "dependency_proxy_blobs" WHERE "dependency_proxy_blobs"."group_id" = 1773

       SELECT SUM("dependency_proxy_manifests"."size") FROM "dependency_proxy_manifests" WHERE "dependency_proxy_manifests"."group_id" = 1773

       SELECT SUM("dependency_proxy_blobs"."size") FROM "dependency_proxy_blobs" WHERE "dependency_proxy_blobs"."group_id" = 1773

       SELECT "dependency_proxy_image_ttl_group_policies".* FROM "dependency_proxy_image_ttl_group_policies" WHERE "dependency_proxy_image_ttl_group_policies"."group_id" = 1773 LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/group.rb:892:in `dependency_proxy_image_ttl_policy'*/

       SELECT "namespaces"."id", "namespaces"."name", "namespaces"."path", "namespaces"."owner_id", "namespaces"."created_at", "namespaces"."updated_at", "namespaces"."type", "namespaces"."description", "namespaces"."avatar", "namespaces"."membership_lock", "namespaces"."share_with_group_lock", "namespaces"."visibility_level", "namespaces"."request_access_enabled", "namespaces"."ldap_sync_status", "namespaces"."ldap_sync_error", "namespaces"."ldap_sync_last_update_at", "namespaces"."ldap_sync_last_successful_update_at", "namespaces"."ldap_sync_last_sync_at", "namespaces"."description_html", "namespaces"."lfs_enabled", "namespaces"."parent_id", "namespaces"."shared_runners_minutes_limit", "namespaces"."repository_size_limit", "namespaces"."require_two_factor_authentication", "namespaces"."two_factor_grace_period", "namespaces"."cached_markdown_version", "namespaces"."project_creation_level", "namespaces"."runners_token", "namespaces"."file_template_project_id", "namespaces"."saml_discovery_token", "namespaces"."runners_token_encrypted", "namespaces"."custom_project_templates_group_id", "namespaces"."auto_devops_enabled", "namespaces"."extra_shared_runners_minutes_limit", "namespaces"."last_ci_minutes_notification_at", "namespaces"."last_ci_minutes_usage_notification_level", "namespaces"."subgroup_creation_level", "namespaces"."max_pages_size", "namespaces"."max_artifacts_size", "namespaces"."mentions_disabled", "namespaces"."default_branch_protection", "namespaces"."max_personal_access_token_lifetime", "namespaces"."push_rule_id", "namespaces"."shared_runners_enabled", "namespaces"."allow_descendants_override_disabled_shared_runners", "namespaces"."traversal_ids", "namespaces"."organization_id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND "namespaces"."id" IN (SELECT "namespaces"."id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1773}')) AND (traversal_ids < ('{1774}')) AND "namespaces"."id" != 1773) /* allow_cross_joins_across_databases */ ORDER BY "namespaces"."name" ASC, "namespaces"."id" DESC LIMIT 101 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/concerns/use_sql_function_for_primary_key_lookups.rb:12:in `_query_by_sql'*/

       SELECT "ci_group_variables".* FROM "ci_group_variables" WHERE "ci_group_variables"."group_id" = 1773 ORDER BY "ci_group_variables"."id" DESC LIMIT 101 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:ci,line:/lib/gitlab/graphql/pagination/keyset/connection.rb:122:in `block in limited_nodes'*/

       SELECT "plans".* FROM "plans" WHERE "plans"."name" = 'default' LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/plan.rb:19:in `block in default'*/

       SELECT "plan_limits"."id", "plan_limits"."plan_id", "plan_limits"."ci_pipeline_size", "plan_limits"."ci_active_jobs", "plan_limits"."project_hooks", "plan_limits"."group_hooks", "plan_limits"."ci_project_subscriptions", "plan_limits"."ci_pipeline_schedules", "plan_limits"."offset_pagination_limit", "plan_limits"."ci_instance_level_variables", "plan_limits"."storage_size_limit", "plan_limits"."ci_max_artifact_size_lsif", "plan_limits"."ci_max_artifact_size_archive", "plan_limits"."ci_max_artifact_size_metadata", "plan_limits"."ci_max_artifact_size_trace", "plan_limits"."ci_max_artifact_size_junit", "plan_limits"."ci_max_artifact_size_sast", "plan_limits"."ci_max_artifact_size_dependency_scanning", "plan_limits"."ci_max_artifact_size_container_scanning", "plan_limits"."ci_max_artifact_size_dast", "plan_limits"."ci_max_artifact_size_codequality", "plan_limits"."ci_max_artifact_size_license_management", "plan_limits"."ci_max_artifact_size_license_scanning", "plan_limits"."ci_max_artifact_size_performance", "plan_limits"."ci_max_artifact_size_metrics", "plan_limits"."ci_max_artifact_size_metrics_referee", "plan_limits"."ci_max_artifact_size_network_referee", "plan_limits"."ci_max_artifact_size_dotenv", "plan_limits"."ci_max_artifact_size_cobertura", "plan_limits"."ci_max_artifact_size_terraform", "plan_limits"."ci_max_artifact_size_accessibility", "plan_limits"."ci_max_artifact_size_cluster_applications", "plan_limits"."ci_max_artifact_size_secret_detection", "plan_limits"."ci_max_artifact_size_requirements", "plan_limits"."ci_max_artifact_size_coverage_fuzzing", "plan_limits"."ci_max_artifact_size_browser_performance", "plan_limits"."ci_max_artifact_size_load_performance", "plan_limits"."ci_needs_size_limit", "plan_limits"."conan_max_file_size", "plan_limits"."maven_max_file_size", "plan_limits"."npm_max_file_size", "plan_limits"."nuget_max_file_size", "plan_limits"."pypi_max_file_size", "plan_limits"."generic_packages_max_file_size", "plan_limits"."golang_max_file_size", "plan_limits"."debian_max_file_size", "plan_limits"."project_feature_flags", "plan_limits"."ci_max_artifact_size_api_fuzzing", "plan_limits"."ci_pipeline_deployments", "plan_limits"."pull_mirror_interval_seconds", "plan_limits"."daily_invites", "plan_limits"."rubygems_max_file_size", "plan_limits"."terraform_module_max_file_size", "plan_limits"."helm_max_file_size", "plan_limits"."ci_registered_group_runners", "plan_limits"."ci_registered_project_runners", "plan_limits"."ci_daily_pipeline_schedule_triggers", "plan_limits"."ci_max_artifact_size_cluster_image_scanning", "plan_limits"."ci_jobs_trace_size_limit", "plan_limits"."pages_file_entries", "plan_limits"."dast_profile_schedules", "plan_limits"."external_audit_event_destinations", "plan_limits"."dotenv_variables", "plan_limits"."dotenv_size", "plan_limits"."pipeline_triggers", "plan_limits"."project_ci_secure_files", "plan_limits"."repository_size", "plan_limits"."security_policy_scan_execution_schedules", "plan_limits"."web_hook_calls_mid", "plan_limits"."web_hook_calls_low", "plan_limits"."project_ci_variables", "plan_limits"."group_ci_variables", "plan_limits"."ci_max_artifact_size_cyclonedx", "plan_limits"."rpm_max_file_size", "plan_limits"."ci_max_artifact_size_requirements_v2", "plan_limits"."pipeline_hierarchy_size", "plan_limits"."enforcement_limit", "plan_limits"."notification_limit", "plan_limits"."dashboard_limit_enabled_at", "plan_limits"."web_hook_calls", "plan_limits"."project_access_token_limit", "plan_limits"."google_cloud_logging_configurations", "plan_limits"."ml_model_max_file_size", "plan_limits"."limits_history", "plan_limits"."updated_at", "plan_limits"."ci_max_artifact_size_annotations", "plan_limits"."ci_job_annotations_size", "plan_limits"."ci_job_annotations_num", "plan_limits"."file_size_limit_mb", "plan_limits"."audit_events_amazon_s3_configurations", "plan_limits"."ci_max_artifact_size_repository_xray", "plan_limits"."active_versioned_pages_deployments_limit_by_namespace" FROM "plan_limits" WHERE "plan_limits"."plan_id" = 164 LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/plan.rb:32:in `actual_limits'*/

       SELECT "customer_relations_organizations".* FROM "customer_relations_organizations" WHERE "customer_relations_organizations"."group_id" = 1773 ORDER BY "customer_relations_organizations"."name" ASC NULLS LAST, "customer_relations_organizations"."id" DESC LIMIT 101 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/pagination/keyset/connection.rb:122:in `block in limited_nodes'*/

       SELECT COUNT(*) AS "count_all", "customer_relations_organizations"."state" AS "customer_relations_organizations_state" FROM "customer_relations_organizations" WHERE "customer_relations_organizations"."group_id" = 1773 GROUP BY "customer_relations_organizations"."state" /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/customer_relations/organization.rb:82:in `counts_by_state'*/

       SELECT "customer_relations_contacts".* FROM "customer_relations_contacts" WHERE "customer_relations_contacts"."group_id" = 1773 ORDER BY "customer_relations_contacts"."last_name" ASC NULLS LAST, "customer_relations_contacts"."id" DESC LIMIT 101 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/pagination/keyset/connection.rb:122:in `block in limited_nodes'*/

       SELECT COUNT(*) AS "count_all", "customer_relations_contacts"."state" AS "customer_relations_contacts_state" FROM "customer_relations_contacts" WHERE "customer_relations_contacts"."group_id" = 1773 GROUP BY "customer_relations_contacts"."state" /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/customer_relations/contact.rb:148:in `counts_by_state'*/

       SELECT "work_item_types".* FROM "work_item_types" WHERE "work_item_types"."namespace_id" IS NULL ORDER BY LOWER("work_item_types"."name") ASC, "work_item_types"."id" DESC LIMIT 101 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/pagination/keyset/connection.rb:122:in `block in limited_nodes'*/

       SELECT * FROM (WITH RECURSIVE "array_cte" AS MATERIALIZED (SELECT "projects"."id" FROM "projects" WHERE "projects"."namespace_id" IN (SELECT "namespaces"."id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1773}')) AND (traversal_ids < ('{1774}')))), "recursive_keyset_cte" AS ((SELECT NULL::releases AS records, array_cte_id_array, releases_released_at_array, releases_id_array, 0::bigint AS count FROM (SELECT ARRAY_AGG("array_cte"."id") AS array_cte_id_array, ARRAY_AGG("releases"."released_at") AS releases_released_at_array, ARRAY_AGG("releases"."id") AS releases_id_array FROM (SELECT "array_cte"."id" FROM array_cte) array_cte LEFT JOIN LATERAL (SELECT "releases"."released_at" AS released_at, "releases"."id" AS id FROM "releases" WHERE "releases"."project_id" = "array_cte"."id" ORDER BY "releases"."released_at" DESC, "releases"."id" DESC LIMIT 1) releases ON TRUE WHERE "releases"."released_at" IS NOT NULL AND "releases"."id" IS NOT NULL) array_scope_lateral_query LIMIT 1)
       UNION ALL
       (SELECT (SELECT releases FROM "releases" WHERE "releases"."id" = recursive_keyset_cte.releases_id_array[position] LIMIT 1), array_cte_id_array, recursive_keyset_cte.releases_released_at_array[:position_query.position-1]||next_cursor_values.released_at||recursive_keyset_cte.releases_released_at_array[position_query.position+1:], recursive_keyset_cte.releases_id_array[:position_query.position-1]||next_cursor_values.id||recursive_keyset_cte.releases_id_array[position_query.position+1:], recursive_keyset_cte.count + 1 FROM recursive_keyset_cte,
       LATERAL (SELECT released_at, id, position FROM UNNEST(releases_released_at_array, releases_id_array) WITH ORDINALITY AS u(released_at, id, position) WHERE released_at IS NOT NULL AND id IS NOT NULL ORDER BY 1 DESC, 2 DESC LIMIT 1) AS position_query,
       LATERAL (SELECT "record"."released_at", "record"."id" FROM (VALUES (NULL, NULL)) AS nulls LEFT JOIN (SELECT "releases"."released_at" AS released_at, "releases"."id" AS id FROM "releases" WHERE "releases"."project_id" = recursive_keyset_cte.array_cte_id_array[position] AND (("releases"."released_at", "releases"."id") < (recursive_keyset_cte.releases_released_at_array[position], recursive_keyset_cte.releases_id_array[position])) ORDER BY "releases"."released_at" DESC, "releases"."id" DESC LIMIT 1) record ON TRUE LIMIT 1) AS next_cursor_values
       )) SELECT (records).* FROM "recursive_keyset_cte" AS "releases" WHERE (count <> 0)) releases LIMIT 100 OFFSET 0 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/connection_redaction.rb:23:in `block in nodes'*/

       SELECT COUNT(*) FROM (WITH RECURSIVE "array_cte" AS MATERIALIZED (SELECT "projects"."id" FROM "projects" WHERE "projects"."namespace_id" IN (SELECT "namespaces"."id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1773}')) AND (traversal_ids < ('{1774}')))), "recursive_keyset_cte" AS ((SELECT NULL::releases AS records, array_cte_id_array, releases_released_at_array, releases_id_array, 0::bigint AS count FROM (SELECT ARRAY_AGG("array_cte"."id") AS array_cte_id_array, ARRAY_AGG("releases"."released_at") AS releases_released_at_array, ARRAY_AGG("releases"."id") AS releases_id_array FROM (SELECT "array_cte"."id" FROM array_cte) array_cte LEFT JOIN LATERAL (SELECT "releases"."released_at" AS released_at, "releases"."id" AS id FROM "releases" WHERE "releases"."project_id" = "array_cte"."id" ORDER BY "releases"."released_at" DESC, "releases"."id" DESC LIMIT 1) releases ON TRUE WHERE "releases"."released_at" IS NOT NULL AND "releases"."id" IS NOT NULL) array_scope_lateral_query LIMIT 1)
       UNION ALL
       (SELECT (SELECT releases FROM "releases" WHERE "releases"."id" = recursive_keyset_cte.releases_id_array[position] LIMIT 1), array_cte_id_array, recursive_keyset_cte.releases_released_at_array[:position_query.position-1]||next_cursor_values.released_at||recursive_keyset_cte.releases_released_at_array[position_query.position+1:], recursive_keyset_cte.releases_id_array[:position_query.position-1]||next_cursor_values.id||recursive_keyset_cte.releases_id_array[position_query.position+1:], recursive_keyset_cte.count + 1 FROM recursive_keyset_cte,
       LATERAL (SELECT released_at, id, position FROM UNNEST(releases_released_at_array, releases_id_array) WITH ORDINALITY AS u(released_at, id, position) WHERE released_at IS NOT NULL AND id IS NOT NULL ORDER BY 1 DESC, 2 DESC LIMIT 1) AS position_query,
       LATERAL (SELECT "record"."released_at", "record"."id" FROM (VALUES (NULL, NULL)) AS nulls LEFT JOIN (SELECT "releases"."released_at" AS released_at, "releases"."id" AS id FROM "releases" WHERE "releases"."project_id" = recursive_keyset_cte.array_cte_id_array[position] AND (("releases"."released_at", "releases"."id") < (recursive_keyset_cte.releases_released_at_array[position], recursive_keyset_cte.releases_id_array[position])) ORDER BY "releases"."released_at" DESC, "releases"."id" DESC LIMIT 1) record ON TRUE LIMIT 1) AS next_cursor_values
       )) SELECT (records).* FROM "recursive_keyset_cte" AS "releases" WHERE (count <> 0)) releases /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/countable_connection_type.rb:20:in `count'*/

       SELECT "work_item_widget_definitions".* FROM "work_item_widget_definitions" WHERE "work_item_widget_definitions"."namespace_id" IS NULL AND "work_item_widget_definitions"."disabled" = FALSE /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/work_items/widget_definition.rb:45:in `filter_map'*/

       SELECT "issues"."id", "issues"."title", "issues"."author_id", "issues"."project_id", "issues"."created_at", "issues"."updated_at", "issues"."description", "issues"."milestone_id", "issues"."iid", "issues"."updated_by_id", "issues"."weight", "issues"."confidential", "issues"."due_date", "issues"."moved_to_id", "issues"."lock_version", "issues"."title_html", "issues"."description_html", "issues"."time_estimate", "issues"."relative_position", "issues"."service_desk_reply_to", "issues"."cached_markdown_version", "issues"."last_edited_at", "issues"."last_edited_by_id", "issues"."discussion_locked", "issues"."closed_at", "issues"."closed_by_id", "issues"."state_id", "issues"."duplicated_to_id", "issues"."promoted_to_epic_id", "issues"."health_status", "issues"."external_key", "issues"."sprint_id", "issues"."blocking_issues_count", "issues"."upvotes_count", "issues"."work_item_type_id", "issues"."namespace_id", "issues"."start_date", "issues"."imported_from" FROM "issues" WHERE "issues"."namespace_id" IN (SELECT "namespaces"."id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND "namespaces"."id" = 1773) ORDER BY "issues"."created_at" DESC, "issues"."id" DESC LIMIT 101 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/pagination/keyset/connection.rb:122:in `block in limited_nodes'*/

       SELECT "work_item_widget_definitions".* FROM "work_item_widget_definitions" WHERE "work_item_widget_definitions"."namespace_id" IS NULL AND "work_item_widget_definitions"."disabled" = FALSE

       SELECT COUNT(*) AS "count_all", "issues"."state_id" AS "issues_state_id" FROM "issues" WHERE "issues"."namespace_id" IN (SELECT "namespaces"."id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND "namespaces"."id" = 1773) GROUP BY "issues"."state_id" /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/finders/issuable_finder.rb:184:in `count_by_state'*/

       SELECT "users".* FROM "users" WHERE "users"."id" IN (WITH "group_hierarchy" AS MATERIALIZED (SELECT "namespaces"."id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND ((traversal_ids >= ('{1773}')) AND (traversal_ids < ('{1774}')) OR 1=0)), "descendant_projects" AS MATERIALIZED (SELECT "projects"."id" FROM "projects" WHERE "projects"."namespace_id" IN (SELECT "namespaces"."id" FROM UNNEST(
         COALESCE(
           (SELECT ids FROM (SELECT "namespace_descendants"."self_and_descendant_group_ids" AS ids FROM "namespace_descendants" WHERE "namespace_descendants"."outdated_at" IS NULL AND "namespace_descendants"."namespace_id" = 1773) cached_query),
           (SELECT ids FROM (SELECT ARRAY_AGG("namespaces"."id") AS ids FROM (SELECT namespaces.traversal_ids[array_length(namespaces.traversal_ids, 1)] AS id FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1773}')) AND (traversal_ids < ('{1774}'))) namespaces) consistent_query))
       ) AS namespaces(id)
       )) SELECT "members"."user_id" FROM ((SELECT "members"."user_id" FROM "members" WHERE "members"."type" = 'GroupMember' AND "members"."source_type" = 'Namespace' AND "members"."source_id" IN (SELECT "id" FROM "group_hierarchy") AND "members"."state" = 0 AND "members"."requested_at" IS NULL AND "members"."invite_token" IS NULL AND (members.access_level > 5))
       UNION ALL
       (SELECT "members"."user_id" FROM "members" WHERE "members"."type" = 'GroupMember' AND "members"."source_type" = 'Namespace' AND "members"."source_id" IN (SELECT "group_group_links"."shared_with_group_id" FROM "group_group_links" WHERE "group_group_links"."shared_group_id" IN (SELECT "id" FROM "group_hierarchy")) AND "members"."state" = 0 AND "members"."requested_at" IS NULL AND "members"."invite_token" IS NULL AND (members.access_level > 5))
       UNION ALL
       (SELECT "members"."user_id" FROM "members" WHERE "members"."type" IN ('ProjectMember', 'ProjectNamespaceMember') AND "members"."source_type" = 'Project' AND "members"."source_id" IN (SELECT "id" FROM "descendant_projects") AND "members"."state" = 0 AND "members"."requested_at" IS NULL AND "members"."invite_token" IS NULL AND (members.access_level > 5))
       UNION ALL
       (SELECT "members"."user_id" FROM "members" WHERE "members"."type" = 'GroupMember' AND "members"."source_type" = 'Namespace' AND "members"."source_id" IN (SELECT "project_group_links"."group_id" FROM "project_group_links" WHERE "project_group_links"."project_id" IN (SELECT "id" FROM "descendant_projects")) AND "members"."state" = 0 AND "members"."requested_at" IS NULL AND "members"."invite_token" IS NULL AND (members.access_level > 5))) members) AND "users"."state" = 'active' AND "users"."user_type" IN (0, 6, 4, 13) /* allow_cross_joins_across_databases */ ORDER BY "users"."name" ASC LIMIT 20 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/concerns/use_sql_function_for_primary_key_lookups.rb:12:in `_query_by_sql'*/

       SELECT "user_statuses".* FROM "user_statuses" WHERE "user_statuses"."user_id" = 1399 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/finders/autocomplete/users_finder.rb:106:in `preload_associations'*/

       SELECT "user_details"."user_id", "user_details"."job_title", "user_details"."bio", "user_details"."webauthn_xid", "user_details"."provisioned_by_group_id", "user_details"."pronouns", "user_details"."pronunciation", "user_details"."registration_objective", "user_details"."phone", "user_details"."linkedin", "user_details"."twitter", "user_details"."skype", "user_details"."website_url", "user_details"."location", "user_details"."organization", "user_details"."password_last_changed_at", "user_details"."discord", "user_details"."enterprise_group_id", "user_details"."enterprise_group_associated_at", "user_details"."email_reset_offered_at", "user_details"."mastodon", "user_details"."project_authorizations_recalculated_at", "user_details"."onboarding_status" FROM "user_details" WHERE "user_details"."user_id" = 1399 LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/user.rb:2282:in `user_detail'*/

       SELECT COUNT(*) FROM "projects" WHERE (EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1401 AND (project_authorizations.project_id = projects.id)) OR projects.visibility_level IN (0,10,20)) AND "projects"."pending_delete" = FALSE AND "projects"."id" IN (SELECT "projects"."id" FROM "projects" INNER JOIN "users_star_projects" ON "projects"."id" = "users_star_projects"."project_id" WHERE "users_star_projects"."user_id" = 1399) AND "projects"."hidden" = FALSE /* allow_cross_joins_across_databases */ /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/countable_connection_type.rb:20:in `count'*/

       SELECT "namespaces"."id", "namespaces"."name", "namespaces"."path", "namespaces"."owner_id", "namespaces"."created_at", "namespaces"."updated_at", "namespaces"."type", "namespaces"."description", "namespaces"."avatar", "namespaces"."membership_lock", "namespaces"."share_with_group_lock", "namespaces"."visibility_level", "namespaces"."request_access_enabled", "namespaces"."ldap_sync_status", "namespaces"."ldap_sync_error", "namespaces"."ldap_sync_last_update_at", "namespaces"."ldap_sync_last_successful_update_at", "namespaces"."ldap_sync_last_sync_at", "namespaces"."description_html", "namespaces"."lfs_enabled", "namespaces"."parent_id", "namespaces"."shared_runners_minutes_limit", "namespaces"."repository_size_limit", "namespaces"."require_two_factor_authentication", "namespaces"."two_factor_grace_period", "namespaces"."cached_markdown_version", "namespaces"."project_creation_level", "namespaces"."runners_token", "namespaces"."file_template_project_id", "namespaces"."saml_discovery_token", "namespaces"."runners_token_encrypted", "namespaces"."custom_project_templates_group_id", "namespaces"."auto_devops_enabled", "namespaces"."extra_shared_runners_minutes_limit", "namespaces"."last_ci_minutes_notification_at", "namespaces"."last_ci_minutes_usage_notification_level", "namespaces"."subgroup_creation_level", "namespaces"."max_pages_size", "namespaces"."max_artifacts_size", "namespaces"."mentions_disabled", "namespaces"."default_branch_protection", "namespaces"."max_personal_access_token_lifetime", "namespaces"."push_rule_id", "namespaces"."shared_runners_enabled", "namespaces"."allow_descendants_override_disabled_shared_runners", "namespaces"."traversal_ids", "namespaces"."organization_id" FROM "namespaces" WHERE "namespaces"."owner_id" = 1399 AND "namespaces"."type" = 'User' LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/concerns/use_sql_function_for_primary_key_lookups.rb:12:in `_query_by_sql'*/

       SELECT COUNT(*) FROM ((SELECT "projects"."id", "projects"."name", "projects"."path", "projects"."description", "projects"."created_at", "projects"."updated_at", "projects"."creator_id", "projects"."namespace_id", "projects"."last_activity_at", "projects"."import_url", "projects"."visibility_level", "projects"."archived", "projects"."avatar", "projects"."merge_requests_template", "projects"."star_count", "projects"."merge_requests_rebase_enabled", "projects"."import_type", "projects"."import_source", "projects"."approvals_before_merge", "projects"."reset_approvals_on_push", "projects"."merge_requests_ff_only_enabled", "projects"."issues_template", "projects"."mirror", "projects"."mirror_last_update_at", "projects"."mirror_last_successful_update_at", "projects"."mirror_user_id", "projects"."shared_runners_enabled", "projects"."runners_token", "projects"."build_allow_git_fetch", "projects"."build_timeout", "projects"."mirror_trigger_builds", "projects"."pending_delete", "projects"."public_builds", "projects"."last_repository_check_failed", "projects"."last_repository_check_at", "projects"."only_allow_merge_if_pipeline_succeeds", "projects"."has_external_issue_tracker", "projects"."repository_storage", "projects"."repository_read_only", "projects"."request_access_enabled", "projects"."has_external_wiki", "projects"."ci_config_path", "projects"."lfs_enabled", "projects"."description_html", "projects"."only_allow_merge_if_all_discussions_are_resolved", "projects"."repository_size_limit", "projects"."printing_merge_request_link_enabled", "projects"."auto_cancel_pending_pipelines", "projects"."service_desk_enabled", "projects"."cached_markdown_version", "projects"."delete_error", "projects"."last_repository_updated_at", "projects"."disable_overriding_approvers_per_merge_request", "projects"."storage_version", "projects"."resolve_outdated_diff_discussions", "projects"."remote_mirror_available_overridden", "projects"."only_mirror_protected_branches", "projects"."pull_mirror_available_overridden", "projects"."jobs_cache_index", "projects"."external_authorization_classification_label", "projects"."mirror_overwrites_diverged_branches", "projects"."pages_https_only", "projects"."external_webhook_token", "projects"."packages_enabled", "projects"."merge_requests_author_approval", "projects"."pool_repository_id", "projects"."runners_token_encrypted", "projects"."bfg_object_map", "projects"."detected_repository_languages", "projects"."merge_requests_disable_committers_approval", "projects"."require_password_to_approve", "projects"."max_pages_size", "projects"."max_artifacts_size", "projects"."pull_mirror_branch_prefix", "projects"."remove_source_branch_after_merge", "projects"."marked_for_deletion_at", "projects"."marked_for_deletion_by_user_id", "projects"."autoclose_referenced_issues", "projects"."suggestion_commit_message", "projects"."project_namespace_id", "projects"."hidden", "projects"."organization_id" FROM "projects" WHERE "projects"."id" IN (SELECT DISTINCT "events"."project_id" FROM "events" WHERE (action IN (5,6) OR (target_type IN ('MergeRequest','Issue','WorkItem') AND action IN (1,3,7,12))) AND "events"."author_id" = 1399 AND "events"."created_at" >= '2023-06-10 05:39:53.523261') AND "projects"."marked_for_deletion_at" IS NULL AND "projects"."pending_delete" = FALSE AND "projects"."id" IN (SELECT "projects"."id" FROM "projects" INNER JOIN "project_authorizations" ON "projects"."id" = "project_authorizations"."project_id" WHERE "project_authorizations"."user_id" = 1401))
       UNION
       (SELECT "projects"."id", "projects"."name", "projects"."path", "projects"."description", "projects"."created_at", "projects"."updated_at", "projects"."creator_id", "projects"."namespace_id", "projects"."last_activity_at", "projects"."import_url", "projects"."visibility_level", "projects"."archived", "projects"."avatar", "projects"."merge_requests_template", "projects"."star_count", "projects"."merge_requests_rebase_enabled", "projects"."import_type", "projects"."import_source", "projects"."approvals_before_merge", "projects"."reset_approvals_on_push", "projects"."merge_requests_ff_only_enabled", "projects"."issues_template", "projects"."mirror", "projects"."mirror_last_update_at", "projects"."mirror_last_successful_update_at", "projects"."mirror_user_id", "projects"."shared_runners_enabled", "projects"."runners_token", "projects"."build_allow_git_fetch", "projects"."build_timeout", "projects"."mirror_trigger_builds", "projects"."pending_delete", "projects"."public_builds", "projects"."last_repository_check_failed", "projects"."last_repository_check_at", "projects"."only_allow_merge_if_pipeline_succeeds", "projects"."has_external_issue_tracker", "projects"."repository_storage", "projects"."repository_read_only", "projects"."request_access_enabled", "projects"."has_external_wiki", "projects"."ci_config_path", "projects"."lfs_enabled", "projects"."description_html", "projects"."only_allow_merge_if_all_discussions_are_resolved", "projects"."repository_size_limit", "projects"."printing_merge_request_link_enabled", "projects"."auto_cancel_pending_pipelines", "projects"."service_desk_enabled", "projects"."cached_markdown_version", "projects"."delete_error", "projects"."last_repository_updated_at", "projects"."disable_overriding_approvers_per_merge_request", "projects"."storage_version", "projects"."resolve_outdated_diff_discussions", "projects"."remote_mirror_available_overridden", "projects"."only_mirror_protected_branches", "projects"."pull_mirror_available_overridden", "projects"."jobs_cache_index", "projects"."external_authorization_classification_label", "projects"."mirror_overwrites_diverged_branches", "projects"."pages_https_only", "projects"."external_webhook_token", "projects"."packages_enabled", "projects"."merge_requests_author_approval", "projects"."pool_repository_id", "projects"."runners_token_encrypted", "projects"."bfg_object_map", "projects"."detected_repository_languages", "projects"."merge_requests_disable_committers_approval", "projects"."require_password_to_approve", "projects"."max_pages_size", "projects"."max_artifacts_size", "projects"."pull_mirror_branch_prefix", "projects"."remove_source_branch_after_merge", "projects"."marked_for_deletion_at", "projects"."marked_for_deletion_by_user_id", "projects"."autoclose_referenced_issues", "projects"."suggestion_commit_message", "projects"."project_namespace_id", "projects"."hidden", "projects"."organization_id" FROM "projects" WHERE "projects"."id" IN (SELECT DISTINCT "events"."project_id" FROM "events" WHERE (action IN (5,6) OR (target_type IN ('MergeRequest','Issue','WorkItem') AND action IN (1,3,7,12))) AND "events"."author_id" = 1399 AND "events"."created_at" >= '2023-06-10 05:39:53.525320') AND "projects"."marked_for_deletion_at" IS NULL AND "projects"."pending_delete" = FALSE AND "projects"."visibility_level" IN (0, 10, 20))) projects WHERE "projects"."namespace_id" IS NOT NULL /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/countable_connection_type.rb:20:in `count'*/

       SELECT EXTRACT(epoch FROM SUM(AGE(merge_request_metrics.merged_at, merge_request_metrics.created_at))) FROM "merge_requests" INNER JOIN "projects" ON "projects"."id" = "merge_requests"."target_project_id" INNER JOIN "merge_request_metrics" ON "merge_request_metrics"."merge_request_id" = "merge_requests"."id" LEFT JOIN project_features ON projects.id = project_features.project_id WHERE (EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1401 AND (project_authorizations.project_id = projects.id)) OR projects.visibility_level IN (0,10,20)) AND ("project_features"."merge_requests_access_level" > 0 OR "project_features"."merge_requests_access_level" IS NULL) AND "merge_requests"."author_id" = 1399 AND "merge_requests"."target_project_id" = "merge_request_metrics"."target_project_id" AND "merge_request_metrics"."merged_at" > "merge_request_metrics"."created_at" LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/merge_request.rb:505:in `total_time_to_merge'*/

       SELECT COUNT(*) FROM "merge_requests" INNER JOIN "projects" ON "projects"."id" = "merge_requests"."target_project_id" LEFT JOIN project_features ON projects.id = project_features.project_id WHERE (EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1401 AND (project_authorizations.project_id = projects.id)) OR projects.visibility_level IN (0,10,20)) AND ("project_features"."merge_requests_access_level" > 0 OR "project_features"."merge_requests_access_level" IS NULL) AND "merge_requests"."author_id" = 1399 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/countable_connection_type.rb:20:in `count'*/

       SELECT EXTRACT(epoch FROM SUM(AGE(merge_request_metrics.merged_at, merge_request_metrics.created_at))) FROM "merge_requests" INNER JOIN "projects" ON "projects"."id" = "merge_requests"."target_project_id" INNER JOIN "merge_request_metrics" ON "merge_request_metrics"."merge_request_id" = "merge_requests"."id" LEFT JOIN project_features ON projects.id = project_features.project_id WHERE (EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1401 AND (project_authorizations.project_id = projects.id)) OR projects.visibility_level IN (0,10,20)) AND ("project_features"."merge_requests_access_level" > 0 OR "project_features"."merge_requests_access_level" IS NULL) AND EXISTS (SELECT "merge_request_assignees".* FROM "merge_request_assignees" WHERE "merge_request_assignees"."user_id" = 1399 AND (merge_request_id = merge_requests.id)) AND "merge_requests"."target_project_id" = "merge_request_metrics"."target_project_id" AND "merge_request_metrics"."merged_at" > "merge_request_metrics"."created_at" LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/merge_request.rb:505:in `total_time_to_merge'*/

       SELECT COUNT(*) FROM "merge_requests" INNER JOIN "projects" ON "projects"."id" = "merge_requests"."target_project_id" LEFT JOIN project_features ON projects.id = project_features.project_id WHERE (EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1401 AND (project_authorizations.project_id = projects.id)) OR projects.visibility_level IN (0,10,20)) AND ("project_features"."merge_requests_access_level" > 0 OR "project_features"."merge_requests_access_level" IS NULL) AND EXISTS (SELECT "merge_request_assignees".* FROM "merge_request_assignees" WHERE "merge_request_assignees"."user_id" = 1399 AND (merge_request_id = merge_requests.id)) /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/countable_connection_type.rb:20:in `count'*/

       SELECT "users".* FROM find_users_by_id(1399) AS users WHERE ("users"."id" IS NOT NULL) LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/concerns/use_sql_function_for_primary_key_lookups.rb:12:in `_query_by_sql'*/

       SELECT EXTRACT(epoch FROM SUM(AGE(merge_request_metrics.merged_at, merge_request_metrics.created_at))) FROM "merge_requests" INNER JOIN "projects" ON "projects"."id" = "merge_requests"."target_project_id" INNER JOIN "merge_request_metrics" ON "merge_request_metrics"."merge_request_id" = "merge_requests"."id" LEFT JOIN project_features ON projects.id = project_features.project_id WHERE (EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1401 AND (project_authorizations.project_id = projects.id)) OR projects.visibility_level IN (0,10,20)) AND ("project_features"."merge_requests_access_level" > 0 OR "project_features"."merge_requests_access_level" IS NULL) AND EXISTS (SELECT true FROM "merge_request_reviewers" WHERE merge_request_id = merge_requests.id AND "merge_request_reviewers"."user_id" = 1399) AND "merge_requests"."target_project_id" = "merge_request_metrics"."target_project_id" AND "merge_request_metrics"."merged_at" > "merge_request_metrics"."created_at" LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/merge_request.rb:505:in `total_time_to_merge'*/

       SELECT COUNT(*) FROM "merge_requests" INNER JOIN "projects" ON "projects"."id" = "merge_requests"."target_project_id" LEFT JOIN project_features ON projects.id = project_features.project_id WHERE (EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1401 AND (project_authorizations.project_id = projects.id)) OR projects.visibility_level IN (0,10,20)) AND ("project_features"."merge_requests_access_level" > 0 OR "project_features"."merge_requests_access_level" IS NULL) AND EXISTS (SELECT true FROM "merge_request_reviewers" WHERE merge_request_id = merge_requests.id AND "merge_request_reviewers"."user_id" = 1399) /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/countable_connection_type.rb:20:in `count'*/

       SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."user_id" = 1399 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/time_tracking/timelog_connection_type.rb:20:in `total_spent_time'*/

       SELECT COUNT(*) FROM "timelogs" WHERE "timelogs"."user_id" = 1399 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/countable_connection_type.rb:20:in `count'*/

       SELECT COUNT(*) FROM "saved_replies" WHERE "saved_replies"."user_id" = 1399 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/countable_connection_type.rb:20:in `count'*/

       SELECT "user_preferences".* FROM "user_preferences" WHERE "user_preferences"."user_id" = 1399 LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/user.rb:2278:in `user_preference'*/

       SELECT COUNT(*) FROM "user_achievements" WHERE "user_achievements"."user_id" = 1399 AND "user_achievements"."revoked_by_user_id" IS NULL /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/countable_connection_type.rb:20:in `count'*/

       SELECT "sprints".* FROM "sprints" WHERE "sprints"."group_id" IN (SELECT "namespaces"."id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND "namespaces"."id" = 1773) ORDER BY "sprints"."due_date" ASC, "sprints"."title" ASC, "sprints"."id" ASC LIMIT 100 OFFSET 0 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/connection_redaction.rb:23:in `block in nodes'*/

       SELECT "iterations_cadences".* FROM "iterations_cadences" WHERE "iterations_cadences"."group_id" = 1773 ORDER BY "iterations_cadences"."title" ASC LIMIT 100 OFFSET 0 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/connection_redaction.rb:23:in `block in nodes'*/

       SELECT "vulnerability_reads".* FROM "vulnerability_reads" WHERE "vulnerability_reads"."vulnerability_id" IN (SELECT "vulnerability_reads"."vulnerability_id" FROM unnest('{0,1,2,3,4,5,6,7,8,99}'::smallint[]) AS "report_types"("report_type"), unnest('{1,2,4,5,6,7}'::smallint[]) AS "severities"("severity"), unnest('{1,4,3,2}'::smallint[]) AS "states"("state"), LATERAL (SELECT "vulnerability_reads"."archived", "vulnerability_reads"."report_type", "vulnerability_reads"."severity", "vulnerability_reads"."state", "vulnerability_reads"."traversal_ids", "vulnerability_reads"."vulnerability_id" FROM "vulnerability_reads" WHERE "vulnerability_reads"."traversal_ids" >= '{1773}' AND "vulnerability_reads"."traversal_ids" < '{1774}' AND "vulnerability_reads"."archived" = FALSE AND (vulnerability_reads."report_type" = "report_types"."report_type") AND (vulnerability_reads."severity" = "severities"."severity") AND (vulnerability_reads."state" = "states"."state") ORDER BY "vulnerability_reads"."severity" DESC, "vulnerability_reads"."traversal_ids" DESC, "vulnerability_reads"."vulnerability_id" DESC LIMIT 101) AS vulnerability_reads ORDER BY "vulnerability_reads"."severity" DESC, "vulnerability_reads"."traversal_ids" DESC, "vulnerability_reads"."vulnerability_id" DESC LIMIT 101) ORDER BY "vulnerability_reads"."severity" DESC, "vulnerability_reads"."traversal_ids" DESC, "vulnerability_reads"."vulnerability_id" DESC LIMIT 101 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/unnested_in_filters/dsl.rb:62:in `load'*/

       SELECT DISTINCT ON ("vulnerability_scanners"."external_id", "report_types"."report_type") "vulnerability_scanners".*, "report_types"."report_type" AS "report_type" FROM "vulnerability_scanners" JOIN LATERAL (SELECT "vulnerability_occurrences"."report_type" FROM "vulnerability_occurrences" WHERE "vulnerability_occurrences"."scanner_id" = "vulnerability_scanners"."id" LIMIT 1) report_types ON true WHERE "vulnerability_scanners"."project_id" IN (SELECT "projects"."id" FROM "projects" WHERE "projects"."namespace_id" IN (SELECT "namespaces"."id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1773}')) AND (traversal_ids < ('{1774}'))) AND "projects"."archived" = FALSE AND "projects"."pending_delete" = FALSE) ORDER BY "vulnerability_scanners"."external_id" ASC, "report_types"."report_type" ASC /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/ee/app/graphql/resolvers/vulnerabilities/scanners_resolver.rb:14:in `map'*/

       SELECT COUNT(*) FROM "releases" INNER JOIN "projects" ON "projects"."id" = "releases"."project_id" WHERE "projects"."namespace_id" IN (SELECT "namespaces"."id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1773}')) AND (traversal_ids < ('{1774}'))) /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/ee/app/models/ee/group.rb:750:in `releases_count'*/

       SELECT (
         COUNT(*) FILTER (WHERE EXISTS (SELECT 1 FROM releases WHERE releases.project_id = projects.id)) * 100.0 / GREATEST(COUNT(*), 1)
       )::integer AS releases_percentage
        FROM "projects" WHERE "projects"."namespace_id" IN (SELECT "namespaces"."id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1773}')) AND (traversal_ids < ('{1774}'))) /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/ee/app/models/ee/group.rb:760:in `releases_percentage'*/

       SELECT "users"."id" FROM "users" WHERE "users"."id" IN (SELECT "members"."user_id" FROM "members" LEFT OUTER JOIN "users" ON "users"."id" = "members"."user_id" WHERE "members"."type" = 'GroupMember' AND "members"."source_type" = 'Namespace' AND "users"."state" = 'active' AND "members"."state" = 0 AND "members"."requested_at" IS NULL AND "members"."invite_token" IS NULL AND (members.access_level > 5) AND "members"."source_id" IN (SELECT "namespaces"."id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1773}')) AND (traversal_ids < ('{1774}'))) AND "members"."user_id" NOT IN (SELECT "namespace_bans"."user_id" FROM "namespace_bans" WHERE "namespace_bans"."namespace_id" = 1773) /* allow_cross_joins_across_databases */) AND "users"."user_type" IN (0, 4, 5, 15) /* allow_cross_joins_across_databases */ /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/ee/app/finders/namespaces/billed_users_finder.rb:34:in `block in calculate_user_ids'*/

       SELECT "users"."id" FROM "users" WHERE "users"."id" IN (SELECT "members"."user_id" FROM "members" WHERE "members"."type" IN ('ProjectMember', 'ProjectNamespaceMember') AND "members"."source_type" = 'Project' AND "members"."state" = 0 AND "members"."requested_at" IS NULL AND "members"."invite_token" IS NULL AND (members.access_level > 5) AND "members"."source_id" IN (SELECT "projects"."id" FROM "projects" INNER JOIN "namespaces" ON "namespaces"."type" = 'Group' AND "namespaces"."id" = "projects"."namespace_id" AND "namespaces"."type" = 'Group' WHERE "projects"."namespace_id" IN (SELECT "namespaces"."id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1773}')) AND (traversal_ids < ('{1774}')))) AND "members"."user_id" NOT IN (SELECT "namespace_bans"."user_id" FROM "namespace_bans" WHERE "namespace_bans"."namespace_id" = 1773)) AND "users"."user_type" IN (0, 4, 5, 15) AND ("users"."state" IN ('active')) /* allow_cross_joins_across_databases */ /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/ee/app/finders/namespaces/billed_users_finder.rb:34:in `block in calculate_user_ids'*/

       SELECT "users"."id" FROM "users" WHERE "users"."id" IN (SELECT "members"."user_id" FROM "members" LEFT OUTER JOIN "users" ON "users"."id" = "members"."user_id" WHERE "users"."state" = 'active' AND "members"."state" = 0 AND "members"."requested_at" IS NULL AND "members"."invite_token" IS NULL AND (members.access_level > 5) AND "members"."source_id" IN (WITH "base_ancestors_cte" AS MATERIALIZED (SELECT "namespaces"."traversal_ids" FROM "namespaces" INNER JOIN "group_group_links" ON "group_group_links"."shared_with_group_id" = "namespaces"."id" WHERE "namespaces"."type" = 'Group' AND "group_group_links"."shared_group_id" IN (SELECT "namespaces"."id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1773}')) AND (traversal_ids < ('{1774}')))) SELECT "namespaces"."id" FROM "namespaces" INNER JOIN (SELECT DISTINCT unnest("base_ancestors_cte"."traversal_ids") FROM base_ancestors_cte) AS ancestors(ancestor_id) ON namespaces.id = ancestors.ancestor_id WHERE "namespaces"."type" = 'Group') AND "members"."type" = 'GroupMember' AND "members"."source_type" = 'Namespace' AND "members"."user_id" NOT IN (SELECT "namespace_bans"."user_id" FROM "namespace_bans" WHERE "namespace_bans"."namespace_id" = 1773) /* allow_cross_joins_across_databases */) AND "users"."user_type" IN (0, 4, 5, 15) /* allow_cross_joins_across_databases */ /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/ee/app/finders/namespaces/billed_users_finder.rb:34:in `block in calculate_user_ids'*/

       SELECT "users"."id" FROM "users" WHERE "users"."id" IN (SELECT "members"."user_id" FROM "members" LEFT OUTER JOIN "users" ON "users"."id" = "members"."user_id" WHERE "users"."state" = 'active' AND "members"."state" = 0 AND "members"."requested_at" IS NULL AND "members"."invite_token" IS NULL AND (members.access_level > 5) AND "members"."source_id" IN (WITH "base_ancestors_cte" AS MATERIALIZED (SELECT "namespaces"."traversal_ids" FROM "namespaces" INNER JOIN "project_group_links" ON "project_group_links"."group_id" = "namespaces"."id" WHERE "namespaces"."type" = 'Group' AND "project_group_links"."project_id" IN (SELECT "projects"."id" FROM "projects" WHERE "projects"."namespace_id" IN (SELECT "namespaces"."id" FROM UNNEST(
         COALESCE(
           (SELECT ids FROM (SELECT "namespace_descendants"."self_and_descendant_group_ids" AS ids FROM "namespace_descendants" WHERE "namespace_descendants"."outdated_at" IS NULL AND "namespace_descendants"."namespace_id" = 1773) cached_query),
           (SELECT ids FROM (SELECT ARRAY_AGG("namespaces"."id") AS ids FROM (SELECT namespaces.traversal_ids[array_length(namespaces.traversal_ids, 1)] AS id FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1773}')) AND (traversal_ids < ('{1774}'))) namespaces) consistent_query))
       ) AS namespaces(id)
       ))) SELECT "namespaces"."id" FROM "namespaces" INNER JOIN (SELECT DISTINCT unnest("base_ancestors_cte"."traversal_ids") FROM base_ancestors_cte) AS ancestors(ancestor_id) ON namespaces.id = ancestors.ancestor_id WHERE "namespaces"."type" = 'Group') AND "members"."type" = 'GroupMember' AND "members"."source_type" = 'Namespace' AND "members"."user_id" NOT IN (SELECT "namespace_bans"."user_id" FROM "namespace_bans" WHERE "namespace_bans"."namespace_id" = 1773) /* allow_cross_joins_across_databases */) AND "users"."user_type" IN (0, 4, 5, 15) /* allow_cross_joins_across_databases */ /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/ee/app/finders/namespaces/billed_users_finder.rb:34:in `block in calculate_user_ids'*/

       SELECT * FROM (WITH RECURSIVE "array_cte" AS MATERIALIZED (SELECT "projects"."id" FROM "projects" WHERE "projects"."namespace_id" IN (SELECT "namespaces"."id" FROM UNNEST(
         COALESCE(
           (SELECT ids FROM (SELECT "namespace_descendants"."self_and_descendant_group_ids" AS ids FROM "namespace_descendants" WHERE "namespace_descendants"."outdated_at" IS NULL AND "namespace_descendants"."namespace_id" = 1773) cached_query),
           (SELECT ids FROM (SELECT ARRAY_AGG("namespaces"."id") AS ids FROM (SELECT namespaces.traversal_ids[array_length(namespaces.traversal_ids, 1)] AS id FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1773}')) AND (traversal_ids < ('{1774}'))) namespaces) consistent_query))
       ) AS namespaces(id)
       )), "recursive_keyset_cte" AS ((SELECT NULL::merge_requests_compliance_violations AS records, array_cte_id_array, merge_requests_compliance_violations_severity_level_array, merge_requests_compliance_violations_id_array, 0::bigint AS count FROM (SELECT ARRAY_AGG("array_cte"."id") AS array_cte_id_array, ARRAY_AGG("merge_requests_compliance_violations"."severity_level") AS merge_requests_compliance_violations_severity_level_array, ARRAY_AGG("merge_requests_compliance_violations"."id") AS merge_requests_compliance_violations_id_array FROM (SELECT "array_cte"."id" FROM array_cte) array_cte LEFT JOIN LATERAL (SELECT "merge_requests_compliance_violations"."severity_level" AS severity_level, "merge_requests_compliance_violations"."id" AS id FROM "merge_requests_compliance_violations" WHERE "merge_requests_compliance_violations"."target_project_id" = "array_cte"."id" ORDER BY "merge_requests_compliance_violations"."severity_level" DESC, "merge_requests_compliance_violations"."id" DESC LIMIT 1) merge_requests_compliance_violations ON TRUE WHERE "merge_requests_compliance_violations"."severity_level" IS NOT NULL AND "merge_requests_compliance_violations"."id" IS NOT NULL) array_scope_lateral_query LIMIT 1)
       UNION ALL
       (SELECT (SELECT merge_requests_compliance_violations FROM "merge_requests_compliance_violations" WHERE "merge_requests_compliance_violations"."id" = recursive_keyset_cte.merge_requests_compliance_violations_id_array[position] LIMIT 1), array_cte_id_array, recursive_keyset_cte.merge_requests_compliance_violations_severity_level_array[:position_query.position-1]||next_cursor_values.severity_level||recursive_keyset_cte.merge_requests_compliance_violations_severity_level_array[position_query.position+1:], recursive_keyset_cte.merge_requests_compliance_violations_id_array[:position_query.position-1]||next_cursor_values.id||recursive_keyset_cte.merge_requests_compliance_violations_id_array[position_query.position+1:], recursive_keyset_cte.count + 1 FROM recursive_keyset_cte,
       LATERAL (SELECT severity_level, id, position FROM UNNEST(merge_requests_compliance_violations_severity_level_array, merge_requests_compliance_violations_id_array) WITH ORDINALITY AS u(severity_level, id, position) WHERE severity_level IS NOT NULL AND id IS NOT NULL ORDER BY 1 DESC, 2 DESC LIMIT 1) AS position_query,
       LATERAL (SELECT "record"."severity_level", "record"."id" FROM (VALUES (NULL, NULL)) AS nulls LEFT JOIN (SELECT "merge_requests_compliance_violations"."severity_level" AS severity_level, "merge_requests_compliance_violations"."id" AS id FROM "merge_requests_compliance_violations" WHERE "merge_requests_compliance_violations"."target_project_id" = recursive_keyset_cte.array_cte_id_array[position] AND (("merge_requests_compliance_violations"."severity_level", "merge_requests_compliance_violations"."id") < (recursive_keyset_cte.merge_requests_compliance_violations_severity_level_array[position], recursive_keyset_cte.merge_requests_compliance_violations_id_array[position])) ORDER BY "merge_requests_compliance_violations"."severity_level" DESC, "merge_requests_compliance_violations"."id" DESC LIMIT 1) record ON TRUE LIMIT 1) AS next_cursor_values
       )) SELECT (records).* FROM "recursive_keyset_cte" AS "merge_requests_compliance_violations" WHERE (count <> 0)) merge_requests_compliance_violations LIMIT 100 OFFSET 0 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/connection_redaction.rb:23:in `block in nodes'*/

       SELECT "namespace_ci_cd_settings".* FROM "namespace_ci_cd_settings" WHERE "namespace_ci_cd_settings"."namespace_id" = 1773 LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/ee/app/models/ee/ci/namespace_settings.rb:14:in `allow_stale_runner_pruning?'*/

       SELECT "cluster_agents".* FROM "cluster_agents" WHERE "cluster_agents"."project_id" IN (SELECT "projects"."id" FROM "projects" WHERE "projects"."namespace_id" IN (SELECT "namespaces"."id" FROM UNNEST(
         COALESCE(
           (SELECT ids FROM (SELECT "namespace_descendants"."self_and_descendant_group_ids" AS ids FROM "namespace_descendants" WHERE "namespace_descendants"."outdated_at" IS NULL AND "namespace_descendants"."namespace_id" = 1773) cached_query),
           (SELECT ids FROM (SELECT ARRAY_AGG("namespaces"."id") AS ids FROM (SELECT namespaces.traversal_ids[array_length(namespaces.traversal_ids, 1)] AS id FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1773}')) AND (traversal_ids < ('{1774}'))) namespaces) consistent_query))
       ) AS namespaces(id)
       )) ORDER BY "cluster_agents"."name" ASC, "cluster_agents"."id" DESC LIMIT 101 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/pagination/keyset/connection.rb:122:in `block in limited_nodes'*/

       SELECT COUNT(*) FROM "cluster_agents" WHERE "cluster_agents"."project_id" IN (SELECT "projects"."id" FROM "projects" WHERE "projects"."namespace_id" IN (SELECT "namespaces"."id" FROM UNNEST(
         COALESCE(
           (SELECT ids FROM (SELECT "namespace_descendants"."self_and_descendant_group_ids" AS ids FROM "namespace_descendants" WHERE "namespace_descendants"."outdated_at" IS NULL AND "namespace_descendants"."namespace_id" = 1773) cached_query),
           (SELECT ids FROM (SELECT ARRAY_AGG("namespaces"."id") AS ids FROM (SELECT namespaces.traversal_ids[array_length(namespaces.traversal_ids, 1)] AS id FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1773}')) AND (traversal_ids < ('{1774}'))) namespaces) consistent_query))
       ) AS namespaces(id)
       )) /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/countable_connection_type.rb:20:in `count'*/

       SELECT * FROM (WITH RECURSIVE "array_cte" AS MATERIALIZED (SELECT "namespaces"."id" FROM UNNEST(
         COALESCE(
           (SELECT ids FROM (SELECT "namespace_descendants"."self_and_descendant_group_ids" AS ids FROM "namespace_descendants" WHERE "namespace_descendants"."outdated_at" IS NULL AND "namespace_descendants"."namespace_id" = 1773) cached_query),
           (SELECT ids FROM (SELECT ARRAY_AGG("namespaces"."id") AS ids FROM (SELECT namespaces.traversal_ids[array_length(namespaces.traversal_ids, 1)] AS id FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1773}')) AND (traversal_ids < ('{1774}'))) namespaces) consistent_query))
       ) AS namespaces(id)
       ), "recursive_keyset_cte" AS ((SELECT NULL::project_compliance_standards_adherence AS records, array_cte_id_array, project_compliance_standards_adherence_project_id_array, project_compliance_standards_adherence_id_array, 0::bigint AS count FROM (SELECT ARRAY_AGG("array_cte"."id") AS array_cte_id_array, ARRAY_AGG("project_compliance_standards_adherence"."project_id") AS project_compliance_standards_adherence_project_id_array, ARRAY_AGG("project_compliance_standards_adherence"."id") AS project_compliance_standards_adherence_id_array FROM (SELECT "array_cte"."id" FROM array_cte) array_cte LEFT JOIN LATERAL (SELECT "project_compliance_standards_adherence"."project_id" AS project_id, "project_compliance_standards_adherence"."id" AS id FROM "project_compliance_standards_adherence" WHERE "project_compliance_standards_adherence"."namespace_id" = "array_cte"."id" ORDER BY "project_compliance_standards_adherence"."project_id" DESC, "project_compliance_standards_adherence"."id" DESC LIMIT 1) project_compliance_standards_adherence ON TRUE WHERE "project_compliance_standards_adherence"."project_id" IS NOT NULL AND "project_compliance_standards_adherence"."id" IS NOT NULL) array_scope_lateral_query LIMIT 1)
       UNION ALL
       (SELECT (SELECT project_compliance_standards_adherence FROM "project_compliance_standards_adherence" WHERE "project_compliance_standards_adherence"."id" = recursive_keyset_cte.project_compliance_standards_adherence_id_array[position] LIMIT 1), array_cte_id_array, recursive_keyset_cte.project_compliance_standards_adherence_project_id_array[:position_query.position-1]||next_cursor_values.project_id||recursive_keyset_cte.project_compliance_standards_adherence_project_id_array[position_query.position+1:], recursive_keyset_cte.project_compliance_standards_adherence_id_array[:position_query.position-1]||next_cursor_values.id||recursive_keyset_cte.project_compliance_standards_adherence_id_array[position_query.position+1:], recursive_keyset_cte.count + 1 FROM recursive_keyset_cte,
       LATERAL (SELECT project_id, id, position FROM UNNEST(project_compliance_standards_adherence_project_id_array, project_compliance_standards_adherence_id_array) WITH ORDINALITY AS u(project_id, id, position) WHERE project_id IS NOT NULL AND id IS NOT NULL ORDER BY 1 DESC, 2 DESC LIMIT 1) AS position_query,
       LATERAL (SELECT "record"."project_id", "record"."id" FROM (VALUES (NULL, NULL)) AS nulls LEFT JOIN (SELECT "project_compliance_standards_adherence"."project_id" AS project_id, "project_compliance_standards_adherence"."id" AS id FROM "project_compliance_standards_adherence" WHERE "project_compliance_standards_adherence"."namespace_id" = recursive_keyset_cte.array_cte_id_array[position] AND (("project_compliance_standards_adherence"."project_id", "project_compliance_standards_adherence"."id") < (recursive_keyset_cte.project_compliance_standards_adherence_project_id_array[position], recursive_keyset_cte.project_compliance_standards_adherence_id_array[position])) ORDER BY "project_compliance_standards_adherence"."project_id" DESC, "project_compliance_standards_adherence"."id" DESC LIMIT 1) record ON TRUE LIMIT 1) AS next_cursor_values
       )) SELECT (records).* FROM "recursive_keyset_cte" AS "project_compliance_standards_adherence" WHERE (count <> 0)) project_compliance_standards_adherence LIMIT 100 OFFSET 0 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/connection_redaction.rb:23:in `block in nodes'*/

       SELECT "projects"."id", "projects"."name", "projects"."path", "projects"."description", "projects"."created_at", "projects"."updated_at", "projects"."creator_id", "projects"."namespace_id", "projects"."last_activity_at", "projects"."import_url", "projects"."visibility_level", "projects"."archived", "projects"."avatar", "projects"."merge_requests_template", "projects"."star_count", "projects"."merge_requests_rebase_enabled", "projects"."import_type", "projects"."import_source", "projects"."approvals_before_merge", "projects"."reset_approvals_on_push", "projects"."merge_requests_ff_only_enabled", "projects"."issues_template", "projects"."mirror", "projects"."mirror_last_update_at", "projects"."mirror_last_successful_update_at", "projects"."mirror_user_id", "projects"."shared_runners_enabled", "projects"."runners_token", "projects"."build_allow_git_fetch", "projects"."build_timeout", "projects"."mirror_trigger_builds", "projects"."pending_delete", "projects"."public_builds", "projects"."last_repository_check_failed", "projects"."last_repository_check_at", "projects"."only_allow_merge_if_pipeline_succeeds", "projects"."has_external_issue_tracker", "projects"."repository_storage", "projects"."repository_read_only", "projects"."request_access_enabled", "projects"."has_external_wiki", "projects"."ci_config_path", "projects"."lfs_enabled", "projects"."description_html", "projects"."only_allow_merge_if_all_discussions_are_resolved", "projects"."repository_size_limit", "projects"."printing_merge_request_link_enabled", "projects"."auto_cancel_pending_pipelines", "projects"."service_desk_enabled", "projects"."cached_markdown_version", "projects"."delete_error", "projects"."last_repository_updated_at", "projects"."disable_overriding_approvers_per_merge_request", "projects"."storage_version", "projects"."resolve_outdated_diff_discussions", "projects"."remote_mirror_available_overridden", "projects"."only_mirror_protected_branches", "projects"."pull_mirror_available_overridden", "projects"."jobs_cache_index", "projects"."external_authorization_classification_label", "projects"."mirror_overwrites_diverged_branches", "projects"."pages_https_only", "projects"."external_webhook_token", "projects"."packages_enabled", "projects"."merge_requests_author_approval", "projects"."pool_repository_id", "projects"."runners_token_encrypted", "projects"."bfg_object_map", "projects"."detected_repository_languages", "projects"."merge_requests_disable_committers_approval", "projects"."require_password_to_approve", "projects"."max_pages_size", "projects"."max_artifacts_size", "projects"."pull_mirror_branch_prefix", "projects"."remove_source_branch_after_merge", "projects"."marked_for_deletion_at", "projects"."marked_for_deletion_by_user_id", "projects"."autoclose_referenced_issues", "projects"."suggestion_commit_message", "projects"."project_namespace_id", "projects"."hidden", "projects"."organization_id" FROM "projects" INNER JOIN "analytics_dashboards_pointers" ON "projects"."id" = "analytics_dashboards_pointers"."target_project_id" WHERE "analytics_dashboards_pointers"."namespace_id" = 1773 LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/concerns/use_sql_function_for_primary_key_lookups.rb:12:in `_query_by_sql'*/

       SELECT DISTINCT ON (members.user_id, members.invite_email) members.* FROM ((SELECT "members"."id", "members"."access_level", "members"."source_id", "members"."source_type", "members"."user_id", "members"."notification_level", "members"."type", "members"."created_at", "members"."updated_at", "members"."created_by_id", "members"."invite_email", "members"."invite_token", "members"."invite_accepted_at", "members"."requested_at", "members"."expires_at", "members"."ldap", "members"."override", "members"."state", "members"."invite_email_success", "members"."member_namespace_id", "members"."member_role_id", "members"."expiry_notified_at", "members"."request_accepted_at", "members"."last_activity_on" FROM "members" WHERE "members"."source_type" = 'Namespace' AND "members"."source_id" IN (SELECT "namespaces"."id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1773}')) AND (traversal_ids < ('{1774}'))))
       UNION
       (SELECT "members"."id", "members"."access_level", "members"."source_id", "members"."source_type", "members"."user_id", "members"."notification_level", "members"."type", "members"."created_at", "members"."updated_at", "members"."created_by_id", "members"."invite_email", "members"."invite_token", "members"."invite_accepted_at", "members"."requested_at", "members"."expires_at", "members"."ldap", "members"."override", "members"."state", "members"."invite_email_success", "members"."member_namespace_id", "members"."member_role_id", "members"."expiry_notified_at", "members"."request_accepted_at", "members"."last_activity_on" FROM "members" WHERE "members"."source_type" = 'Project' AND "members"."source_id" IN (SELECT "projects"."id" FROM "projects" WHERE "projects"."namespace_id" IN (SELECT "namespaces"."id" FROM UNNEST(
         COALESCE(
           (SELECT ids FROM (SELECT "namespace_descendants"."self_and_descendant_group_ids" AS ids FROM "namespace_descendants" WHERE "namespace_descendants"."outdated_at" IS NULL AND "namespace_descendants"."namespace_id" = 1773) cached_query),
           (SELECT ids FROM (SELECT ARRAY_AGG("namespaces"."id") AS ids FROM (SELECT namespaces.traversal_ids[array_length(namespaces.traversal_ids, 1)] AS id FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1773}')) AND (traversal_ids < ('{1774}'))) namespaces) consistent_query))
       ) AS namespaces(id)
       )))) members WHERE ("members"."state" = 1 OR "members"."invite_token" IS NOT NULL) ORDER BY "members"."user_id" ASC, "members"."invite_email" ASC LIMIT 100 OFFSET 0 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/connection_redaction.rb:23:in `block in nodes'*/

       SELECT "projects"."id", "projects"."name", "projects"."path", "projects"."description", "projects"."created_at", "projects"."updated_at", "projects"."creator_id", "projects"."namespace_id", "projects"."last_activity_at", "projects"."import_url", "projects"."visibility_level", "projects"."archived", "projects"."avatar", "projects"."merge_requests_template", "projects"."star_count", "projects"."merge_requests_rebase_enabled", "projects"."import_type", "projects"."import_source", "projects"."approvals_before_merge", "projects"."reset_approvals_on_push", "projects"."merge_requests_ff_only_enabled", "projects"."issues_template", "projects"."mirror", "projects"."mirror_last_update_at", "projects"."mirror_last_successful_update_at", "projects"."mirror_user_id", "projects"."shared_runners_enabled", "projects"."runners_token", "projects"."build_allow_git_fetch", "projects"."build_timeout", "projects"."mirror_trigger_builds", "projects"."pending_delete", "projects"."public_builds", "projects"."last_repository_check_failed", "projects"."last_repository_check_at", "projects"."only_allow_merge_if_pipeline_succeeds", "projects"."has_external_issue_tracker", "projects"."repository_storage", "projects"."repository_read_only", "projects"."request_access_enabled", "projects"."has_external_wiki", "projects"."ci_config_path", "projects"."lfs_enabled", "projects"."description_html", "projects"."only_allow_merge_if_all_discussions_are_resolved", "projects"."repository_size_limit", "projects"."printing_merge_request_link_enabled", "projects"."auto_cancel_pending_pipelines", "projects"."service_desk_enabled", "projects"."cached_markdown_version", "projects"."delete_error", "projects"."last_repository_updated_at", "projects"."disable_overriding_approvers_per_merge_request", "projects"."storage_version", "projects"."resolve_outdated_diff_discussions", "projects"."remote_mirror_available_overridden", "projects"."only_mirror_protected_branches", "projects"."pull_mirror_available_overridden", "projects"."jobs_cache_index", "projects"."external_authorization_classification_label", "projects"."mirror_overwrites_diverged_branches", "projects"."pages_https_only", "projects"."external_webhook_token", "projects"."packages_enabled", "projects"."merge_requests_author_approval", "projects"."pool_repository_id", "projects"."runners_token_encrypted", "projects"."bfg_object_map", "projects"."detected_repository_languages", "projects"."merge_requests_disable_committers_approval", "projects"."require_password_to_approve", "projects"."max_pages_size", "projects"."max_artifacts_size", "projects"."pull_mirror_branch_prefix", "projects"."remove_source_branch_after_merge", "projects"."marked_for_deletion_at", "projects"."marked_for_deletion_by_user_id", "projects"."autoclose_referenced_issues", "projects"."suggestion_commit_message", "projects"."project_namespace_id", "projects"."hidden", "projects"."organization_id" FROM "projects" WHERE "projects"."namespace_id" = 1773 /* allow_cross_joins_across_databases */ ORDER BY "projects"."id" DESC LIMIT 101 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/concerns/use_sql_function_for_primary_key_lookups.rb:12:in `_query_by_sql'*/

       SELECT COUNT(*) FROM "projects" WHERE "projects"."namespace_id" = 1773 /* allow_cross_joins_across_databases */ /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/countable_connection_type.rb:20:in `count'*/

       SELECT "namespace_package_settings".* FROM "namespace_package_settings" WHERE "namespace_package_settings"."namespace_id" = 1773 LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/namespace.rb:362:in `package_settings'*/

       SELECT "timelog_categories".* FROM "timelog_categories" WHERE "timelog_categories"."namespace_id" = 1773 ORDER BY "timelog_categories"."id" DESC LIMIT 101 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/pagination/keyset/connection.rb:122:in `block in limited_nodes'*/

       SELECT "achievements".* FROM "achievements" WHERE "achievements"."namespace_id" = 1773 ORDER BY "achievements"."id" DESC LIMIT 101 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/pagination/keyset/connection.rb:122:in `block in limited_nodes'*/

       SELECT COUNT(*) FROM "achievements" WHERE "achievements"."namespace_id" = 1773 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/countable_connection_type.rb:20:in `count'*/

       SELECT "pages_deployments".* FROM "pages_deployments" WHERE "pages_deployments"."project_id" IN (SELECT "projects"."id" FROM "projects" WHERE "projects"."namespace_id" = 1773) ORDER BY "pages_deployments"."created_at" DESC, "pages_deployments"."id" DESC LIMIT 101 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/pagination/keyset/connection.rb:122:in `block in limited_nodes'*/

       SELECT COUNT(*) FROM "pages_deployments" WHERE "pages_deployments"."project_id" IN (SELECT "projects"."id" FROM "projects" WHERE "projects"."namespace_id" = 1773) /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/countable_connection_type.rb:20:in `count'*/

       SELECT "namespace_limits"."additional_purchased_storage_size", "namespace_limits"."additional_purchased_storage_ends_on", "namespace_limits"."namespace_id", "namespace_limits"."pre_enforcement_notification_at", "namespace_limits"."first_enforced_at", "namespace_limits"."last_enforced_at", "namespace_limits"."last_seat_all_used_seats_notification_at" FROM "namespace_limits" WHERE "namespace_limits"."namespace_id" = 1773 LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/ee/app/models/ee/namespace.rb:204:in `namespace_limit'*/

       SELECT SUM((("project_statistics"."repository_size" + "project_statistics"."lfs_objects_size") - "projects"."repository_size_limit")) FROM "projects" INNER JOIN "project_statistics" ON "project_statistics"."project_id" = "projects"."id" WHERE "projects"."namespace_id" IN (SELECT "namespaces"."id" FROM UNNEST(
         COALESCE(
           (SELECT ids FROM (SELECT "namespace_descendants"."self_and_descendant_group_ids" AS ids FROM "namespace_descendants" WHERE "namespace_descendants"."outdated_at" IS NULL AND "namespace_descendants"."namespace_id" = 1773) cached_query),
           (SELECT ids FROM (SELECT ARRAY_AGG("namespaces"."id") AS ids FROM (SELECT namespaces.traversal_ids[array_length(namespaces.traversal_ids, 1)] AS id FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1773}')) AND (traversal_ids < ('{1774}'))) namespaces) consistent_query))
       ) AS namespaces(id)
       ) AND "projects"."repository_size_limit" != 0 AND ("project_statistics"."repository_size" + "project_statistics"."lfs_objects_size") > "projects"."repository_size_limit" LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/ee/app/models/ee/namespace.rb:288:in `block in total_repository_size_excess'*/

       SELECT SUM(("project_statistics"."repository_size" + "project_statistics"."lfs_objects_size")) FROM "projects" INNER JOIN "project_statistics" ON "project_statistics"."project_id" = "projects"."id" WHERE "projects"."namespace_id" IN (SELECT "namespaces"."id" FROM UNNEST(
         COALESCE(
           (SELECT ids FROM (SELECT "namespace_descendants"."self_and_descendant_group_ids" AS ids FROM "namespace_descendants" WHERE "namespace_descendants"."outdated_at" IS NULL AND "namespace_descendants"."namespace_id" = 1773) cached_query),
           (SELECT ids FROM (SELECT ARRAY_AGG("namespaces"."id") AS ids FROM (SELECT namespaces.traversal_ids[array_length(namespaces.traversal_ids, 1)] AS id FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1773}')) AND (traversal_ids < ('{1774}'))) namespaces) consistent_query))
       ) AS namespaces(id)
       ) LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/ee/app/models/ee/namespace.rb:302:in `block in total_repository_size'*/

       SELECT COUNT(*) FROM "projects" INNER JOIN "project_statistics" ON "project_statistics"."project_id" = "projects"."id" WHERE "projects"."namespace_id" IN (SELECT "namespaces"."id" FROM UNNEST(
         COALESCE(
           (SELECT ids FROM (SELECT "namespace_descendants"."self_and_descendant_group_ids" AS ids FROM "namespace_descendants" WHERE "namespace_descendants"."outdated_at" IS NULL AND "namespace_descendants"."namespace_id" = 1773) cached_query),
           (SELECT ids FROM (SELECT ARRAY_AGG("namespaces"."id") AS ids FROM (SELECT namespaces.traversal_ids[array_length(namespaces.traversal_ids, 1)] AS id FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1773}')) AND (traversal_ids < ('{1774}'))) namespaces) consistent_query))
       ) AS namespaces(id)
       ) AND "projects"."repository_size_limit" != 0 AND ("project_statistics"."repository_size" + "project_statistics"."lfs_objects_size") > "projects"."repository_size_limit" /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/ee/app/models/ee/namespace.rb:294:in `block in repository_size_excess_project_count'*/

       SELECT "security_orchestration_policy_configurations"."id", "security_orchestration_policy_configurations"."project_id", "security_orchestration_policy_configurations"."security_policy_management_project_id", "security_orchestration_policy_configurations"."created_at", "security_orchestration_policy_configurations"."updated_at", "security_orchestration_policy_configurations"."configured_at", "security_orchestration_policy_configurations"."namespace_id" FROM "security_orchestration_policy_configurations" WHERE "security_orchestration_policy_configurations"."namespace_id" = 1773 LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/ee/app/models/ee/namespace.rb:173:in `security_policy_management_project'*/

       SELECT "timelogs".* FROM "timelogs" INNER JOIN "projects" ON "projects"."id" = "timelogs"."project_id" WHERE "projects"."namespace_id" IN (SELECT "namespaces"."id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1773}')) AND (traversal_ids < ('{1774}'))) AND (spent_at >= '2021-03-01 00:00:00') AND (spent_at <= '2021-03-30 23:59:59.999999') ORDER BY "timelogs"."spent_at" ASC NULLS LAST, "timelogs"."id" DESC LIMIT 101 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/pagination/keyset/connection.rb:122:in `block in limited_nodes'*/

       SELECT SUM("timelogs"."time_spent") FROM "timelogs" INNER JOIN "projects" ON "projects"."id" = "timelogs"."project_id" WHERE "projects"."namespace_id" IN (SELECT "namespaces"."id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1773}')) AND (traversal_ids < ('{1774}'))) AND (spent_at >= '2021-03-01 00:00:00') AND (spent_at <= '2021-03-30 23:59:59.999999') /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/time_tracking/timelog_connection_type.rb:20:in `total_spent_time'*/

       SELECT COUNT(*) FROM "timelogs" INNER JOIN "projects" ON "projects"."id" = "timelogs"."project_id" WHERE "projects"."namespace_id" IN (SELECT "namespaces"."id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1773}')) AND (traversal_ids < ('{1774}'))) AND (spent_at >= '2021-03-01 00:00:00') AND (spent_at <= '2021-03-30 23:59:59.999999') /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/countable_connection_type.rb:20:in `count'*/

       SELECT "saml_providers".* FROM "saml_providers" WHERE "saml_providers"."group_id" = 1774 LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/ee/app/models/ee/group.rb:402:in `block in root_saml_provider'*/

       SELECT "namespaces"."id", "namespaces"."name", "namespaces"."path", "namespaces"."owner_id", "namespaces"."created_at", "namespaces"."updated_at", "namespaces"."type", "namespaces"."description", "namespaces"."avatar", "namespaces"."membership_lock", "namespaces"."share_with_group_lock", "namespaces"."visibility_level", "namespaces"."request_access_enabled", "namespaces"."ldap_sync_status", "namespaces"."ldap_sync_error", "namespaces"."ldap_sync_last_update_at", "namespaces"."ldap_sync_last_successful_update_at", "namespaces"."ldap_sync_last_sync_at", "namespaces"."description_html", "namespaces"."lfs_enabled", "namespaces"."parent_id", "namespaces"."shared_runners_minutes_limit", "namespaces"."repository_size_limit", "namespaces"."require_two_factor_authentication", "namespaces"."two_factor_grace_period", "namespaces"."cached_markdown_version", "namespaces"."project_creation_level", "namespaces"."runners_token", "namespaces"."file_template_project_id", "namespaces"."saml_discovery_token", "namespaces"."runners_token_encrypted", "namespaces"."custom_project_templates_group_id", "namespaces"."auto_devops_enabled", "namespaces"."extra_shared_runners_minutes_limit", "namespaces"."last_ci_minutes_notification_at", "namespaces"."last_ci_minutes_usage_notification_level", "namespaces"."subgroup_creation_level", "namespaces"."max_pages_size", "namespaces"."max_artifacts_size", "namespaces"."mentions_disabled", "namespaces"."default_branch_protection", "namespaces"."max_personal_access_token_lifetime", "namespaces"."push_rule_id", "namespaces"."shared_runners_enabled", "namespaces"."allow_descendants_override_disabled_shared_runners", "namespaces"."traversal_ids", "namespaces"."organization_id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND "namespaces"."id" = 1774 LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/concerns/use_sql_function_for_primary_key_lookups.rb:12:in `_query_by_sql'*/

       SELECT "namespaces"."id", "namespaces"."name", "namespaces"."path", "namespaces"."owner_id", "namespaces"."created_at", "namespaces"."updated_at", "namespaces"."type", "namespaces"."description", "namespaces"."avatar", "namespaces"."membership_lock", "namespaces"."share_with_group_lock", "namespaces"."visibility_level", "namespaces"."request_access_enabled", "namespaces"."ldap_sync_status", "namespaces"."ldap_sync_error", "namespaces"."ldap_sync_last_update_at", "namespaces"."ldap_sync_last_successful_update_at", "namespaces"."ldap_sync_last_sync_at", "namespaces"."description_html", "namespaces"."lfs_enabled", "namespaces"."parent_id", "namespaces"."shared_runners_minutes_limit", "namespaces"."repository_size_limit", "namespaces"."require_two_factor_authentication", "namespaces"."two_factor_grace_period", "namespaces"."cached_markdown_version", "namespaces"."project_creation_level", "namespaces"."runners_token", "namespaces"."file_template_project_id", "namespaces"."saml_discovery_token", "namespaces"."runners_token_encrypted", "namespaces"."custom_project_templates_group_id", "namespaces"."auto_devops_enabled", "namespaces"."extra_shared_runners_minutes_limit", "namespaces"."last_ci_minutes_notification_at", "namespaces"."last_ci_minutes_usage_notification_level", "namespaces"."subgroup_creation_level", "namespaces"."max_pages_size", "namespaces"."max_artifacts_size", "namespaces"."mentions_disabled", "namespaces"."default_branch_protection", "namespaces"."max_personal_access_token_lifetime", "namespaces"."push_rule_id", "namespaces"."shared_runners_enabled", "namespaces"."allow_descendants_override_disabled_shared_runners", "namespaces"."traversal_ids", "namespaces"."organization_id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND "namespaces"."id" = 1774 LIMIT 1

       SELECT "namespaces"."id", "namespaces"."name", "namespaces"."path", "namespaces"."owner_id", "namespaces"."created_at", "namespaces"."updated_at", "namespaces"."type", "namespaces"."description", "namespaces"."avatar", "namespaces"."membership_lock", "namespaces"."share_with_group_lock", "namespaces"."visibility_level", "namespaces"."request_access_enabled", "namespaces"."ldap_sync_status", "namespaces"."ldap_sync_error", "namespaces"."ldap_sync_last_update_at", "namespaces"."ldap_sync_last_successful_update_at", "namespaces"."ldap_sync_last_sync_at", "namespaces"."description_html", "namespaces"."lfs_enabled", "namespaces"."parent_id", "namespaces"."shared_runners_minutes_limit", "namespaces"."repository_size_limit", "namespaces"."require_two_factor_authentication", "namespaces"."two_factor_grace_period", "namespaces"."cached_markdown_version", "namespaces"."project_creation_level", "namespaces"."runners_token", "namespaces"."file_template_project_id", "namespaces"."saml_discovery_token", "namespaces"."runners_token_encrypted", "namespaces"."custom_project_templates_group_id", "namespaces"."auto_devops_enabled", "namespaces"."extra_shared_runners_minutes_limit", "namespaces"."last_ci_minutes_notification_at", "namespaces"."last_ci_minutes_usage_notification_level", "namespaces"."subgroup_creation_level", "namespaces"."max_pages_size", "namespaces"."max_artifacts_size", "namespaces"."mentions_disabled", "namespaces"."default_branch_protection", "namespaces"."max_personal_access_token_lifetime", "namespaces"."push_rule_id", "namespaces"."shared_runners_enabled", "namespaces"."allow_descendants_override_disabled_shared_runners", "namespaces"."traversal_ids", "namespaces"."organization_id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND "namespaces"."id" = 1774 LIMIT 1

       SELECT "organizations".* FROM "organizations" WHERE "organizations"."id" = 1 LIMIT 1

       SELECT "custom_emoji".* FROM "custom_emoji" WHERE "custom_emoji"."namespace_id" = 1774 ORDER BY "custom_emoji"."id" DESC LIMIT 101 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/pagination/keyset/connection.rb:122:in `block in limited_nodes'*/

       SELECT COUNT(*) FROM "custom_emoji" WHERE "custom_emoji"."namespace_id" = 1774 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/countable_connection_type.rb:20:in `count'*/

       SELECT "namespace_settings"."created_at", "namespace_settings"."updated_at", "namespace_settings"."namespace_id", "namespace_settings"."prevent_forking_outside_group", "namespace_settings"."allow_mfa_for_subgroups", "namespace_settings"."default_branch_name", "namespace_settings"."repository_read_only", "namespace_settings"."resource_access_token_creation_allowed", "namespace_settings"."prevent_sharing_groups_outside_hierarchy", "namespace_settings"."new_user_signups_cap", "namespace_settings"."setup_for_company", "namespace_settings"."jobs_to_be_done", "namespace_settings"."runner_token_expiration_interval", "namespace_settings"."subgroup_runner_token_expiration_interval", "namespace_settings"."project_runner_token_expiration_interval", "namespace_settings"."show_diff_preview_in_email", "namespace_settings"."enabled_git_access_protocol", "namespace_settings"."unique_project_download_limit", "namespace_settings"."unique_project_download_limit_interval_in_seconds", "namespace_settings"."unique_project_download_limit_allowlist", "namespace_settings"."auto_ban_user_on_excessive_projects_download", "namespace_settings"."only_allow_merge_if_pipeline_succeeds", "namespace_settings"."allow_merge_on_skipped_pipeline", "namespace_settings"."only_allow_merge_if_all_discussions_are_resolved", "namespace_settings"."default_compliance_framework_id", "namespace_settings"."runner_registration_enabled", "namespace_settings"."allow_runner_registration_token", "namespace_settings"."unique_project_download_limit_alertlist", "namespace_settings"."emails_enabled", "namespace_settings"."experiment_features_enabled", "namespace_settings"."default_branch_protection_defaults", "namespace_settings"."service_access_tokens_expiration_enforced", "namespace_settings"."product_analytics_enabled", "namespace_settings"."allow_merge_without_pipeline", "namespace_settings"."enforce_ssh_certificates", "namespace_settings"."toggle_security_policy_custom_ci", "namespace_settings"."lock_toggle_security_policy_custom_ci", "namespace_settings"."math_rendering_limits_enabled", "namespace_settings"."lock_math_rendering_limits_enabled", "namespace_settings"."duo_features_enabled", "namespace_settings"."lock_duo_features_enabled", "namespace_settings"."disable_personal_access_tokens", "namespace_settings"."enable_auto_assign_gitlab_duo_pro_seats", "namespace_settings"."early_access_program_participant", "namespace_settings"."remove_dormant_members", "namespace_settings"."remove_dormant_members_period" FROM "namespace_settings" WHERE "namespace_settings"."namespace_id" = 1774 LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/namespace.rb:471:in `emails_enabled?'*/

       SELECT "group_crm_settings".* FROM "group_crm_settings" WHERE "group_crm_settings"."group_id" = 1774 LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/group.rb:904:in `crm_enabled?'*/

       SELECT "issues"."id", "issues"."title", "issues"."author_id", "issues"."project_id", "issues"."created_at", "issues"."updated_at", "issues"."description", "issues"."milestone_id", "issues"."iid", "issues"."updated_by_id", "issues"."weight", "issues"."confidential", "issues"."due_date", "issues"."moved_to_id", "issues"."lock_version", "issues"."title_html", "issues"."description_html", "issues"."time_estimate", "issues"."relative_position", "issues"."service_desk_reply_to", "issues"."cached_markdown_version", "issues"."last_edited_at", "issues"."last_edited_by_id", "issues"."discussion_locked", "issues"."closed_at", "issues"."closed_by_id", "issues"."state_id", "issues"."duplicated_to_id", "issues"."promoted_to_epic_id", "issues"."health_status", "issues"."external_key", "issues"."sprint_id", "issues"."blocking_issues_count", "issues"."upvotes_count", "issues"."work_item_type_id", "issues"."namespace_id", "issues"."start_date", "issues"."imported_from" FROM "issues" INNER JOIN "projects" ON "projects"."id" = "issues"."project_id" LEFT JOIN project_features ON projects.id = project_features.project_id WHERE "projects"."namespace_id" = 1774 AND (EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1401 AND (project_authorizations.project_id = projects.id)) OR projects.visibility_level IN (0,10,20)) AND ("project_features"."issues_access_level" > 0 OR "project_features"."issues_access_level" IS NULL) AND ("issues"."project_id" IS NULL OR "projects"."archived" = FALSE) ORDER BY "issues"."created_at" DESC, "issues"."id" DESC LIMIT 101 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/pagination/keyset/connection.rb:122:in `block in limited_nodes'*/

       SELECT SUM("issues"."weight") FROM "issues" INNER JOIN "projects" ON "projects"."id" = "issues"."project_id" LEFT JOIN project_features ON projects.id = project_features.project_id WHERE "projects"."namespace_id" = 1774 AND (EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1401 AND (project_authorizations.project_id = projects.id)) OR projects.visibility_level IN (0,10,20)) AND ("project_features"."issues_access_level" > 0 OR "project_features"."issues_access_level" IS NULL) AND ("issues"."project_id" IS NULL OR "projects"."archived" = FALSE) /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/ee/app/graphql/ee/types/issue_connection_type.rb:19:in `weight'*/

       SELECT COUNT(*) FROM "issues" INNER JOIN "projects" ON "projects"."id" = "issues"."project_id" LEFT JOIN project_features ON projects.id = project_features.project_id WHERE "projects"."namespace_id" = 1774 AND (EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1401 AND (project_authorizations.project_id = projects.id)) OR projects.visibility_level IN (0,10,20)) AND ("project_features"."issues_access_level" > 0 OR "project_features"."issues_access_level" IS NULL) AND ("issues"."project_id" IS NULL OR "projects"."archived" = FALSE) /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/countable_connection_type.rb:20:in `count'*/

       SELECT "merge_requests"."id", "merge_requests"."target_branch", "merge_requests"."source_branch", "merge_requests"."source_project_id", "merge_requests"."author_id", "merge_requests"."assignee_id", "merge_requests"."title", "merge_requests"."created_at", "merge_requests"."updated_at", "merge_requests"."milestone_id", "merge_requests"."merge_status", "merge_requests"."target_project_id", "merge_requests"."iid", "merge_requests"."description", "merge_requests"."updated_by_id", "merge_requests"."merge_error", "merge_requests"."merge_params", "merge_requests"."merge_when_pipeline_succeeds", "merge_requests"."merge_user_id", "merge_requests"."merge_commit_sha", "merge_requests"."approvals_before_merge", "merge_requests"."rebase_commit_sha", "merge_requests"."in_progress_merge_commit_sha", "merge_requests"."lock_version", "merge_requests"."title_html", "merge_requests"."description_html", "merge_requests"."time_estimate", "merge_requests"."squash", "merge_requests"."cached_markdown_version", "merge_requests"."last_edited_at", "merge_requests"."last_edited_by_id", "merge_requests"."head_pipeline_id", "merge_requests"."merge_jid", "merge_requests"."discussion_locked", "merge_requests"."latest_merge_request_diff_id", "merge_requests"."allow_maintainer_to_push", "merge_requests"."state_id", "merge_requests"."rebase_jid", "merge_requests"."squash_commit_sha", "merge_requests"."sprint_id", "merge_requests"."merge_ref_sha", "merge_requests"."draft", "merge_requests"."prepared_at", "merge_requests"."merged_commit_sha", "merge_requests"."override_requested_changes", "merge_requests"."imported_from" FROM "merge_requests" INNER JOIN "projects" ON "projects"."id" = "merge_requests"."target_project_id" LEFT JOIN project_features ON projects.id = project_features.project_id WHERE "projects"."namespace_id" = 1774 AND (EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1401 AND (project_authorizations.project_id = projects.id)) OR projects.visibility_level IN (0,10,20)) AND ("project_features"."merge_requests_access_level" > 0 OR "project_features"."merge_requests_access_level" IS NULL) AND "projects"."archived" = FALSE ORDER BY "merge_requests"."created_at" DESC, "merge_requests"."id" DESC LIMIT 101 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/pagination/keyset/connection.rb:122:in `block in limited_nodes'*/

       SELECT EXTRACT(epoch FROM SUM(AGE(merge_request_metrics.merged_at, merge_request_metrics.created_at))) FROM "merge_requests" INNER JOIN "projects" ON "projects"."id" = "merge_requests"."target_project_id" INNER JOIN "merge_request_metrics" ON "merge_request_metrics"."merge_request_id" = "merge_requests"."id" LEFT JOIN project_features ON projects.id = project_features.project_id WHERE "projects"."namespace_id" = 1774 AND (EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1401 AND (project_authorizations.project_id = projects.id)) OR projects.visibility_level IN (0,10,20)) AND ("project_features"."merge_requests_access_level" > 0 OR "project_features"."merge_requests_access_level" IS NULL) AND "projects"."archived" = FALSE AND "merge_requests"."target_project_id" = "merge_request_metrics"."target_project_id" AND "merge_request_metrics"."merged_at" > "merge_request_metrics"."created_at" LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/merge_request.rb:505:in `total_time_to_merge'*/

       SELECT COUNT(*) FROM "merge_requests" INNER JOIN "projects" ON "projects"."id" = "merge_requests"."target_project_id" LEFT JOIN project_features ON projects.id = project_features.project_id WHERE "projects"."namespace_id" = 1774 AND (EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1401 AND (project_authorizations.project_id = projects.id)) OR projects.visibility_level IN (0,10,20)) AND ("project_features"."merge_requests_access_level" > 0 OR "project_features"."merge_requests_access_level" IS NULL) AND "projects"."archived" = FALSE /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/countable_connection_type.rb:20:in `count'*/

       SELECT "ci_group_variables"."environment_scope" FROM "ci_group_variables" WHERE "ci_group_variables"."group_id" = 1774 GROUP BY "ci_group_variables"."environment_scope" ORDER BY "ci_group_variables"."environment_scope" ASC LIMIT 100 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:ci,line:/app/models/ci/group_variable.rb:38:in `block in <class:GroupVariable>'*/

       SELECT "milestones".* FROM ((SELECT "milestones".* FROM "milestones" WHERE 1=0)
       UNION ALL
       (SELECT "milestones".* FROM "milestones" WHERE "milestones"."group_id" = 1774)) milestones ORDER BY "milestones"."due_date" ASC NULLS LAST, "milestones"."id" DESC LIMIT 101 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/pagination/keyset/connection.rb:122:in `block in limited_nodes'*/

       SELECT "boards".* FROM "boards" WHERE "boards"."group_id" = 1774 AND "boards"."id" IN (SELECT "boards"."id" FROM "boards" WHERE "boards"."group_id" = 1774 ORDER BY LOWER("boards"."name") ASC, "boards"."id" ASC LIMIT 1) ORDER BY "boards"."id" DESC LIMIT 2001 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/pagination/keyset/connection.rb:122:in `block in limited_nodes'*/

       SELECT "board_group_recent_visits".* FROM "board_group_recent_visits" WHERE "board_group_recent_visits"."user_id" = 1401 AND "board_group_recent_visits"."group_id" = 1774 ORDER BY "board_group_recent_visits"."updated_at" DESC LIMIT 4 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/concerns/board_recent_visit.rb:21:in `latest'*/

       SELECT "members".* FROM (SELECT DISTINCT ON (user_id, invite_email) * FROM "members" WHERE "members"."type" = 'GroupMember' AND "members"."source_type" = 'Namespace' AND "members"."requested_at" IS NULL AND "members"."source_id" IN (SELECT "namespaces"."id" FROM ((SELECT "namespaces"."id", "namespaces"."name", "namespaces"."path", "namespaces"."owner_id", "namespaces"."created_at", "namespaces"."updated_at", "namespaces"."type", "namespaces"."description", "namespaces"."avatar", "namespaces"."membership_lock", "namespaces"."share_with_group_lock", "namespaces"."visibility_level", "namespaces"."request_access_enabled", "namespaces"."ldap_sync_status", "namespaces"."ldap_sync_error", "namespaces"."ldap_sync_last_update_at", "namespaces"."ldap_sync_last_successful_update_at", "namespaces"."ldap_sync_last_sync_at", "namespaces"."description_html", "namespaces"."lfs_enabled", "namespaces"."parent_id", "namespaces"."shared_runners_minutes_limit", "namespaces"."repository_size_limit", "namespaces"."require_two_factor_authentication", "namespaces"."two_factor_grace_period", "namespaces"."cached_markdown_version", "namespaces"."project_creation_level", "namespaces"."runners_token", "namespaces"."file_template_project_id", "namespaces"."saml_discovery_token", "namespaces"."runners_token_encrypted", "namespaces"."custom_project_templates_group_id", "namespaces"."auto_devops_enabled", "namespaces"."extra_shared_runners_minutes_limit", "namespaces"."last_ci_minutes_notification_at", "namespaces"."last_ci_minutes_usage_notification_level", "namespaces"."subgroup_creation_level", "namespaces"."max_pages_size", "namespaces"."max_artifacts_size", "namespaces"."mentions_disabled", "namespaces"."default_branch_protection", "namespaces"."max_personal_access_token_lifetime", "namespaces"."push_rule_id", "namespaces"."shared_runners_enabled", "namespaces"."allow_descendants_override_disabled_shared_runners", "namespaces"."traversal_ids", "namespaces"."organization_id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND "namespaces"."id" = 1774)) namespaces WHERE "namespaces"."type" = 'Group') AND (members.access_level > 5) ORDER BY user_id, invite_email,
       CASE WHEN source_id = 1774 and source_type = 'Namespace'
       THEN access_level + 1 ELSE access_level END DESC,
       expires_at DESC, created_at ASC
       ) members WHERE "members"."type" = 'GroupMember' ORDER BY "members"."id" DESC LIMIT 101 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/pagination/keyset/connection.rb:122:in `block in limited_nodes'*/

       SELECT "namespaces"."id", "namespaces"."name", "namespaces"."path", "namespaces"."owner_id", "namespaces"."created_at", "namespaces"."updated_at", "namespaces"."type", "namespaces"."description", "namespaces"."avatar", "namespaces"."membership_lock", "namespaces"."share_with_group_lock", "namespaces"."visibility_level", "namespaces"."request_access_enabled", "namespaces"."ldap_sync_status", "namespaces"."ldap_sync_error", "namespaces"."ldap_sync_last_update_at", "namespaces"."ldap_sync_last_successful_update_at", "namespaces"."ldap_sync_last_sync_at", "namespaces"."description_html", "namespaces"."lfs_enabled", "namespaces"."parent_id", "namespaces"."shared_runners_minutes_limit", "namespaces"."repository_size_limit", "namespaces"."require_two_factor_authentication", "namespaces"."two_factor_grace_period", "namespaces"."cached_markdown_version", "namespaces"."project_creation_level", "namespaces"."runners_token", "namespaces"."file_template_project_id", "namespaces"."saml_discovery_token", "namespaces"."runners_token_encrypted", "namespaces"."custom_project_templates_group_id", "namespaces"."auto_devops_enabled", "namespaces"."extra_shared_runners_minutes_limit", "namespaces"."last_ci_minutes_notification_at", "namespaces"."last_ci_minutes_usage_notification_level", "namespaces"."subgroup_creation_level", "namespaces"."max_pages_size", "namespaces"."max_artifacts_size", "namespaces"."mentions_disabled", "namespaces"."default_branch_protection", "namespaces"."max_personal_access_token_lifetime", "namespaces"."push_rule_id", "namespaces"."shared_runners_enabled", "namespaces"."allow_descendants_override_disabled_shared_runners", "namespaces"."traversal_ids", "namespaces"."organization_id" FROM find_namespaces_by_id(1774) AS namespaces WHERE ("namespaces"."id" IS NOT NULL) LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/concerns/use_sql_function_for_primary_key_lookups.rb:12:in `_query_by_sql'*/

       SELECT "container_repositories"."id", "container_repositories"."project_id", "container_repositories"."name", "container_repositories"."created_at", "container_repositories"."updated_at", "container_repositories"."status", "container_repositories"."expiration_policy_started_at", "container_repositories"."expiration_policy_cleanup_status", "container_repositories"."expiration_policy_completed_at", "container_repositories"."last_cleanup_deleted_tags_count", "container_repositories"."delete_started_at", "container_repositories"."status_updated_at" FROM "container_repositories" INNER JOIN (SELECT "projects"."id" FROM "projects" LEFT JOIN project_features ON projects.id = project_features.project_id WHERE "projects"."namespace_id" IN (SELECT "namespaces"."id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1774}')) AND (traversal_ids < ('{1775}'))) AND ("project_features"."container_registry_access_level" > 0 OR "project_features"."container_registry_access_level" IS NULL)) projects on projects.id=container_repositories.project_id ORDER BY "container_repositories"."created_at" DESC, "container_repositories"."id" DESC LIMIT 101 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/pagination/keyset/connection.rb:122:in `block in limited_nodes'*/

       SELECT COUNT(*) FROM "container_repositories" INNER JOIN "projects" ON "container_repositories"."project_id" = "projects"."id" WHERE "projects"."namespace_id" = 1774 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/group_type.rb:357:in `container_repositories_count'*/

       SELECT "packages_packages".* FROM "packages_packages" WHERE "packages_packages"."project_id" IN (SELECT "projects"."id" FROM "projects" LEFT JOIN project_features ON projects.id = project_features.project_id WHERE "projects"."namespace_id" IN (SELECT "namespaces"."id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1774}')) AND (traversal_ids < ('{1775}'))) AND (EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1401 AND (project_authorizations.project_id = projects.id)) OR projects.visibility_level IN (0,10,20)) AND ("project_features"."repository_access_level" > 0 OR "project_features"."repository_access_level" IS NULL)) AND "packages_packages"."version" IS NOT NULL AND "packages_packages"."package_type" != 12 AND "packages_packages"."status" IN (0, 3) ORDER BY "packages_packages"."created_at" DESC, "packages_packages"."id" DESC LIMIT 101 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/pagination/keyset/connection.rb:122:in `block in limited_nodes'*/

       SELECT COUNT(*) FROM "packages_packages" WHERE "packages_packages"."project_id" IN (SELECT "projects"."id" FROM "projects" LEFT JOIN project_features ON projects.id = project_features.project_id WHERE "projects"."namespace_id" IN (SELECT "namespaces"."id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1774}')) AND (traversal_ids < ('{1775}'))) AND (EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1401 AND (project_authorizations.project_id = projects.id)) OR projects.visibility_level IN (0,10,20)) AND ("project_features"."repository_access_level" > 0 OR "project_features"."repository_access_level" IS NULL)) AND "packages_packages"."version" IS NOT NULL AND "packages_packages"."package_type" != 12 AND "packages_packages"."status" IN (0, 3) /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/countable_connection_type.rb:20:in `count'*/

       SELECT "dependency_proxy_group_settings".* FROM "dependency_proxy_group_settings" WHERE "dependency_proxy_group_settings"."group_id" = 1774 LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/group.rb:896:in `dependency_proxy_setting'*/

       SELECT "dependency_proxy_manifests".* FROM "dependency_proxy_manifests" WHERE "dependency_proxy_manifests"."group_id" = 1774 ORDER BY "dependency_proxy_manifests"."id" DESC LIMIT 101 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/pagination/keyset/connection.rb:122:in `block in limited_nodes'*/

       SELECT "dependency_proxy_blobs".* FROM "dependency_proxy_blobs" WHERE "dependency_proxy_blobs"."group_id" = 1774 ORDER BY "dependency_proxy_blobs"."id" DESC LIMIT 101 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/pagination/keyset/connection.rb:122:in `block in limited_nodes'*/

       SELECT COUNT(*) FROM "dependency_proxy_manifests" WHERE "dependency_proxy_manifests"."group_id" = 1774 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/group_type.rb:365:in `dependency_proxy_image_count'*/

       SELECT COUNT(*) FROM "dependency_proxy_blobs" WHERE "dependency_proxy_blobs"."group_id" = 1774 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/group_type.rb:369:in `dependency_proxy_blob_count'*/

       SELECT SUM("dependency_proxy_manifests"."size") FROM "dependency_proxy_manifests" WHERE "dependency_proxy_manifests"."group_id" = 1774 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/group_type.rb:383:in `dependency_proxy_total_size_bytes'*/

       SELECT SUM("dependency_proxy_blobs"."size") FROM "dependency_proxy_blobs" WHERE "dependency_proxy_blobs"."group_id" = 1774 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/group_type.rb:383:in `dependency_proxy_total_size_bytes'*/

       SELECT SUM("dependency_proxy_manifests"."size") FROM "dependency_proxy_manifests" WHERE "dependency_proxy_manifests"."group_id" = 1774

       SELECT SUM("dependency_proxy_blobs"."size") FROM "dependency_proxy_blobs" WHERE "dependency_proxy_blobs"."group_id" = 1774

       SELECT SUM("dependency_proxy_manifests"."size") FROM "dependency_proxy_manifests" WHERE "dependency_proxy_manifests"."group_id" = 1774

       SELECT SUM("dependency_proxy_blobs"."size") FROM "dependency_proxy_blobs" WHERE "dependency_proxy_blobs"."group_id" = 1774

       SELECT "dependency_proxy_image_ttl_group_policies".* FROM "dependency_proxy_image_ttl_group_policies" WHERE "dependency_proxy_image_ttl_group_policies"."group_id" = 1774 LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/group.rb:892:in `dependency_proxy_image_ttl_policy'*/

       SELECT "namespaces"."id", "namespaces"."name", "namespaces"."path", "namespaces"."owner_id", "namespaces"."created_at", "namespaces"."updated_at", "namespaces"."type", "namespaces"."description", "namespaces"."avatar", "namespaces"."membership_lock", "namespaces"."share_with_group_lock", "namespaces"."visibility_level", "namespaces"."request_access_enabled", "namespaces"."ldap_sync_status", "namespaces"."ldap_sync_error", "namespaces"."ldap_sync_last_update_at", "namespaces"."ldap_sync_last_successful_update_at", "namespaces"."ldap_sync_last_sync_at", "namespaces"."description_html", "namespaces"."lfs_enabled", "namespaces"."parent_id", "namespaces"."shared_runners_minutes_limit", "namespaces"."repository_size_limit", "namespaces"."require_two_factor_authentication", "namespaces"."two_factor_grace_period", "namespaces"."cached_markdown_version", "namespaces"."project_creation_level", "namespaces"."runners_token", "namespaces"."file_template_project_id", "namespaces"."saml_discovery_token", "namespaces"."runners_token_encrypted", "namespaces"."custom_project_templates_group_id", "namespaces"."auto_devops_enabled", "namespaces"."extra_shared_runners_minutes_limit", "namespaces"."last_ci_minutes_notification_at", "namespaces"."last_ci_minutes_usage_notification_level", "namespaces"."subgroup_creation_level", "namespaces"."max_pages_size", "namespaces"."max_artifacts_size", "namespaces"."mentions_disabled", "namespaces"."default_branch_protection", "namespaces"."max_personal_access_token_lifetime", "namespaces"."push_rule_id", "namespaces"."shared_runners_enabled", "namespaces"."allow_descendants_override_disabled_shared_runners", "namespaces"."traversal_ids", "namespaces"."organization_id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND "namespaces"."id" IN (SELECT "namespaces"."id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1774}')) AND (traversal_ids < ('{1775}')) AND "namespaces"."id" != 1774) /* allow_cross_joins_across_databases */ ORDER BY "namespaces"."name" ASC, "namespaces"."id" DESC LIMIT 101 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/concerns/use_sql_function_for_primary_key_lookups.rb:12:in `_query_by_sql'*/

       SELECT "ci_group_variables".* FROM "ci_group_variables" WHERE "ci_group_variables"."group_id" = 1774 ORDER BY "ci_group_variables"."id" DESC LIMIT 101 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:ci,line:/lib/gitlab/graphql/pagination/keyset/connection.rb:122:in `block in limited_nodes'*/

       SELECT "customer_relations_organizations".* FROM "customer_relations_organizations" WHERE "customer_relations_organizations"."group_id" = 1774 ORDER BY "customer_relations_organizations"."name" ASC NULLS LAST, "customer_relations_organizations"."id" DESC LIMIT 101 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/pagination/keyset/connection.rb:122:in `block in limited_nodes'*/

       SELECT COUNT(*) AS "count_all", "customer_relations_organizations"."state" AS "customer_relations_organizations_state" FROM "customer_relations_organizations" WHERE "customer_relations_organizations"."group_id" = 1774 GROUP BY "customer_relations_organizations"."state" /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/customer_relations/organization.rb:82:in `counts_by_state'*/

       SELECT "customer_relations_contacts".* FROM "customer_relations_contacts" WHERE "customer_relations_contacts"."group_id" = 1774 ORDER BY "customer_relations_contacts"."last_name" ASC NULLS LAST, "customer_relations_contacts"."id" DESC LIMIT 101 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/pagination/keyset/connection.rb:122:in `block in limited_nodes'*/

       SELECT COUNT(*) AS "count_all", "customer_relations_contacts"."state" AS "customer_relations_contacts_state" FROM "customer_relations_contacts" WHERE "customer_relations_contacts"."group_id" = 1774 GROUP BY "customer_relations_contacts"."state" /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/customer_relations/contact.rb:148:in `counts_by_state'*/

       SELECT "work_item_types".* FROM "work_item_types" WHERE "work_item_types"."namespace_id" IS NULL ORDER BY LOWER("work_item_types"."name") ASC, "work_item_types"."id" DESC LIMIT 101

       SELECT * FROM (WITH RECURSIVE "array_cte" AS MATERIALIZED (SELECT "projects"."id" FROM "projects" WHERE "projects"."namespace_id" IN (SELECT "namespaces"."id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1774}')) AND (traversal_ids < ('{1775}')))), "recursive_keyset_cte" AS ((SELECT NULL::releases AS records, array_cte_id_array, releases_released_at_array, releases_id_array, 0::bigint AS count FROM (SELECT ARRAY_AGG("array_cte"."id") AS array_cte_id_array, ARRAY_AGG("releases"."released_at") AS releases_released_at_array, ARRAY_AGG("releases"."id") AS releases_id_array FROM (SELECT "array_cte"."id" FROM array_cte) array_cte LEFT JOIN LATERAL (SELECT "releases"."released_at" AS released_at, "releases"."id" AS id FROM "releases" WHERE "releases"."project_id" = "array_cte"."id" ORDER BY "releases"."released_at" DESC, "releases"."id" DESC LIMIT 1) releases ON TRUE WHERE "releases"."released_at" IS NOT NULL AND "releases"."id" IS NOT NULL) array_scope_lateral_query LIMIT 1)
       UNION ALL
       (SELECT (SELECT releases FROM "releases" WHERE "releases"."id" = recursive_keyset_cte.releases_id_array[position] LIMIT 1), array_cte_id_array, recursive_keyset_cte.releases_released_at_array[:position_query.position-1]||next_cursor_values.released_at||recursive_keyset_cte.releases_released_at_array[position_query.position+1:], recursive_keyset_cte.releases_id_array[:position_query.position-1]||next_cursor_values.id||recursive_keyset_cte.releases_id_array[position_query.position+1:], recursive_keyset_cte.count + 1 FROM recursive_keyset_cte,
       LATERAL (SELECT released_at, id, position FROM UNNEST(releases_released_at_array, releases_id_array) WITH ORDINALITY AS u(released_at, id, position) WHERE released_at IS NOT NULL AND id IS NOT NULL ORDER BY 1 DESC, 2 DESC LIMIT 1) AS position_query,
       LATERAL (SELECT "record"."released_at", "record"."id" FROM (VALUES (NULL, NULL)) AS nulls LEFT JOIN (SELECT "releases"."released_at" AS released_at, "releases"."id" AS id FROM "releases" WHERE "releases"."project_id" = recursive_keyset_cte.array_cte_id_array[position] AND (("releases"."released_at", "releases"."id") < (recursive_keyset_cte.releases_released_at_array[position], recursive_keyset_cte.releases_id_array[position])) ORDER BY "releases"."released_at" DESC, "releases"."id" DESC LIMIT 1) record ON TRUE LIMIT 1) AS next_cursor_values
       )) SELECT (records).* FROM "recursive_keyset_cte" AS "releases" WHERE (count <> 0)) releases LIMIT 100 OFFSET 0 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/connection_redaction.rb:23:in `block in nodes'*/

       SELECT COUNT(*) FROM (WITH RECURSIVE "array_cte" AS MATERIALIZED (SELECT "projects"."id" FROM "projects" WHERE "projects"."namespace_id" IN (SELECT "namespaces"."id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1774}')) AND (traversal_ids < ('{1775}')))), "recursive_keyset_cte" AS ((SELECT NULL::releases AS records, array_cte_id_array, releases_released_at_array, releases_id_array, 0::bigint AS count FROM (SELECT ARRAY_AGG("array_cte"."id") AS array_cte_id_array, ARRAY_AGG("releases"."released_at") AS releases_released_at_array, ARRAY_AGG("releases"."id") AS releases_id_array FROM (SELECT "array_cte"."id" FROM array_cte) array_cte LEFT JOIN LATERAL (SELECT "releases"."released_at" AS released_at, "releases"."id" AS id FROM "releases" WHERE "releases"."project_id" = "array_cte"."id" ORDER BY "releases"."released_at" DESC, "releases"."id" DESC LIMIT 1) releases ON TRUE WHERE "releases"."released_at" IS NOT NULL AND "releases"."id" IS NOT NULL) array_scope_lateral_query LIMIT 1)
       UNION ALL
       (SELECT (SELECT releases FROM "releases" WHERE "releases"."id" = recursive_keyset_cte.releases_id_array[position] LIMIT 1), array_cte_id_array, recursive_keyset_cte.releases_released_at_array[:position_query.position-1]||next_cursor_values.released_at||recursive_keyset_cte.releases_released_at_array[position_query.position+1:], recursive_keyset_cte.releases_id_array[:position_query.position-1]||next_cursor_values.id||recursive_keyset_cte.releases_id_array[position_query.position+1:], recursive_keyset_cte.count + 1 FROM recursive_keyset_cte,
       LATERAL (SELECT released_at, id, position FROM UNNEST(releases_released_at_array, releases_id_array) WITH ORDINALITY AS u(released_at, id, position) WHERE released_at IS NOT NULL AND id IS NOT NULL ORDER BY 1 DESC, 2 DESC LIMIT 1) AS position_query,
       LATERAL (SELECT "record"."released_at", "record"."id" FROM (VALUES (NULL, NULL)) AS nulls LEFT JOIN (SELECT "releases"."released_at" AS released_at, "releases"."id" AS id FROM "releases" WHERE "releases"."project_id" = recursive_keyset_cte.array_cte_id_array[position] AND (("releases"."released_at", "releases"."id") < (recursive_keyset_cte.releases_released_at_array[position], recursive_keyset_cte.releases_id_array[position])) ORDER BY "releases"."released_at" DESC, "releases"."id" DESC LIMIT 1) record ON TRUE LIMIT 1) AS next_cursor_values
       )) SELECT (records).* FROM "recursive_keyset_cte" AS "releases" WHERE (count <> 0)) releases /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/countable_connection_type.rb:20:in `count'*/

       SELECT "work_item_widget_definitions".* FROM "work_item_widget_definitions" WHERE "work_item_widget_definitions"."namespace_id" IS NULL AND "work_item_widget_definitions"."disabled" = FALSE

       SELECT "issues"."id", "issues"."title", "issues"."author_id", "issues"."project_id", "issues"."created_at", "issues"."updated_at", "issues"."description", "issues"."milestone_id", "issues"."iid", "issues"."updated_by_id", "issues"."weight", "issues"."confidential", "issues"."due_date", "issues"."moved_to_id", "issues"."lock_version", "issues"."title_html", "issues"."description_html", "issues"."time_estimate", "issues"."relative_position", "issues"."service_desk_reply_to", "issues"."cached_markdown_version", "issues"."last_edited_at", "issues"."last_edited_by_id", "issues"."discussion_locked", "issues"."closed_at", "issues"."closed_by_id", "issues"."state_id", "issues"."duplicated_to_id", "issues"."promoted_to_epic_id", "issues"."health_status", "issues"."external_key", "issues"."sprint_id", "issues"."blocking_issues_count", "issues"."upvotes_count", "issues"."work_item_type_id", "issues"."namespace_id", "issues"."start_date", "issues"."imported_from" FROM "issues" WHERE "issues"."namespace_id" IN (SELECT "namespaces"."id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND "namespaces"."id" = 1774) ORDER BY "issues"."created_at" DESC, "issues"."id" DESC LIMIT 101 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/pagination/keyset/connection.rb:122:in `block in limited_nodes'*/

       SELECT "work_item_widget_definitions".* FROM "work_item_widget_definitions" WHERE "work_item_widget_definitions"."namespace_id" IS NULL AND "work_item_widget_definitions"."disabled" = FALSE

       SELECT COUNT(*) AS "count_all", "issues"."state_id" AS "issues_state_id" FROM "issues" WHERE "issues"."namespace_id" IN (SELECT "namespaces"."id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND "namespaces"."id" = 1774) GROUP BY "issues"."state_id" /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/finders/issuable_finder.rb:184:in `count_by_state'*/

       SELECT "users".* FROM "users" WHERE "users"."id" IN (WITH "group_hierarchy" AS MATERIALIZED (SELECT "namespaces"."id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND ((traversal_ids >= ('{1774}')) AND (traversal_ids < ('{1775}')) OR 1=0)), "descendant_projects" AS MATERIALIZED (SELECT "projects"."id" FROM "projects" WHERE "projects"."namespace_id" IN (SELECT "namespaces"."id" FROM UNNEST(
         COALESCE(
           (SELECT ids FROM (SELECT "namespace_descendants"."self_and_descendant_group_ids" AS ids FROM "namespace_descendants" WHERE "namespace_descendants"."outdated_at" IS NULL AND "namespace_descendants"."namespace_id" = 1774) cached_query),
           (SELECT ids FROM (SELECT ARRAY_AGG("namespaces"."id") AS ids FROM (SELECT namespaces.traversal_ids[array_length(namespaces.traversal_ids, 1)] AS id FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1774}')) AND (traversal_ids < ('{1775}'))) namespaces) consistent_query))
       ) AS namespaces(id)
       )) SELECT "members"."user_id" FROM ((SELECT "members"."user_id" FROM "members" WHERE "members"."type" = 'GroupMember' AND "members"."source_type" = 'Namespace' AND "members"."source_id" IN (SELECT "id" FROM "group_hierarchy") AND "members"."state" = 0 AND "members"."requested_at" IS NULL AND "members"."invite_token" IS NULL AND (members.access_level > 5))
       UNION ALL
       (SELECT "members"."user_id" FROM "members" WHERE "members"."type" = 'GroupMember' AND "members"."source_type" = 'Namespace' AND "members"."source_id" IN (SELECT "group_group_links"."shared_with_group_id" FROM "group_group_links" WHERE "group_group_links"."shared_group_id" IN (SELECT "id" FROM "group_hierarchy")) AND "members"."state" = 0 AND "members"."requested_at" IS NULL AND "members"."invite_token" IS NULL AND (members.access_level > 5))
       UNION ALL
       (SELECT "members"."user_id" FROM "members" WHERE "members"."type" IN ('ProjectMember', 'ProjectNamespaceMember') AND "members"."source_type" = 'Project' AND "members"."source_id" IN (SELECT "id" FROM "descendant_projects") AND "members"."state" = 0 AND "members"."requested_at" IS NULL AND "members"."invite_token" IS NULL AND (members.access_level > 5))
       UNION ALL
       (SELECT "members"."user_id" FROM "members" WHERE "members"."type" = 'GroupMember' AND "members"."source_type" = 'Namespace' AND "members"."source_id" IN (SELECT "project_group_links"."group_id" FROM "project_group_links" WHERE "project_group_links"."project_id" IN (SELECT "id" FROM "descendant_projects")) AND "members"."state" = 0 AND "members"."requested_at" IS NULL AND "members"."invite_token" IS NULL AND (members.access_level > 5))) members) AND "users"."state" = 'active' AND "users"."user_type" IN (0, 6, 4, 13) /* allow_cross_joins_across_databases */ ORDER BY "users"."name" ASC LIMIT 20 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/concerns/use_sql_function_for_primary_key_lookups.rb:12:in `_query_by_sql'*/

       SELECT "user_statuses".* FROM "user_statuses" WHERE "user_statuses"."user_id" = 1400 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/finders/autocomplete/users_finder.rb:106:in `preload_associations'*/

       SELECT "user_details"."user_id", "user_details"."job_title", "user_details"."bio", "user_details"."webauthn_xid", "user_details"."provisioned_by_group_id", "user_details"."pronouns", "user_details"."pronunciation", "user_details"."registration_objective", "user_details"."phone", "user_details"."linkedin", "user_details"."twitter", "user_details"."skype", "user_details"."website_url", "user_details"."location", "user_details"."organization", "user_details"."password_last_changed_at", "user_details"."discord", "user_details"."enterprise_group_id", "user_details"."enterprise_group_associated_at", "user_details"."email_reset_offered_at", "user_details"."mastodon", "user_details"."project_authorizations_recalculated_at", "user_details"."onboarding_status" FROM "user_details" WHERE "user_details"."user_id" = 1400 LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/user.rb:2282:in `user_detail'*/

       SELECT COUNT(*) FROM "projects" WHERE (EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1401 AND (project_authorizations.project_id = projects.id)) OR projects.visibility_level IN (0,10,20)) AND "projects"."pending_delete" = FALSE AND "projects"."id" IN (SELECT "projects"."id" FROM "projects" INNER JOIN "users_star_projects" ON "projects"."id" = "users_star_projects"."project_id" WHERE "users_star_projects"."user_id" = 1400) AND "projects"."hidden" = FALSE /* allow_cross_joins_across_databases */ /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/countable_connection_type.rb:20:in `count'*/

       SELECT "namespaces"."id", "namespaces"."name", "namespaces"."path", "namespaces"."owner_id", "namespaces"."created_at", "namespaces"."updated_at", "namespaces"."type", "namespaces"."description", "namespaces"."avatar", "namespaces"."membership_lock", "namespaces"."share_with_group_lock", "namespaces"."visibility_level", "namespaces"."request_access_enabled", "namespaces"."ldap_sync_status", "namespaces"."ldap_sync_error", "namespaces"."ldap_sync_last_update_at", "namespaces"."ldap_sync_last_successful_update_at", "namespaces"."ldap_sync_last_sync_at", "namespaces"."description_html", "namespaces"."lfs_enabled", "namespaces"."parent_id", "namespaces"."shared_runners_minutes_limit", "namespaces"."repository_size_limit", "namespaces"."require_two_factor_authentication", "namespaces"."two_factor_grace_period", "namespaces"."cached_markdown_version", "namespaces"."project_creation_level", "namespaces"."runners_token", "namespaces"."file_template_project_id", "namespaces"."saml_discovery_token", "namespaces"."runners_token_encrypted", "namespaces"."custom_project_templates_group_id", "namespaces"."auto_devops_enabled", "namespaces"."extra_shared_runners_minutes_limit", "namespaces"."last_ci_minutes_notification_at", "namespaces"."last_ci_minutes_usage_notification_level", "namespaces"."subgroup_creation_level", "namespaces"."max_pages_size", "namespaces"."max_artifacts_size", "namespaces"."mentions_disabled", "namespaces"."default_branch_protection", "namespaces"."max_personal_access_token_lifetime", "namespaces"."push_rule_id", "namespaces"."shared_runners_enabled", "namespaces"."allow_descendants_override_disabled_shared_runners", "namespaces"."traversal_ids", "namespaces"."organization_id" FROM "namespaces" WHERE "namespaces"."owner_id" = 1400 AND "namespaces"."type" = 'User' LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/concerns/use_sql_function_for_primary_key_lookups.rb:12:in `_query_by_sql'*/

       SELECT COUNT(*) FROM ((SELECT "projects"."id", "projects"."name", "projects"."path", "projects"."description", "projects"."created_at", "projects"."updated_at", "projects"."creator_id", "projects"."namespace_id", "projects"."last_activity_at", "projects"."import_url", "projects"."visibility_level", "projects"."archived", "projects"."avatar", "projects"."merge_requests_template", "projects"."star_count", "projects"."merge_requests_rebase_enabled", "projects"."import_type", "projects"."import_source", "projects"."approvals_before_merge", "projects"."reset_approvals_on_push", "projects"."merge_requests_ff_only_enabled", "projects"."issues_template", "projects"."mirror", "projects"."mirror_last_update_at", "projects"."mirror_last_successful_update_at", "projects"."mirror_user_id", "projects"."shared_runners_enabled", "projects"."runners_token", "projects"."build_allow_git_fetch", "projects"."build_timeout", "projects"."mirror_trigger_builds", "projects"."pending_delete", "projects"."public_builds", "projects"."last_repository_check_failed", "projects"."last_repository_check_at", "projects"."only_allow_merge_if_pipeline_succeeds", "projects"."has_external_issue_tracker", "projects"."repository_storage", "projects"."repository_read_only", "projects"."request_access_enabled", "projects"."has_external_wiki", "projects"."ci_config_path", "projects"."lfs_enabled", "projects"."description_html", "projects"."only_allow_merge_if_all_discussions_are_resolved", "projects"."repository_size_limit", "projects"."printing_merge_request_link_enabled", "projects"."auto_cancel_pending_pipelines", "projects"."service_desk_enabled", "projects"."cached_markdown_version", "projects"."delete_error", "projects"."last_repository_updated_at", "projects"."disable_overriding_approvers_per_merge_request", "projects"."storage_version", "projects"."resolve_outdated_diff_discussions", "projects"."remote_mirror_available_overridden", "projects"."only_mirror_protected_branches", "projects"."pull_mirror_available_overridden", "projects"."jobs_cache_index", "projects"."external_authorization_classification_label", "projects"."mirror_overwrites_diverged_branches", "projects"."pages_https_only", "projects"."external_webhook_token", "projects"."packages_enabled", "projects"."merge_requests_author_approval", "projects"."pool_repository_id", "projects"."runners_token_encrypted", "projects"."bfg_object_map", "projects"."detected_repository_languages", "projects"."merge_requests_disable_committers_approval", "projects"."require_password_to_approve", "projects"."max_pages_size", "projects"."max_artifacts_size", "projects"."pull_mirror_branch_prefix", "projects"."remove_source_branch_after_merge", "projects"."marked_for_deletion_at", "projects"."marked_for_deletion_by_user_id", "projects"."autoclose_referenced_issues", "projects"."suggestion_commit_message", "projects"."project_namespace_id", "projects"."hidden", "projects"."organization_id" FROM "projects" WHERE "projects"."id" IN (SELECT DISTINCT "events"."project_id" FROM "events" WHERE (action IN (5,6) OR (target_type IN ('MergeRequest','Issue','WorkItem') AND action IN (1,3,7,12))) AND "events"."author_id" = 1400 AND "events"."created_at" >= '2023-06-10 05:39:54.327137') AND "projects"."marked_for_deletion_at" IS NULL AND "projects"."pending_delete" = FALSE AND "projects"."id" IN (SELECT "projects"."id" FROM "projects" INNER JOIN "project_authorizations" ON "projects"."id" = "project_authorizations"."project_id" WHERE "project_authorizations"."user_id" = 1401))
       UNION
       (SELECT "projects"."id", "projects"."name", "projects"."path", "projects"."description", "projects"."created_at", "projects"."updated_at", "projects"."creator_id", "projects"."namespace_id", "projects"."last_activity_at", "projects"."import_url", "projects"."visibility_level", "projects"."archived", "projects"."avatar", "projects"."merge_requests_template", "projects"."star_count", "projects"."merge_requests_rebase_enabled", "projects"."import_type", "projects"."import_source", "projects"."approvals_before_merge", "projects"."reset_approvals_on_push", "projects"."merge_requests_ff_only_enabled", "projects"."issues_template", "projects"."mirror", "projects"."mirror_last_update_at", "projects"."mirror_last_successful_update_at", "projects"."mirror_user_id", "projects"."shared_runners_enabled", "projects"."runners_token", "projects"."build_allow_git_fetch", "projects"."build_timeout", "projects"."mirror_trigger_builds", "projects"."pending_delete", "projects"."public_builds", "projects"."last_repository_check_failed", "projects"."last_repository_check_at", "projects"."only_allow_merge_if_pipeline_succeeds", "projects"."has_external_issue_tracker", "projects"."repository_storage", "projects"."repository_read_only", "projects"."request_access_enabled", "projects"."has_external_wiki", "projects"."ci_config_path", "projects"."lfs_enabled", "projects"."description_html", "projects"."only_allow_merge_if_all_discussions_are_resolved", "projects"."repository_size_limit", "projects"."printing_merge_request_link_enabled", "projects"."auto_cancel_pending_pipelines", "projects"."service_desk_enabled", "projects"."cached_markdown_version", "projects"."delete_error", "projects"."last_repository_updated_at", "projects"."disable_overriding_approvers_per_merge_request", "projects"."storage_version", "projects"."resolve_outdated_diff_discussions", "projects"."remote_mirror_available_overridden", "projects"."only_mirror_protected_branches", "projects"."pull_mirror_available_overridden", "projects"."jobs_cache_index", "projects"."external_authorization_classification_label", "projects"."mirror_overwrites_diverged_branches", "projects"."pages_https_only", "projects"."external_webhook_token", "projects"."packages_enabled", "projects"."merge_requests_author_approval", "projects"."pool_repository_id", "projects"."runners_token_encrypted", "projects"."bfg_object_map", "projects"."detected_repository_languages", "projects"."merge_requests_disable_committers_approval", "projects"."require_password_to_approve", "projects"."max_pages_size", "projects"."max_artifacts_size", "projects"."pull_mirror_branch_prefix", "projects"."remove_source_branch_after_merge", "projects"."marked_for_deletion_at", "projects"."marked_for_deletion_by_user_id", "projects"."autoclose_referenced_issues", "projects"."suggestion_commit_message", "projects"."project_namespace_id", "projects"."hidden", "projects"."organization_id" FROM "projects" WHERE "projects"."id" IN (SELECT DISTINCT "events"."project_id" FROM "events" WHERE (action IN (5,6) OR (target_type IN ('MergeRequest','Issue','WorkItem') AND action IN (1,3,7,12))) AND "events"."author_id" = 1400 AND "events"."created_at" >= '2023-06-10 05:39:54.328846') AND "projects"."marked_for_deletion_at" IS NULL AND "projects"."pending_delete" = FALSE AND "projects"."visibility_level" IN (0, 10, 20))) projects WHERE "projects"."namespace_id" IS NOT NULL /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/countable_connection_type.rb:20:in `count'*/

       SELECT EXTRACT(epoch FROM SUM(AGE(merge_request_metrics.merged_at, merge_request_metrics.created_at))) FROM "merge_requests" INNER JOIN "projects" ON "projects"."id" = "merge_requests"."target_project_id" INNER JOIN "merge_request_metrics" ON "merge_request_metrics"."merge_request_id" = "merge_requests"."id" LEFT JOIN project_features ON projects.id = project_features.project_id WHERE (EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1401 AND (project_authorizations.project_id = projects.id)) OR projects.visibility_level IN (0,10,20)) AND ("project_features"."merge_requests_access_level" > 0 OR "project_features"."merge_requests_access_level" IS NULL) AND "merge_requests"."author_id" = 1400 AND "merge_requests"."target_project_id" = "merge_request_metrics"."target_project_id" AND "merge_request_metrics"."merged_at" > "merge_request_metrics"."created_at" LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/merge_request.rb:505:in `total_time_to_merge'*/

       SELECT COUNT(*) FROM "merge_requests" INNER JOIN "projects" ON "projects"."id" = "merge_requests"."target_project_id" LEFT JOIN project_features ON projects.id = project_features.project_id WHERE (EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1401 AND (project_authorizations.project_id = projects.id)) OR projects.visibility_level IN (0,10,20)) AND ("project_features"."merge_requests_access_level" > 0 OR "project_features"."merge_requests_access_level" IS NULL) AND "merge_requests"."author_id" = 1400 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/countable_connection_type.rb:20:in `count'*/

       SELECT EXTRACT(epoch FROM SUM(AGE(merge_request_metrics.merged_at, merge_request_metrics.created_at))) FROM "merge_requests" INNER JOIN "projects" ON "projects"."id" = "merge_requests"."target_project_id" INNER JOIN "merge_request_metrics" ON "merge_request_metrics"."merge_request_id" = "merge_requests"."id" LEFT JOIN project_features ON projects.id = project_features.project_id WHERE (EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1401 AND (project_authorizations.project_id = projects.id)) OR projects.visibility_level IN (0,10,20)) AND ("project_features"."merge_requests_access_level" > 0 OR "project_features"."merge_requests_access_level" IS NULL) AND EXISTS (SELECT "merge_request_assignees".* FROM "merge_request_assignees" WHERE "merge_request_assignees"."user_id" = 1400 AND (merge_request_id = merge_requests.id)) AND "merge_requests"."target_project_id" = "merge_request_metrics"."target_project_id" AND "merge_request_metrics"."merged_at" > "merge_request_metrics"."created_at" LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/merge_request.rb:505:in `total_time_to_merge'*/

       SELECT COUNT(*) FROM "merge_requests" INNER JOIN "projects" ON "projects"."id" = "merge_requests"."target_project_id" LEFT JOIN project_features ON projects.id = project_features.project_id WHERE (EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1401 AND (project_authorizations.project_id = projects.id)) OR projects.visibility_level IN (0,10,20)) AND ("project_features"."merge_requests_access_level" > 0 OR "project_features"."merge_requests_access_level" IS NULL) AND EXISTS (SELECT "merge_request_assignees".* FROM "merge_request_assignees" WHERE "merge_request_assignees"."user_id" = 1400 AND (merge_request_id = merge_requests.id)) /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/countable_connection_type.rb:20:in `count'*/

       SELECT "users".* FROM find_users_by_id(1400) AS users WHERE ("users"."id" IS NOT NULL) LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/concerns/use_sql_function_for_primary_key_lookups.rb:12:in `_query_by_sql'*/

       SELECT EXTRACT(epoch FROM SUM(AGE(merge_request_metrics.merged_at, merge_request_metrics.created_at))) FROM "merge_requests" INNER JOIN "projects" ON "projects"."id" = "merge_requests"."target_project_id" INNER JOIN "merge_request_metrics" ON "merge_request_metrics"."merge_request_id" = "merge_requests"."id" LEFT JOIN project_features ON projects.id = project_features.project_id WHERE (EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1401 AND (project_authorizations.project_id = projects.id)) OR projects.visibility_level IN (0,10,20)) AND ("project_features"."merge_requests_access_level" > 0 OR "project_features"."merge_requests_access_level" IS NULL) AND EXISTS (SELECT true FROM "merge_request_reviewers" WHERE merge_request_id = merge_requests.id AND "merge_request_reviewers"."user_id" = 1400) AND "merge_requests"."target_project_id" = "merge_request_metrics"."target_project_id" AND "merge_request_metrics"."merged_at" > "merge_request_metrics"."created_at" LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/merge_request.rb:505:in `total_time_to_merge'*/

       SELECT COUNT(*) FROM "merge_requests" INNER JOIN "projects" ON "projects"."id" = "merge_requests"."target_project_id" LEFT JOIN project_features ON projects.id = project_features.project_id WHERE (EXISTS (SELECT 1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = 1401 AND (project_authorizations.project_id = projects.id)) OR projects.visibility_level IN (0,10,20)) AND ("project_features"."merge_requests_access_level" > 0 OR "project_features"."merge_requests_access_level" IS NULL) AND EXISTS (SELECT true FROM "merge_request_reviewers" WHERE merge_request_id = merge_requests.id AND "merge_request_reviewers"."user_id" = 1400) /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/countable_connection_type.rb:20:in `count'*/

       SELECT SUM("timelogs"."time_spent") FROM "timelogs" WHERE "timelogs"."user_id" = 1400 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/time_tracking/timelog_connection_type.rb:20:in `total_spent_time'*/

       SELECT COUNT(*) FROM "timelogs" WHERE "timelogs"."user_id" = 1400 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/countable_connection_type.rb:20:in `count'*/

       SELECT COUNT(*) FROM "saved_replies" WHERE "saved_replies"."user_id" = 1400 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/countable_connection_type.rb:20:in `count'*/

       SELECT "user_preferences".* FROM "user_preferences" WHERE "user_preferences"."user_id" = 1400 LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/user.rb:2278:in `user_preference'*/

       SELECT COUNT(*) FROM "user_achievements" WHERE "user_achievements"."user_id" = 1400 AND "user_achievements"."revoked_by_user_id" IS NULL /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/countable_connection_type.rb:20:in `count'*/

       SELECT "sprints".* FROM "sprints" WHERE "sprints"."group_id" IN (SELECT "namespaces"."id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND "namespaces"."id" = 1774) ORDER BY "sprints"."due_date" ASC, "sprints"."title" ASC, "sprints"."id" ASC LIMIT 100 OFFSET 0 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/connection_redaction.rb:23:in `block in nodes'*/

       SELECT "iterations_cadences".* FROM "iterations_cadences" WHERE "iterations_cadences"."group_id" = 1774 ORDER BY "iterations_cadences"."title" ASC LIMIT 100 OFFSET 0 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/connection_redaction.rb:23:in `block in nodes'*/

       SELECT "vulnerability_reads".* FROM "vulnerability_reads" WHERE "vulnerability_reads"."vulnerability_id" IN (SELECT "vulnerability_reads"."vulnerability_id" FROM unnest('{0,1,2,3,4,5,6,7,8,99}'::smallint[]) AS "report_types"("report_type"), unnest('{1,2,4,5,6,7}'::smallint[]) AS "severities"("severity"), unnest('{1,4,3,2}'::smallint[]) AS "states"("state"), LATERAL (SELECT "vulnerability_reads"."archived", "vulnerability_reads"."report_type", "vulnerability_reads"."severity", "vulnerability_reads"."state", "vulnerability_reads"."traversal_ids", "vulnerability_reads"."vulnerability_id" FROM "vulnerability_reads" WHERE "vulnerability_reads"."traversal_ids" >= '{1774}' AND "vulnerability_reads"."traversal_ids" < '{1775}' AND "vulnerability_reads"."archived" = FALSE AND (vulnerability_reads."report_type" = "report_types"."report_type") AND (vulnerability_reads."severity" = "severities"."severity") AND (vulnerability_reads."state" = "states"."state") ORDER BY "vulnerability_reads"."severity" DESC, "vulnerability_reads"."traversal_ids" DESC, "vulnerability_reads"."vulnerability_id" DESC LIMIT 101) AS vulnerability_reads ORDER BY "vulnerability_reads"."severity" DESC, "vulnerability_reads"."traversal_ids" DESC, "vulnerability_reads"."vulnerability_id" DESC LIMIT 101) ORDER BY "vulnerability_reads"."severity" DESC, "vulnerability_reads"."traversal_ids" DESC, "vulnerability_reads"."vulnerability_id" DESC LIMIT 101 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/unnested_in_filters/dsl.rb:62:in `load'*/

       SELECT DISTINCT ON ("vulnerability_scanners"."external_id", "report_types"."report_type") "vulnerability_scanners".*, "report_types"."report_type" AS "report_type" FROM "vulnerability_scanners" JOIN LATERAL (SELECT "vulnerability_occurrences"."report_type" FROM "vulnerability_occurrences" WHERE "vulnerability_occurrences"."scanner_id" = "vulnerability_scanners"."id" LIMIT 1) report_types ON true WHERE "vulnerability_scanners"."project_id" IN (SELECT "projects"."id" FROM "projects" WHERE "projects"."namespace_id" IN (SELECT "namespaces"."id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1774}')) AND (traversal_ids < ('{1775}'))) AND "projects"."archived" = FALSE AND "projects"."pending_delete" = FALSE) ORDER BY "vulnerability_scanners"."external_id" ASC, "report_types"."report_type" ASC /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/ee/app/graphql/resolvers/vulnerabilities/scanners_resolver.rb:14:in `map'*/

       SELECT COUNT(*) FROM "releases" INNER JOIN "projects" ON "projects"."id" = "releases"."project_id" WHERE "projects"."namespace_id" IN (SELECT "namespaces"."id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1774}')) AND (traversal_ids < ('{1775}'))) /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/ee/app/models/ee/group.rb:750:in `releases_count'*/

       SELECT (
         COUNT(*) FILTER (WHERE EXISTS (SELECT 1 FROM releases WHERE releases.project_id = projects.id)) * 100.0 / GREATEST(COUNT(*), 1)
       )::integer AS releases_percentage
        FROM "projects" WHERE "projects"."namespace_id" IN (SELECT "namespaces"."id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1774}')) AND (traversal_ids < ('{1775}'))) /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/ee/app/models/ee/group.rb:760:in `releases_percentage'*/

       SELECT "users"."id" FROM "users" WHERE "users"."id" IN (SELECT "members"."user_id" FROM "members" LEFT OUTER JOIN "users" ON "users"."id" = "members"."user_id" WHERE "members"."type" = 'GroupMember' AND "members"."source_type" = 'Namespace' AND "users"."state" = 'active' AND "members"."state" = 0 AND "members"."requested_at" IS NULL AND "members"."invite_token" IS NULL AND (members.access_level > 5) AND "members"."source_id" IN (SELECT "namespaces"."id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1774}')) AND (traversal_ids < ('{1775}'))) AND "members"."user_id" NOT IN (SELECT "namespace_bans"."user_id" FROM "namespace_bans" WHERE "namespace_bans"."namespace_id" = 1774) /* allow_cross_joins_across_databases */) AND "users"."user_type" IN (0, 4, 5, 15) /* allow_cross_joins_across_databases */ /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/ee/app/finders/namespaces/billed_users_finder.rb:34:in `block in calculate_user_ids'*/

       SELECT "users"."id" FROM "users" WHERE "users"."id" IN (SELECT "members"."user_id" FROM "members" WHERE "members"."type" IN ('ProjectMember', 'ProjectNamespaceMember') AND "members"."source_type" = 'Project' AND "members"."state" = 0 AND "members"."requested_at" IS NULL AND "members"."invite_token" IS NULL AND (members.access_level > 5) AND "members"."source_id" IN (SELECT "projects"."id" FROM "projects" INNER JOIN "namespaces" ON "namespaces"."type" = 'Group' AND "namespaces"."id" = "projects"."namespace_id" AND "namespaces"."type" = 'Group' WHERE "projects"."namespace_id" IN (SELECT "namespaces"."id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1774}')) AND (traversal_ids < ('{1775}')))) AND "members"."user_id" NOT IN (SELECT "namespace_bans"."user_id" FROM "namespace_bans" WHERE "namespace_bans"."namespace_id" = 1774)) AND "users"."user_type" IN (0, 4, 5, 15) AND ("users"."state" IN ('active')) /* allow_cross_joins_across_databases */ /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/ee/app/finders/namespaces/billed_users_finder.rb:34:in `block in calculate_user_ids'*/

       SELECT "users"."id" FROM "users" WHERE "users"."id" IN (SELECT "members"."user_id" FROM "members" LEFT OUTER JOIN "users" ON "users"."id" = "members"."user_id" WHERE "users"."state" = 'active' AND "members"."state" = 0 AND "members"."requested_at" IS NULL AND "members"."invite_token" IS NULL AND (members.access_level > 5) AND "members"."source_id" IN (WITH "base_ancestors_cte" AS MATERIALIZED (SELECT "namespaces"."traversal_ids" FROM "namespaces" INNER JOIN "group_group_links" ON "group_group_links"."shared_with_group_id" = "namespaces"."id" WHERE "namespaces"."type" = 'Group' AND "group_group_links"."shared_group_id" IN (SELECT "namespaces"."id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1774}')) AND (traversal_ids < ('{1775}')))) SELECT "namespaces"."id" FROM "namespaces" INNER JOIN (SELECT DISTINCT unnest("base_ancestors_cte"."traversal_ids") FROM base_ancestors_cte) AS ancestors(ancestor_id) ON namespaces.id = ancestors.ancestor_id WHERE "namespaces"."type" = 'Group') AND "members"."type" = 'GroupMember' AND "members"."source_type" = 'Namespace' AND "members"."user_id" NOT IN (SELECT "namespace_bans"."user_id" FROM "namespace_bans" WHERE "namespace_bans"."namespace_id" = 1774) /* allow_cross_joins_across_databases */) AND "users"."user_type" IN (0, 4, 5, 15) /* allow_cross_joins_across_databases */ /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/ee/app/finders/namespaces/billed_users_finder.rb:34:in `block in calculate_user_ids'*/

       SELECT "users"."id" FROM "users" WHERE "users"."id" IN (SELECT "members"."user_id" FROM "members" LEFT OUTER JOIN "users" ON "users"."id" = "members"."user_id" WHERE "users"."state" = 'active' AND "members"."state" = 0 AND "members"."requested_at" IS NULL AND "members"."invite_token" IS NULL AND (members.access_level > 5) AND "members"."source_id" IN (WITH "base_ancestors_cte" AS MATERIALIZED (SELECT "namespaces"."traversal_ids" FROM "namespaces" INNER JOIN "project_group_links" ON "project_group_links"."group_id" = "namespaces"."id" WHERE "namespaces"."type" = 'Group' AND "project_group_links"."project_id" IN (SELECT "projects"."id" FROM "projects" WHERE "projects"."namespace_id" IN (SELECT "namespaces"."id" FROM UNNEST(
         COALESCE(
           (SELECT ids FROM (SELECT "namespace_descendants"."self_and_descendant_group_ids" AS ids FROM "namespace_descendants" WHERE "namespace_descendants"."outdated_at" IS NULL AND "namespace_descendants"."namespace_id" = 1774) cached_query),
           (SELECT ids FROM (SELECT ARRAY_AGG("namespaces"."id") AS ids FROM (SELECT namespaces.traversal_ids[array_length(namespaces.traversal_ids, 1)] AS id FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1774}')) AND (traversal_ids < ('{1775}'))) namespaces) consistent_query))
       ) AS namespaces(id)
       ))) SELECT "namespaces"."id" FROM "namespaces" INNER JOIN (SELECT DISTINCT unnest("base_ancestors_cte"."traversal_ids") FROM base_ancestors_cte) AS ancestors(ancestor_id) ON namespaces.id = ancestors.ancestor_id WHERE "namespaces"."type" = 'Group') AND "members"."type" = 'GroupMember' AND "members"."source_type" = 'Namespace' AND "members"."user_id" NOT IN (SELECT "namespace_bans"."user_id" FROM "namespace_bans" WHERE "namespace_bans"."namespace_id" = 1774) /* allow_cross_joins_across_databases */) AND "users"."user_type" IN (0, 4, 5, 15) /* allow_cross_joins_across_databases */ /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/ee/app/finders/namespaces/billed_users_finder.rb:34:in `block in calculate_user_ids'*/

       SELECT * FROM (WITH RECURSIVE "array_cte" AS MATERIALIZED (SELECT "projects"."id" FROM "projects" WHERE "projects"."namespace_id" IN (SELECT "namespaces"."id" FROM UNNEST(
         COALESCE(
           (SELECT ids FROM (SELECT "namespace_descendants"."self_and_descendant_group_ids" AS ids FROM "namespace_descendants" WHERE "namespace_descendants"."outdated_at" IS NULL AND "namespace_descendants"."namespace_id" = 1774) cached_query),
           (SELECT ids FROM (SELECT ARRAY_AGG("namespaces"."id") AS ids FROM (SELECT namespaces.traversal_ids[array_length(namespaces.traversal_ids, 1)] AS id FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1774}')) AND (traversal_ids < ('{1775}'))) namespaces) consistent_query))
       ) AS namespaces(id)
       )), "recursive_keyset_cte" AS ((SELECT NULL::merge_requests_compliance_violations AS records, array_cte_id_array, merge_requests_compliance_violations_severity_level_array, merge_requests_compliance_violations_id_array, 0::bigint AS count FROM (SELECT ARRAY_AGG("array_cte"."id") AS array_cte_id_array, ARRAY_AGG("merge_requests_compliance_violations"."severity_level") AS merge_requests_compliance_violations_severity_level_array, ARRAY_AGG("merge_requests_compliance_violations"."id") AS merge_requests_compliance_violations_id_array FROM (SELECT "array_cte"."id" FROM array_cte) array_cte LEFT JOIN LATERAL (SELECT "merge_requests_compliance_violations"."severity_level" AS severity_level, "merge_requests_compliance_violations"."id" AS id FROM "merge_requests_compliance_violations" WHERE "merge_requests_compliance_violations"."target_project_id" = "array_cte"."id" ORDER BY "merge_requests_compliance_violations"."severity_level" DESC, "merge_requests_compliance_violations"."id" DESC LIMIT 1) merge_requests_compliance_violations ON TRUE WHERE "merge_requests_compliance_violations"."severity_level" IS NOT NULL AND "merge_requests_compliance_violations"."id" IS NOT NULL) array_scope_lateral_query LIMIT 1)
       UNION ALL
       (SELECT (SELECT merge_requests_compliance_violations FROM "merge_requests_compliance_violations" WHERE "merge_requests_compliance_violations"."id" = recursive_keyset_cte.merge_requests_compliance_violations_id_array[position] LIMIT 1), array_cte_id_array, recursive_keyset_cte.merge_requests_compliance_violations_severity_level_array[:position_query.position-1]||next_cursor_values.severity_level||recursive_keyset_cte.merge_requests_compliance_violations_severity_level_array[position_query.position+1:], recursive_keyset_cte.merge_requests_compliance_violations_id_array[:position_query.position-1]||next_cursor_values.id||recursive_keyset_cte.merge_requests_compliance_violations_id_array[position_query.position+1:], recursive_keyset_cte.count + 1 FROM recursive_keyset_cte,
       LATERAL (SELECT severity_level, id, position FROM UNNEST(merge_requests_compliance_violations_severity_level_array, merge_requests_compliance_violations_id_array) WITH ORDINALITY AS u(severity_level, id, position) WHERE severity_level IS NOT NULL AND id IS NOT NULL ORDER BY 1 DESC, 2 DESC LIMIT 1) AS position_query,
       LATERAL (SELECT "record"."severity_level", "record"."id" FROM (VALUES (NULL, NULL)) AS nulls LEFT JOIN (SELECT "merge_requests_compliance_violations"."severity_level" AS severity_level, "merge_requests_compliance_violations"."id" AS id FROM "merge_requests_compliance_violations" WHERE "merge_requests_compliance_violations"."target_project_id" = recursive_keyset_cte.array_cte_id_array[position] AND (("merge_requests_compliance_violations"."severity_level", "merge_requests_compliance_violations"."id") < (recursive_keyset_cte.merge_requests_compliance_violations_severity_level_array[position], recursive_keyset_cte.merge_requests_compliance_violations_id_array[position])) ORDER BY "merge_requests_compliance_violations"."severity_level" DESC, "merge_requests_compliance_violations"."id" DESC LIMIT 1) record ON TRUE LIMIT 1) AS next_cursor_values
       )) SELECT (records).* FROM "recursive_keyset_cte" AS "merge_requests_compliance_violations" WHERE (count <> 0)) merge_requests_compliance_violations LIMIT 100 OFFSET 0 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/connection_redaction.rb:23:in `block in nodes'*/

       SELECT "namespace_ci_cd_settings".* FROM "namespace_ci_cd_settings" WHERE "namespace_ci_cd_settings"."namespace_id" = 1774 LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/ee/app/models/ee/ci/namespace_settings.rb:14:in `allow_stale_runner_pruning?'*/

       SELECT "cluster_agents".* FROM "cluster_agents" WHERE "cluster_agents"."project_id" IN (SELECT "projects"."id" FROM "projects" WHERE "projects"."namespace_id" IN (SELECT "namespaces"."id" FROM UNNEST(
         COALESCE(
           (SELECT ids FROM (SELECT "namespace_descendants"."self_and_descendant_group_ids" AS ids FROM "namespace_descendants" WHERE "namespace_descendants"."outdated_at" IS NULL AND "namespace_descendants"."namespace_id" = 1774) cached_query),
           (SELECT ids FROM (SELECT ARRAY_AGG("namespaces"."id") AS ids FROM (SELECT namespaces.traversal_ids[array_length(namespaces.traversal_ids, 1)] AS id FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1774}')) AND (traversal_ids < ('{1775}'))) namespaces) consistent_query))
       ) AS namespaces(id)
       )) ORDER BY "cluster_agents"."name" ASC, "cluster_agents"."id" DESC LIMIT 101 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/pagination/keyset/connection.rb:122:in `block in limited_nodes'*/

       SELECT COUNT(*) FROM "cluster_agents" WHERE "cluster_agents"."project_id" IN (SELECT "projects"."id" FROM "projects" WHERE "projects"."namespace_id" IN (SELECT "namespaces"."id" FROM UNNEST(
         COALESCE(
           (SELECT ids FROM (SELECT "namespace_descendants"."self_and_descendant_group_ids" AS ids FROM "namespace_descendants" WHERE "namespace_descendants"."outdated_at" IS NULL AND "namespace_descendants"."namespace_id" = 1774) cached_query),
           (SELECT ids FROM (SELECT ARRAY_AGG("namespaces"."id") AS ids FROM (SELECT namespaces.traversal_ids[array_length(namespaces.traversal_ids, 1)] AS id FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1774}')) AND (traversal_ids < ('{1775}'))) namespaces) consistent_query))
       ) AS namespaces(id)
       )) /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/countable_connection_type.rb:20:in `count'*/

       SELECT * FROM (WITH RECURSIVE "array_cte" AS MATERIALIZED (SELECT "namespaces"."id" FROM UNNEST(
         COALESCE(
           (SELECT ids FROM (SELECT "namespace_descendants"."self_and_descendant_group_ids" AS ids FROM "namespace_descendants" WHERE "namespace_descendants"."outdated_at" IS NULL AND "namespace_descendants"."namespace_id" = 1774) cached_query),
           (SELECT ids FROM (SELECT ARRAY_AGG("namespaces"."id") AS ids FROM (SELECT namespaces.traversal_ids[array_length(namespaces.traversal_ids, 1)] AS id FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1774}')) AND (traversal_ids < ('{1775}'))) namespaces) consistent_query))
       ) AS namespaces(id)
       ), "recursive_keyset_cte" AS ((SELECT NULL::project_compliance_standards_adherence AS records, array_cte_id_array, project_compliance_standards_adherence_project_id_array, project_compliance_standards_adherence_id_array, 0::bigint AS count FROM (SELECT ARRAY_AGG("array_cte"."id") AS array_cte_id_array, ARRAY_AGG("project_compliance_standards_adherence"."project_id") AS project_compliance_standards_adherence_project_id_array, ARRAY_AGG("project_compliance_standards_adherence"."id") AS project_compliance_standards_adherence_id_array FROM (SELECT "array_cte"."id" FROM array_cte) array_cte LEFT JOIN LATERAL (SELECT "project_compliance_standards_adherence"."project_id" AS project_id, "project_compliance_standards_adherence"."id" AS id FROM "project_compliance_standards_adherence" WHERE "project_compliance_standards_adherence"."namespace_id" = "array_cte"."id" ORDER BY "project_compliance_standards_adherence"."project_id" DESC, "project_compliance_standards_adherence"."id" DESC LIMIT 1) project_compliance_standards_adherence ON TRUE WHERE "project_compliance_standards_adherence"."project_id" IS NOT NULL AND "project_compliance_standards_adherence"."id" IS NOT NULL) array_scope_lateral_query LIMIT 1)
       UNION ALL
       (SELECT (SELECT project_compliance_standards_adherence FROM "project_compliance_standards_adherence" WHERE "project_compliance_standards_adherence"."id" = recursive_keyset_cte.project_compliance_standards_adherence_id_array[position] LIMIT 1), array_cte_id_array, recursive_keyset_cte.project_compliance_standards_adherence_project_id_array[:position_query.position-1]||next_cursor_values.project_id||recursive_keyset_cte.project_compliance_standards_adherence_project_id_array[position_query.position+1:], recursive_keyset_cte.project_compliance_standards_adherence_id_array[:position_query.position-1]||next_cursor_values.id||recursive_keyset_cte.project_compliance_standards_adherence_id_array[position_query.position+1:], recursive_keyset_cte.count + 1 FROM recursive_keyset_cte,
       LATERAL (SELECT project_id, id, position FROM UNNEST(project_compliance_standards_adherence_project_id_array, project_compliance_standards_adherence_id_array) WITH ORDINALITY AS u(project_id, id, position) WHERE project_id IS NOT NULL AND id IS NOT NULL ORDER BY 1 DESC, 2 DESC LIMIT 1) AS position_query,
       LATERAL (SELECT "record"."project_id", "record"."id" FROM (VALUES (NULL, NULL)) AS nulls LEFT JOIN (SELECT "project_compliance_standards_adherence"."project_id" AS project_id, "project_compliance_standards_adherence"."id" AS id FROM "project_compliance_standards_adherence" WHERE "project_compliance_standards_adherence"."namespace_id" = recursive_keyset_cte.array_cte_id_array[position] AND (("project_compliance_standards_adherence"."project_id", "project_compliance_standards_adherence"."id") < (recursive_keyset_cte.project_compliance_standards_adherence_project_id_array[position], recursive_keyset_cte.project_compliance_standards_adherence_id_array[position])) ORDER BY "project_compliance_standards_adherence"."project_id" DESC, "project_compliance_standards_adherence"."id" DESC LIMIT 1) record ON TRUE LIMIT 1) AS next_cursor_values
       )) SELECT (records).* FROM "recursive_keyset_cte" AS "project_compliance_standards_adherence" WHERE (count <> 0)) project_compliance_standards_adherence LIMIT 100 OFFSET 0 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/connection_redaction.rb:23:in `block in nodes'*/

       SELECT "projects"."id", "projects"."name", "projects"."path", "projects"."description", "projects"."created_at", "projects"."updated_at", "projects"."creator_id", "projects"."namespace_id", "projects"."last_activity_at", "projects"."import_url", "projects"."visibility_level", "projects"."archived", "projects"."avatar", "projects"."merge_requests_template", "projects"."star_count", "projects"."merge_requests_rebase_enabled", "projects"."import_type", "projects"."import_source", "projects"."approvals_before_merge", "projects"."reset_approvals_on_push", "projects"."merge_requests_ff_only_enabled", "projects"."issues_template", "projects"."mirror", "projects"."mirror_last_update_at", "projects"."mirror_last_successful_update_at", "projects"."mirror_user_id", "projects"."shared_runners_enabled", "projects"."runners_token", "projects"."build_allow_git_fetch", "projects"."build_timeout", "projects"."mirror_trigger_builds", "projects"."pending_delete", "projects"."public_builds", "projects"."last_repository_check_failed", "projects"."last_repository_check_at", "projects"."only_allow_merge_if_pipeline_succeeds", "projects"."has_external_issue_tracker", "projects"."repository_storage", "projects"."repository_read_only", "projects"."request_access_enabled", "projects"."has_external_wiki", "projects"."ci_config_path", "projects"."lfs_enabled", "projects"."description_html", "projects"."only_allow_merge_if_all_discussions_are_resolved", "projects"."repository_size_limit", "projects"."printing_merge_request_link_enabled", "projects"."auto_cancel_pending_pipelines", "projects"."service_desk_enabled", "projects"."cached_markdown_version", "projects"."delete_error", "projects"."last_repository_updated_at", "projects"."disable_overriding_approvers_per_merge_request", "projects"."storage_version", "projects"."resolve_outdated_diff_discussions", "projects"."remote_mirror_available_overridden", "projects"."only_mirror_protected_branches", "projects"."pull_mirror_available_overridden", "projects"."jobs_cache_index", "projects"."external_authorization_classification_label", "projects"."mirror_overwrites_diverged_branches", "projects"."pages_https_only", "projects"."external_webhook_token", "projects"."packages_enabled", "projects"."merge_requests_author_approval", "projects"."pool_repository_id", "projects"."runners_token_encrypted", "projects"."bfg_object_map", "projects"."detected_repository_languages", "projects"."merge_requests_disable_committers_approval", "projects"."require_password_to_approve", "projects"."max_pages_size", "projects"."max_artifacts_size", "projects"."pull_mirror_branch_prefix", "projects"."remove_source_branch_after_merge", "projects"."marked_for_deletion_at", "projects"."marked_for_deletion_by_user_id", "projects"."autoclose_referenced_issues", "projects"."suggestion_commit_message", "projects"."project_namespace_id", "projects"."hidden", "projects"."organization_id" FROM "projects" INNER JOIN "analytics_dashboards_pointers" ON "projects"."id" = "analytics_dashboards_pointers"."target_project_id" WHERE "analytics_dashboards_pointers"."namespace_id" = 1774 LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/concerns/use_sql_function_for_primary_key_lookups.rb:12:in `_query_by_sql'*/

       SELECT DISTINCT ON (members.user_id, members.invite_email) members.* FROM ((SELECT "members"."id", "members"."access_level", "members"."source_id", "members"."source_type", "members"."user_id", "members"."notification_level", "members"."type", "members"."created_at", "members"."updated_at", "members"."created_by_id", "members"."invite_email", "members"."invite_token", "members"."invite_accepted_at", "members"."requested_at", "members"."expires_at", "members"."ldap", "members"."override", "members"."state", "members"."invite_email_success", "members"."member_namespace_id", "members"."member_role_id", "members"."expiry_notified_at", "members"."request_accepted_at", "members"."last_activity_on" FROM "members" WHERE "members"."source_type" = 'Namespace' AND "members"."source_id" IN (SELECT "namespaces"."id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1774}')) AND (traversal_ids < ('{1775}'))))
       UNION
       (SELECT "members"."id", "members"."access_level", "members"."source_id", "members"."source_type", "members"."user_id", "members"."notification_level", "members"."type", "members"."created_at", "members"."updated_at", "members"."created_by_id", "members"."invite_email", "members"."invite_token", "members"."invite_accepted_at", "members"."requested_at", "members"."expires_at", "members"."ldap", "members"."override", "members"."state", "members"."invite_email_success", "members"."member_namespace_id", "members"."member_role_id", "members"."expiry_notified_at", "members"."request_accepted_at", "members"."last_activity_on" FROM "members" WHERE "members"."source_type" = 'Project' AND "members"."source_id" IN (SELECT "projects"."id" FROM "projects" WHERE "projects"."namespace_id" IN (SELECT "namespaces"."id" FROM UNNEST(
         COALESCE(
           (SELECT ids FROM (SELECT "namespace_descendants"."self_and_descendant_group_ids" AS ids FROM "namespace_descendants" WHERE "namespace_descendants"."outdated_at" IS NULL AND "namespace_descendants"."namespace_id" = 1774) cached_query),
           (SELECT ids FROM (SELECT ARRAY_AGG("namespaces"."id") AS ids FROM (SELECT namespaces.traversal_ids[array_length(namespaces.traversal_ids, 1)] AS id FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1774}')) AND (traversal_ids < ('{1775}'))) namespaces) consistent_query))
       ) AS namespaces(id)
       )))) members WHERE ("members"."state" = 1 OR "members"."invite_token" IS NOT NULL) ORDER BY "members"."user_id" ASC, "members"."invite_email" ASC LIMIT 100 OFFSET 0 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/connection_redaction.rb:23:in `block in nodes'*/

       SELECT "projects"."id", "projects"."name", "projects"."path", "projects"."description", "projects"."created_at", "projects"."updated_at", "projects"."creator_id", "projects"."namespace_id", "projects"."last_activity_at", "projects"."import_url", "projects"."visibility_level", "projects"."archived", "projects"."avatar", "projects"."merge_requests_template", "projects"."star_count", "projects"."merge_requests_rebase_enabled", "projects"."import_type", "projects"."import_source", "projects"."approvals_before_merge", "projects"."reset_approvals_on_push", "projects"."merge_requests_ff_only_enabled", "projects"."issues_template", "projects"."mirror", "projects"."mirror_last_update_at", "projects"."mirror_last_successful_update_at", "projects"."mirror_user_id", "projects"."shared_runners_enabled", "projects"."runners_token", "projects"."build_allow_git_fetch", "projects"."build_timeout", "projects"."mirror_trigger_builds", "projects"."pending_delete", "projects"."public_builds", "projects"."last_repository_check_failed", "projects"."last_repository_check_at", "projects"."only_allow_merge_if_pipeline_succeeds", "projects"."has_external_issue_tracker", "projects"."repository_storage", "projects"."repository_read_only", "projects"."request_access_enabled", "projects"."has_external_wiki", "projects"."ci_config_path", "projects"."lfs_enabled", "projects"."description_html", "projects"."only_allow_merge_if_all_discussions_are_resolved", "projects"."repository_size_limit", "projects"."printing_merge_request_link_enabled", "projects"."auto_cancel_pending_pipelines", "projects"."service_desk_enabled", "projects"."cached_markdown_version", "projects"."delete_error", "projects"."last_repository_updated_at", "projects"."disable_overriding_approvers_per_merge_request", "projects"."storage_version", "projects"."resolve_outdated_diff_discussions", "projects"."remote_mirror_available_overridden", "projects"."only_mirror_protected_branches", "projects"."pull_mirror_available_overridden", "projects"."jobs_cache_index", "projects"."external_authorization_classification_label", "projects"."mirror_overwrites_diverged_branches", "projects"."pages_https_only", "projects"."external_webhook_token", "projects"."packages_enabled", "projects"."merge_requests_author_approval", "projects"."pool_repository_id", "projects"."runners_token_encrypted", "projects"."bfg_object_map", "projects"."detected_repository_languages", "projects"."merge_requests_disable_committers_approval", "projects"."require_password_to_approve", "projects"."max_pages_size", "projects"."max_artifacts_size", "projects"."pull_mirror_branch_prefix", "projects"."remove_source_branch_after_merge", "projects"."marked_for_deletion_at", "projects"."marked_for_deletion_by_user_id", "projects"."autoclose_referenced_issues", "projects"."suggestion_commit_message", "projects"."project_namespace_id", "projects"."hidden", "projects"."organization_id" FROM "projects" WHERE "projects"."namespace_id" = 1774 /* allow_cross_joins_across_databases */ ORDER BY "projects"."id" DESC LIMIT 101 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/concerns/use_sql_function_for_primary_key_lookups.rb:12:in `_query_by_sql'*/

       SELECT COUNT(*) FROM "projects" WHERE "projects"."namespace_id" = 1774 /* allow_cross_joins_across_databases */ /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/countable_connection_type.rb:20:in `count'*/

       SELECT "namespace_package_settings".* FROM "namespace_package_settings" WHERE "namespace_package_settings"."namespace_id" = 1774 LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/namespace.rb:362:in `package_settings'*/

       SELECT "timelog_categories".* FROM "timelog_categories" WHERE "timelog_categories"."namespace_id" = 1774 ORDER BY "timelog_categories"."id" DESC LIMIT 101 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/pagination/keyset/connection.rb:122:in `block in limited_nodes'*/

       SELECT "achievements".* FROM "achievements" WHERE "achievements"."namespace_id" = 1774 ORDER BY "achievements"."id" DESC LIMIT 101 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/pagination/keyset/connection.rb:122:in `block in limited_nodes'*/

       SELECT COUNT(*) FROM "achievements" WHERE "achievements"."namespace_id" = 1774 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/countable_connection_type.rb:20:in `count'*/

       SELECT "pages_deployments".* FROM "pages_deployments" WHERE "pages_deployments"."project_id" IN (SELECT "projects"."id" FROM "projects" WHERE "projects"."namespace_id" = 1774) ORDER BY "pages_deployments"."created_at" DESC, "pages_deployments"."id" DESC LIMIT 101 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/pagination/keyset/connection.rb:122:in `block in limited_nodes'*/

       SELECT COUNT(*) FROM "pages_deployments" WHERE "pages_deployments"."project_id" IN (SELECT "projects"."id" FROM "projects" WHERE "projects"."namespace_id" = 1774) /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/countable_connection_type.rb:20:in `count'*/

       SELECT "namespace_limits"."additional_purchased_storage_size", "namespace_limits"."additional_purchased_storage_ends_on", "namespace_limits"."namespace_id", "namespace_limits"."pre_enforcement_notification_at", "namespace_limits"."first_enforced_at", "namespace_limits"."last_enforced_at", "namespace_limits"."last_seat_all_used_seats_notification_at" FROM "namespace_limits" WHERE "namespace_limits"."namespace_id" = 1774 LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/ee/app/models/ee/namespace.rb:204:in `namespace_limit'*/

       SELECT SUM((("project_statistics"."repository_size" + "project_statistics"."lfs_objects_size") - "projects"."repository_size_limit")) FROM "projects" INNER JOIN "project_statistics" ON "project_statistics"."project_id" = "projects"."id" WHERE "projects"."namespace_id" IN (SELECT "namespaces"."id" FROM UNNEST(
         COALESCE(
           (SELECT ids FROM (SELECT "namespace_descendants"."self_and_descendant_group_ids" AS ids FROM "namespace_descendants" WHERE "namespace_descendants"."outdated_at" IS NULL AND "namespace_descendants"."namespace_id" = 1774) cached_query),
           (SELECT ids FROM (SELECT ARRAY_AGG("namespaces"."id") AS ids FROM (SELECT namespaces.traversal_ids[array_length(namespaces.traversal_ids, 1)] AS id FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1774}')) AND (traversal_ids < ('{1775}'))) namespaces) consistent_query))
       ) AS namespaces(id)
       ) AND "projects"."repository_size_limit" != 0 AND ("project_statistics"."repository_size" + "project_statistics"."lfs_objects_size") > "projects"."repository_size_limit" LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/ee/app/models/ee/namespace.rb:288:in `block in total_repository_size_excess'*/

       SELECT SUM(("project_statistics"."repository_size" + "project_statistics"."lfs_objects_size")) FROM "projects" INNER JOIN "project_statistics" ON "project_statistics"."project_id" = "projects"."id" WHERE "projects"."namespace_id" IN (SELECT "namespaces"."id" FROM UNNEST(
         COALESCE(
           (SELECT ids FROM (SELECT "namespace_descendants"."self_and_descendant_group_ids" AS ids FROM "namespace_descendants" WHERE "namespace_descendants"."outdated_at" IS NULL AND "namespace_descendants"."namespace_id" = 1774) cached_query),
           (SELECT ids FROM (SELECT ARRAY_AGG("namespaces"."id") AS ids FROM (SELECT namespaces.traversal_ids[array_length(namespaces.traversal_ids, 1)] AS id FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1774}')) AND (traversal_ids < ('{1775}'))) namespaces) consistent_query))
       ) AS namespaces(id)
       ) LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/ee/app/models/ee/namespace.rb:302:in `block in total_repository_size'*/

       SELECT COUNT(*) FROM "projects" INNER JOIN "project_statistics" ON "project_statistics"."project_id" = "projects"."id" WHERE "projects"."namespace_id" IN (SELECT "namespaces"."id" FROM UNNEST(
         COALESCE(
           (SELECT ids FROM (SELECT "namespace_descendants"."self_and_descendant_group_ids" AS ids FROM "namespace_descendants" WHERE "namespace_descendants"."outdated_at" IS NULL AND "namespace_descendants"."namespace_id" = 1774) cached_query),
           (SELECT ids FROM (SELECT ARRAY_AGG("namespaces"."id") AS ids FROM (SELECT namespaces.traversal_ids[array_length(namespaces.traversal_ids, 1)] AS id FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1774}')) AND (traversal_ids < ('{1775}'))) namespaces) consistent_query))
       ) AS namespaces(id)
       ) AND "projects"."repository_size_limit" != 0 AND ("project_statistics"."repository_size" + "project_statistics"."lfs_objects_size") > "projects"."repository_size_limit" /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/ee/app/models/ee/namespace.rb:294:in `block in repository_size_excess_project_count'*/

       SELECT "security_orchestration_policy_configurations"."id", "security_orchestration_policy_configurations"."project_id", "security_orchestration_policy_configurations"."security_policy_management_project_id", "security_orchestration_policy_configurations"."created_at", "security_orchestration_policy_configurations"."updated_at", "security_orchestration_policy_configurations"."configured_at", "security_orchestration_policy_configurations"."namespace_id" FROM "security_orchestration_policy_configurations" WHERE "security_orchestration_policy_configurations"."namespace_id" = 1774 LIMIT 1 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/ee/app/models/ee/namespace.rb:173:in `security_policy_management_project'*/

       SELECT "timelogs".* FROM "timelogs" INNER JOIN "projects" ON "projects"."id" = "timelogs"."project_id" WHERE "projects"."namespace_id" IN (SELECT "namespaces"."id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1774}')) AND (traversal_ids < ('{1775}'))) AND (spent_at >= '2021-03-01 00:00:00') AND (spent_at <= '2021-03-30 23:59:59.999999') ORDER BY "timelogs"."spent_at" ASC NULLS LAST, "timelogs"."id" DESC LIMIT 101 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/pagination/keyset/connection.rb:122:in `block in limited_nodes'*/

       SELECT SUM("timelogs"."time_spent") FROM "timelogs" INNER JOIN "projects" ON "projects"."id" = "timelogs"."project_id" WHERE "projects"."namespace_id" IN (SELECT "namespaces"."id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1774}')) AND (traversal_ids < ('{1775}'))) AND (spent_at >= '2021-03-01 00:00:00') AND (spent_at <= '2021-03-30 23:59:59.999999') /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/time_tracking/timelog_connection_type.rb:20:in `total_spent_time'*/

       SELECT COUNT(*) FROM "timelogs" INNER JOIN "projects" ON "projects"."id" = "timelogs"."project_id" WHERE "projects"."namespace_id" IN (SELECT "namespaces"."id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND (traversal_ids >= ('{1774}')) AND (traversal_ids < ('{1775}'))) AND (spent_at >= '2021-03-01 00:00:00') AND (spent_at <= '2021-03-30 23:59:59.999999') /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/graphql/types/countable_connection_type.rb:20:in `count'*/

       SELECT MAX("members"."access_level") AS "maximum_access_level", "members"."source_id" AS "members_source_id" FROM "members" WHERE "members"."source_type" = 'Namespace' AND "members"."type" = 'GroupMember' AND "members"."user_id" = 1401 AND "members"."requested_at" IS NULL AND (access_level >= 10) AND "members"."source_id" IN (1773, 1774) GROUP BY "members"."source_id" /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/user.rb:2249:in `block in max_member_access_for_group_ids'*/

       SELECT "namespaces"."id", "namespaces"."name", "namespaces"."path", "namespaces"."owner_id", "namespaces"."created_at", "namespaces"."updated_at", "namespaces"."type", "namespaces"."description", "namespaces"."avatar", "namespaces"."membership_lock", "namespaces"."share_with_group_lock", "namespaces"."visibility_level", "namespaces"."request_access_enabled", "namespaces"."ldap_sync_status", "namespaces"."ldap_sync_error", "namespaces"."ldap_sync_last_update_at", "namespaces"."ldap_sync_last_successful_update_at", "namespaces"."ldap_sync_last_sync_at", "namespaces"."description_html", "namespaces"."lfs_enabled", "namespaces"."parent_id", "namespaces"."shared_runners_minutes_limit", "namespaces"."repository_size_limit", "namespaces"."require_two_factor_authentication", "namespaces"."two_factor_grace_period", "namespaces"."cached_markdown_version", "namespaces"."project_creation_level", "namespaces"."runners_token", "namespaces"."file_template_project_id", "namespaces"."saml_discovery_token", "namespaces"."runners_token_encrypted", "namespaces"."custom_project_templates_group_id", "namespaces"."auto_devops_enabled", "namespaces"."extra_shared_runners_minutes_limit", "namespaces"."last_ci_minutes_notification_at", "namespaces"."last_ci_minutes_usage_notification_level", "namespaces"."subgroup_creation_level", "namespaces"."max_pages_size", "namespaces"."max_artifacts_size", "namespaces"."mentions_disabled", "namespaces"."default_branch_protection", "namespaces"."max_personal_access_token_lifetime", "namespaces"."push_rule_id", "namespaces"."shared_runners_enabled", "namespaces"."allow_descendants_override_disabled_shared_runners", "namespaces"."traversal_ids", "namespaces"."organization_id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND "namespaces"."id" = 0 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/concerns/use_sql_function_for_primary_key_lookups.rb:12:in `_query_by_sql'*/

       SELECT COUNT(children_namespaces) AS "count_children_namespaces", "namespaces"."id" AS "namespaces_id" FROM "namespaces" LEFT OUTER JOIN "namespaces" "children_namespaces" ON "children_namespaces"."type" = 'Group' AND "children_namespaces"."parent_id" = "namespaces"."id" WHERE "namespaces"."type" = 'Group' AND "namespaces"."id" IN (1773, 1774) GROUP BY "namespaces"."id" /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/group.rb:381:in `descendant_groups_counts'*/

       SELECT COUNT(members) AS "count_members", "namespaces"."id" AS "namespaces_id" FROM "namespaces" LEFT OUTER JOIN "members" ON "members"."source_type" = 'Namespace' AND "members"."requested_at" IS NULL AND "members"."source_id" = "namespaces"."id" AND "members"."type" = 'GroupMember' AND (members.access_level > 5) WHERE "namespaces"."type" = 'Group' AND "namespaces"."id" IN (1773, 1774) GROUP BY "namespaces"."id" /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/group.rb:389:in `group_members_counts'*/

       SELECT COUNT(projects) AS "count_projects", "namespaces"."id" AS "namespaces_id" FROM "namespaces" LEFT OUTER JOIN "projects" ON "projects"."archived" != TRUE AND "projects"."namespace_id" = "namespaces"."id" WHERE "namespaces"."type" = 'Group' AND "namespaces"."id" IN (1773, 1774) GROUP BY "namespaces"."id" /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/group.rb:385:in `projects_counts'*/

       SELECT "namespace_root_storage_statistics".* FROM "namespace_root_storage_statistics" WHERE "namespace_root_storage_statistics"."namespace_id" IN (1773, 1774) /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/lib/gitlab/graphql/loaders/batch_root_storage_statistics_loader.rb:15:in `block in find'*/

       SELECT "compliance_management_frameworks"."id" AS t0_r0, "compliance_management_frameworks"."name" AS t0_r1, "compliance_management_frameworks"."description" AS t0_r2, "compliance_management_frameworks"."color" AS t0_r3, "compliance_management_frameworks"."namespace_id" AS t0_r4, "compliance_management_frameworks"."pipeline_configuration_full_path" AS t0_r5, "compliance_management_frameworks"."created_at" AS t0_r6, "compliance_management_frameworks"."updated_at" AS t0_r7, "namespaces"."id" AS t1_r0, "namespaces"."name" AS t1_r1, "namespaces"."path" AS t1_r2, "namespaces"."owner_id" AS t1_r3, "namespaces"."created_at" AS t1_r4, "namespaces"."updated_at" AS t1_r5, "namespaces"."type" AS t1_r6, "namespaces"."description" AS t1_r7, "namespaces"."avatar" AS t1_r8, "namespaces"."membership_lock" AS t1_r9, "namespaces"."share_with_group_lock" AS t1_r10, "namespaces"."visibility_level" AS t1_r11, "namespaces"."request_access_enabled" AS t1_r12, "namespaces"."ldap_sync_status" AS t1_r13, "namespaces"."ldap_sync_error" AS t1_r14, "namespaces"."ldap_sync_last_update_at" AS t1_r15, "namespaces"."ldap_sync_last_successful_update_at" AS t1_r16, "namespaces"."ldap_sync_last_sync_at" AS t1_r17, "namespaces"."description_html" AS t1_r18, "namespaces"."lfs_enabled" AS t1_r19, "namespaces"."parent_id" AS t1_r20, "namespaces"."shared_runners_minutes_limit" AS t1_r21, "namespaces"."repository_size_limit" AS t1_r22, "namespaces"."require_two_factor_authentication" AS t1_r23, "namespaces"."two_factor_grace_period" AS t1_r24, "namespaces"."cached_markdown_version" AS t1_r25, "namespaces"."project_creation_level" AS t1_r26, "namespaces"."runners_token" AS t1_r27, "namespaces"."file_template_project_id" AS t1_r28, "namespaces"."saml_discovery_token" AS t1_r29, "namespaces"."runners_token_encrypted" AS t1_r30, "namespaces"."custom_project_templates_group_id" AS t1_r31, "namespaces"."auto_devops_enabled" AS t1_r32, "namespaces"."extra_shared_runners_minutes_limit" AS t1_r33, "namespaces"."last_ci_minutes_notification_at" AS t1_r34, "namespaces"."last_ci_minutes_usage_notification_level" AS t1_r35, "namespaces"."subgroup_creation_level" AS t1_r36, "namespaces"."max_pages_size" AS t1_r37, "namespaces"."max_artifacts_size" AS t1_r38, "namespaces"."mentions_disabled" AS t1_r39, "namespaces"."default_branch_protection" AS t1_r40, "namespaces"."max_personal_access_token_lifetime" AS t1_r41, "namespaces"."push_rule_id" AS t1_r42, "namespaces"."shared_runners_enabled" AS t1_r43, "namespaces"."allow_descendants_override_disabled_shared_runners" AS t1_r44, "namespaces"."traversal_ids" AS t1_r45, "namespaces"."organization_id" AS t1_r46 FROM "compliance_management_frameworks" LEFT OUTER JOIN "namespaces" ON "namespaces"."id" = "compliance_management_frameworks"."namespace_id" WHERE "namespaces"."id" IN (1773, 1774) /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/ee/app/graphql/resolvers/compliance_management/framework_resolver.rb:41:in `group_by'*/

       SELECT COUNT(*) AS "count_all", "user_id" AS "user_id" FROM ((SELECT namespaces.*, members.user_id as user_id FROM "namespaces" INNER JOIN "members" ON "members"."source_type" = 'Namespace' AND "members"."requested_at" IS NULL AND "members"."source_id" = "namespaces"."id" AND "members"."type" = 'GroupMember' AND (members.access_level > 5) WHERE "namespaces"."type" = 'Group' AND "members"."user_id" IN (1399, 1400) AND (access_level >= 10))
       UNION
       (SELECT namespaces.*, project_authorizations.user_id as user_id FROM "namespaces" INNER JOIN "projects" ON "projects"."namespace_id" = "namespaces"."id" INNER JOIN "project_authorizations" ON "project_authorizations"."project_id" = "projects"."id" WHERE "namespaces"."type" = 'Group' AND "project_authorizations"."user_id" IN (1399, 1400))) namespaces GROUP BY "user_id" /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/finders/user_groups_counter.rb:13:in `block in execute'*/

       SELECT "users".* FROM "users" WHERE "users"."id" IN (1399, 1400) /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/concerns/use_sql_function_for_primary_key_lookups.rb:12:in `_query_by_sql'*/

       SELECT "namespaces"."id" FROM "namespaces" WHERE "namespaces"."type" = 'Group' AND "namespaces"."id" = 1773 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/group.rb:643:in `block in self_and_ancestors_ids'*/

       SELECT "notification_settings".* FROM "notification_settings" WHERE "notification_settings"."source_type" = 'Namespace' AND "notification_settings"."source_id" = 1773 AND "notification_settings"."user_id" = 1399 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/group.rb:444:in `notification_email_for'*/

       SELECT "notification_settings".* FROM "notification_settings" WHERE "notification_settings"."source_type" = 'Namespace' AND "notification_settings"."source_id" = 1773 AND "notification_settings"."user_id" = 1400 /*application:test,correlation_id:b4d84cbf-48ee-4824-b673-2f3beaaf2c88,endpoint_id:GraphqlController#execute,db_config_name:main,line:/app/models/group.rb:444:in `notification_email_for'*/
     # ./spec/requests/api/graphql/group_query_spec.rb:106:in `block (4 levels) in <top (required)>'
     # ./spec/spec_helper.rb:449:in `block (3 levels) in <top (required)>'
     # ./lib/gitlab/sidekiq_sharding/validator.rb:42:in `enabled'
     # ./spec/spec_helper.rb:448:in `block (2 levels) in <top (required)>'
     # ./spec/spec_helper.rb:443:in `block (3 levels) in <top (required)>'
     # ./spec/support/sidekiq_middleware.rb:9:in `with_sidekiq_server_middleware'
     # ./spec/spec_helper.rb:433:in `block (2 levels) in <top (required)>'
     # ./spec/spec_helper.rb:429:in `block (3 levels) in <top (required)>'
     # ./lib/gitlab/application_context.rb:70:in `with_raw_context'
     # ./spec/spec_helper.rb:429:in `block (2 levels) in <top (required)>'
     # ./spec/spec_helper.rb:261:in `block (2 levels) in <top (required)>'
     # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'
     # ./spec/support/fast_quarantine.rb:22:in `block (2 levels) in <top (required)>'
     # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'
     # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'
     # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'

  5) getting group information Query group(fullPath) with timelog categories for N+1 queries avoids N+1 database queries
     # See: https://gitlab.com/gitlab-org/gitlab/-/issues/369396
     Failure/Error: expect { run_with_clean_state(query, context: ctx) }.not_to exceed_query_limit(control)

       Expected a maximum of 4 queries, got 6:

       Query Diff:
       -----------
       SELECT "saml_providers".* FROM "saml_providers"...
       -- (expected: 0, got: 1)
          WHERE "saml_providers"."group_id" = 1781 LIMIT 1

       SELECT "timelog_categories".* FROM "timelog_categories"...
       -- (expected: 0, got: 1)
          WHERE "timelog_categories"."namespace_id" = 1781 ORDER BY "timelog_categories"."id" DESC LIMIT 101
     # ./spec/requests/api/graphql/group_query_spec.rb:201:in `block (5 levels) in <top (required)>'
     # ./spec/spec_helper.rb:449:in `block (3 levels) in <top (required)>'
     # ./lib/gitlab/sidekiq_sharding/validator.rb:42:in `enabled'
     # ./spec/spec_helper.rb:448:in `block (2 levels) in <top (required)>'
     # ./spec/spec_helper.rb:443:in `block (3 levels) in <top (required)>'
     # ./spec/support/sidekiq_middleware.rb:9:in `with_sidekiq_server_middleware'
     # ./spec/spec_helper.rb:433:in `block (2 levels) in <top (required)>'
     # ./spec/spec_helper.rb:429:in `block (3 levels) in <top (required)>'
     # ./lib/gitlab/application_context.rb:70:in `with_raw_context'
     # ./spec/spec_helper.rb:429:in `block (2 levels) in <top (required)>'
     # ./spec/spec_helper.rb:261:in `block (2 levels) in <top (required)>'
     # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'
     # ./spec/support/fast_quarantine.rb:22:in `block (2 levels) in <top (required)>'
     # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'
     # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'
     # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'

Failures:

  1) Notify for a project items that are noteable, the email for a discussion note on a merge request behaves like a discussion note email is sent to the given recipient as the author
     Failure/Error: expect(subject).to deliver_to(recipient.notification_email_or_default)

       expected #<Mail::Message:117516840, Multipart: true, Headers: <From: "author_name (@user388)" <gitlab@localhost>>, <Reply-To: group1 / a-known-name <reply+06286de0317140ff2bc03502c40e9bb1@localhost>>, <To: notifications@example.com>, <Message-ID: <note_140@localhost>>, <In-Reply-To: <merge_request_1@localhost>>, <References: <reply-06286de0317140ff2bc03502c40e9bb1@localhost>
        <merge_request_1@localhost>>, <Subject: Re: a-known-name | My title 1 (!1)>, <Mime-Version: 1.0>, <Content-Type: multipart/alternative; charset=UTF-8; boundary="--==_mimepart_66668dc4e12cd_1533d541372e3">, <X-GitLab-Project: a-known-name>, <X-GitLab-Project-Id: 1>, <X-GitLab-Project-Path: group1/project-1>, <List-Id: group1/project-1 <1.project-1.group1.localhost>>, <List-Unsubscribe: <http://localhost/-/sent_notifications/06286de0317140ff2bc03502c40e9bb1/unsubscribe?force=true>,<mailto:reply+06286de0317140ff2bc03502c40e9bb1-unsubscribe@localhost>>, <X-GitLab-MergeRequest-ID: 1>, <X-GitLab-MergeRequest-IID: 1>, <X-GitLab-MergeRequest-State: opened>, <X-GitLab-Discussion-ID: 6eb71ad2eb59d4f5b805974e3848edfcf559f09c>, <X-GitLab-Reply-Key: 06286de0317140ff2bc03502c40e9bb1>> to deliver to ["notifications@example.com"], but it delivered to []
     Shared Example Group: "a discussion note email" called from ./spec/mailers/notify_spec.rb:1395
     # ./spec/mailers/notify_spec.rb:1324:in `block (6 levels) in <top (required)>'
     # ./spec/mailers/notify_spec.rb:1322:in `block (5 levels) in <top (required)>'
     # ./spec/spec_helper.rb:449:in `block (3 levels) in <top (required)>'
     # ./lib/gitlab/sidekiq_sharding/validator.rb:42:in `enabled'
     # ./spec/spec_helper.rb:448:in `block (2 levels) in <top (required)>'
     # ./spec/spec_helper.rb:443:in `block (3 levels) in <top (required)>'
     # ./spec/support/sidekiq_middleware.rb:9:in `with_sidekiq_server_middleware'
     # ./spec/spec_helper.rb:433:in `block (2 levels) in <top (required)>'
     # ./spec/spec_helper.rb:429:in `block (3 levels) in <top (required)>'
     # ./lib/gitlab/application_context.rb:70:in `with_raw_context'
     # ./spec/spec_helper.rb:429:in `block (2 levels) in <top (required)>'
     # ./spec/spec_helper.rb:261:in `block (2 levels) in <top (required)>'
     # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'
     # ./spec/support/fast_quarantine.rb:22:in `block (2 levels) in <top (required)>'
     # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'
     # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'
     # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'

  2) Notify for a project items that are noteable, the email for a discussion note on an issue behaves like a discussion note email is sent to the given recipient as the author
     Failure/Error: expect(subject).to deliver_to(recipient.notification_email_or_default)

       expected #<Mail::Message:122997800, Multipart: true, Headers: <From: "author_name (@user417)" <gitlab@localhost>>, <Reply-To: group1 / a-known-name <reply+a8a1c97716588889c1546578c8ec47bd@localhost>>, <To: notifications@example.com>, <Message-ID: <note_170@localhost>>, <In-Reply-To: <issue_1@localhost>>, <References: <reply-a8a1c97716588889c1546578c8ec47bd@localhost>
        <issue_1@localhost>>, <Subject: Re: a-known-name | My title 2 (#1)>, <Mime-Version: 1.0>, <Content-Type: multipart/alternative; charset=UTF-8; boundary="--==_mimepart_66668dd7425a1_1533d541401c9">, <X-GitLab-Project: a-known-name>, <X-GitLab-Project-Id: 1>, <X-GitLab-Project-Path: group1/project-1>, <List-Id: group1/project-1 <1.project-1.group1.localhost>>, <List-Unsubscribe: <http://localhost/-/sent_notifications/a8a1c97716588889c1546578c8ec47bd/unsubscribe?force=true>,<mailto:reply+a8a1c97716588889c1546578c8ec47bd-unsubscribe@localhost>>, <X-GitLab-Issue-ID: 1>, <X-GitLab-Issue-IID: 1>, <X-GitLab-Issue-State: opened>, <X-GitLab-ConfidentialIssue: false>, <X-GitLab-Discussion-ID: 961374390e76a636231a04985da916342c5a2a4a>, <X-GitLab-Reply-Key: a8a1c97716588889c1546578c8ec47bd>> to deliver to ["notifications@example.com"], but it delivered to []
     Shared Example Group: "a discussion note email" called from ./spec/mailers/notify_spec.rb:1428
     # ./spec/mailers/notify_spec.rb:1324:in `block (6 levels) in <top (required)>'
     # ./spec/mailers/notify_spec.rb:1322:in `block (5 levels) in <top (required)>'
     # ./spec/spec_helper.rb:449:in `block (3 levels) in <top (required)>'
     # ./lib/gitlab/sidekiq_sharding/validator.rb:42:in `enabled'
     # ./spec/spec_helper.rb:448:in `block (2 levels) in <top (required)>'
     # ./spec/spec_helper.rb:443:in `block (3 levels) in <top (required)>'
     # ./spec/support/sidekiq_middleware.rb:9:in `with_sidekiq_server_middleware'
     # ./spec/spec_helper.rb:433:in `block (2 levels) in <top (required)>'
     # ./spec/spec_helper.rb:429:in `block (3 levels) in <top (required)>'
     # ./lib/gitlab/application_context.rb:70:in `with_raw_context'
     # ./spec/spec_helper.rb:429:in `block (2 levels) in <top (required)>'
     # ./spec/spec_helper.rb:261:in `block (2 levels) in <top (required)>'
     # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'
     # ./spec/support/fast_quarantine.rb:22:in `block (2 levels) in <top (required)>'
     # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'
     # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'
     # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'

  3) Notify for a project items that are noteable, the email for a diff discussion note on a commit behaves like an email for a note on a diff discussion is sent to the given recipient as the author
     Failure/Error: expect(subject).to deliver_to(recipient.notification_email_or_default)

       expected #<Mail::Message:128771000, Multipart: true, Headers: <From: "author_name (@user446)" <gitlab@localhost>>, <Reply-To: group1 / a-known-name <reply+fd0872b8ea06a0c6ada3b0cc2d8b986f@localhost>>, <To: notifications@example.com>, <Message-ID: <note_200@localhost>>, <In-Reply-To: <commit_570e7b2abdd848b95f2f578043fc23bd6f6fd24d@localhost>>, <References: <reply-fd0872b8ea06a0c6ada3b0cc2d8b986f@localhost>
        <commit_570e7b2abdd848b95f2f578043fc23bd6f6fd24d@localhost>>, <Subject: Re: a-known-name | Change some files (570e7b2a)>, <Mime-Version: 1.0>, <Content-Type: multipart/alternative; charset=UTF-8; boundary="--==_mimepart_66668deaa0b0f_1533d54143059">, <X-GitLab-Project: a-known-name>, <X-GitLab-Project-Id: 1>, <X-GitLab-Project-Path: group1/project-1>, <List-Id: group1/project-1 <1.project-1.group1.localhost>>, <X-GitLab-Commit-ID: 570e7b2abdd848b95f2f578043fc23bd6f6fd24d>, <X-GitLab-Discussion-ID: a1a43f0ddb59c2d44dccaa929f5e0d8a1003adb9>, <X-GitLab-Reply-Key: fd0872b8ea06a0c6ada3b0cc2d8b986f>> to deliver to ["notifications@example.com"], but it delivered to []
     Shared Example Group: "an email for a note on a diff discussion" called from ./spec/mailers/notify_spec.rb:1518
     # ./spec/mailers/notify_spec.rb:1490:in `block (6 levels) in <top (required)>'
     # ./spec/mailers/notify_spec.rb:1488:in `block (5 levels) in <top (required)>'
     # ./spec/spec_helper.rb:449:in `block (3 levels) in <top (required)>'
     # ./lib/gitlab/sidekiq_sharding/validator.rb:42:in `enabled'
     # ./spec/spec_helper.rb:448:in `block (2 levels) in <top (required)>'
     # ./spec/spec_helper.rb:443:in `block (3 levels) in <top (required)>'
     # ./spec/support/sidekiq_middleware.rb:9:in `with_sidekiq_server_middleware'
     # ./spec/spec_helper.rb:433:in `block (2 levels) in <top (required)>'
     # ./spec/spec_helper.rb:429:in `block (3 levels) in <top (required)>'
     # ./lib/gitlab/application_context.rb:70:in `with_raw_context'
     # ./spec/spec_helper.rb:429:in `block (2 levels) in <top (required)>'
     # ./spec/spec_helper.rb:261:in `block (2 levels) in <top (required)>'
     # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'
     # ./spec/support/fast_quarantine.rb:22:in `block (2 levels) in <top (required)>'
     # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'
     # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'
     # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'

  4) Notify for a project items that are noteable, the email for a diff discussion note on a merge request behaves like an email for a note on a diff discussion is sent to the given recipient as the author
     Failure/Error: expect(subject).to deliver_to(recipient.notification_email_or_default)

       expected #<Mail::Message:131765140, Multipart: true, Headers: <From: "author_name (@user460)" <gitlab@localhost>>, <Reply-To: group1 / a-known-name <reply+57d245cd2cd450f3aec860bf60770024@localhost>>, <To: notifications@example.com>, <Message-ID: <note_215@localhost>>, <In-Reply-To: <merge_request_1@localhost>>, <References: <reply-57d245cd2cd450f3aec860bf60770024@localhost>
        <merge_request_1@localhost>>, <Subject: Re: a-known-name | My title 1 (!1)>, <Mime-Version: 1.0>, <Content-Type: multipart/alternative; charset=UTF-8; boundary="--==_mimepart_66668df7ddbc3_1533d5414447b">, <X-GitLab-Project: a-known-name>, <X-GitLab-Project-Id: 1>, <X-GitLab-Project-Path: group1/project-1>, <List-Id: group1/project-1 <1.project-1.group1.localhost>>, <List-Unsubscribe: <http://localhost/-/sent_notifications/57d245cd2cd450f3aec860bf60770024/unsubscribe?force=true>,<mailto:reply+57d245cd2cd450f3aec860bf60770024-unsubscribe@localhost>>, <X-GitLab-MergeRequest-ID: 1>, <X-GitLab-MergeRequest-IID: 1>, <X-GitLab-MergeRequest-State: opened>, <X-GitLab-Discussion-ID: 227614205650a7703a54e0258203d275ecacf479>, <X-GitLab-Reply-Key: 57d245cd2cd450f3aec860bf60770024>> to deliver to ["notifications@example.com"], but it delivered to []
     Shared Example Group: "an email for a note on a diff discussion" called from ./spec/mailers/notify_spec.rb:1530
     # ./spec/mailers/notify_spec.rb:1490:in `block (6 levels) in <top (required)>'
     # ./spec/mailers/notify_spec.rb:1488:in `block (5 levels) in <top (required)>'
     # ./spec/spec_helper.rb:449:in `block (3 levels) in <top (required)>'
     # ./lib/gitlab/sidekiq_sharding/validator.rb:42:in `enabled'
     # ./spec/spec_helper.rb:448:in `block (2 levels) in <top (required)>'
     # ./spec/spec_helper.rb:443:in `block (3 levels) in <top (required)>'
     # ./spec/support/sidekiq_middleware.rb:9:in `with_sidekiq_server_middleware'
     # ./spec/spec_helper.rb:433:in `block (2 levels) in <top (required)>'
     # ./spec/spec_helper.rb:429:in `block (3 levels) in <top (required)>'
     # ./lib/gitlab/application_context.rb:70:in `with_raw_context'
     # ./spec/spec_helper.rb:429:in `block (2 levels) in <top (required)>'
     # ./spec/spec_helper.rb:261:in `block (2 levels) in <top (required)>'
     # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'
     # ./spec/support/fast_quarantine.rb:22:in `block (2 levels) in <top (required)>'
     # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'
     # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'
     # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'

  5) Create a work item when user has permissions to create a work item when creating work items in a project with namespacePath when the namespace_level_work_items feature flag is disabled behaves like creates work item with labels widget input when setting labels on work item creation sets the work item's labels
     Failure/Error:
       expect(mutation_response['workItem']['widgets']).to include(
         'labels' => { 'nodes' => label_ids.map { |l| { 'id' => l } } },
         'type' => 'LABELS'
       )

       expected [{"type" => "ASSIGNEES"}, {"labels" => {"nodes" => [{"id" => "gid://gitlab/GroupLabel/231"}, {"id" => "gid://gi...ype" => "AWARD_EMOJI"}, {"type" => "LINKED_ITEMS"}, {"type" => "PARTICIPANTS"}, {"type" => "TIME_TRACKING"}] to include {"labels" => {"nodes" => [{"id" => "gid://gitlab/GroupLabel/230"}, {"id" => "gid://gitlab/GroupLabel/231"}]}, "type" => "LABELS"}
       Diff:
       @@ -1,3 +1,18 @@
       -"labels" => {"nodes"=>[{"id"=>"gid://gitlab/GroupLabel/230"}, {"id"=>"gid://gitlab/GroupLabel/231"}]},
       -"type" => "LABELS",
       +[{"type"=>"ASSIGNEES"},
       + {"labels"=>
       +   {"nodes"=>
       +     [{"id"=>"gid://gitlab/GroupLabel/231"},
       +      {"id"=>"gid://gitlab/GroupLabel/230"}]},
       +  "type"=>"LABELS"},
       + {"type"=>"DESCRIPTION"},
       + {"type"=>"HIERARCHY"},
       + {"type"=>"START_AND_DUE_DATE"},
       + {"type"=>"MILESTONE"},
       + {"type"=>"NOTES"},
       + {"type"=>"NOTIFICATIONS"},
       + {"type"=>"CURRENT_USER_TODOS"},
       + {"type"=>"AWARD_EMOJI"},
       + {"type"=>"LINKED_ITEMS"},
       + {"type"=>"PARTICIPANTS"},
       + {"type"=>"TIME_TRACKING"}]
     Shared Example Group: "creates work item" called from ./spec/requests/api/graphql/mutations/work_items/create_spec.rb:366
     # ./spec/requests/api/graphql/mutations/work_items/create_spec.rb:330:in `block (5 levels) in <top (required)>'
     # ./spec/spec_helper.rb:449:in `block (3 levels) in <top (required)>'
     # ./lib/gitlab/sidekiq_sharding/validator.rb:42:in `enabled'
     # ./spec/spec_helper.rb:448:in `block (2 levels) in <top (required)>'
     # ./spec/spec_helper.rb:443:in `block (3 levels) in <top (required)>'
     # ./spec/support/sidekiq_middleware.rb:9:in `with_sidekiq_server_middleware'
     # ./spec/spec_helper.rb:433:in `block (2 levels) in <top (required)>'
     # ./spec/spec_helper.rb:429:in `block (3 levels) in <top (required)>'
     # ./lib/gitlab/application_context.rb:70:in `with_raw_context'
     # ./spec/spec_helper.rb:429:in `block (2 levels) in <top (required)>'
     # ./spec/spec_helper.rb:261:in `block (2 levels) in <top (required)>'
     # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'
     # ./spec/support/fast_quarantine.rb:22:in `block (2 levels) in <top (required)>'
     # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'
     # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'
     # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'

Finished in 31 minutes 46 seconds (files took 1 minute 18.77 seconds to load)
3022 examples, 5 failures, 5 pending

Failed examples:

rspec './spec/mailers/notify_spec.rb[1:2:15:2:1:2]' # Notify for a project items that are noteable, the email for a discussion note on a merge request behaves like a discussion note email is sent to the given recipient as the author
rspec './spec/mailers/notify_spec.rb[1:2:15:3:1:2]' # Notify for a project items that are noteable, the email for a discussion note on an issue behaves like a discussion note email is sent to the given recipient as the author
rspec './spec/mailers/notify_spec.rb[1:2:16:1:1:6]' # Notify for a project items that are noteable, the email for a diff discussion note on a commit behaves like an email for a note on a diff discussion is sent to the given recipient as the author
rspec './spec/mailers/notify_spec.rb[1:2:16:2:1:6]' # Notify for a project items that are noteable, the email for a diff discussion note on a merge request behaves like an email for a note on a diff discussion is sent to the given recipient as the author
rspec './spec/requests/api/graphql/mutations/work_items/create_spec.rb[1:2:1:2:2:1:7:1:1]' # Create a work item when user has permissions to create a work item when creating work items in a project with namespacePath when the namespace_level_work_items feature flag is disabled behaves like creates work item with labels widget input when setting labels on work item creation sets the work item's labels

Randomized with seed 27191

Stopped processing SimpleCov as a previous error not related to SimpleCov has been detected
[TEST PROF INFO] Time spent in factories: 09:03.413 (28.39% of total time)
RSpec exited with 1.
[job-metrics] Updating job metrics tag for the CI/CD job.
RSPEC_RETRIED_TESTS_REPORT_PATH: rspec/retried_tests-7055069098.txt
Retrying the failing examples in a new RSpec process...
$ gem install junit_merge --no-document --version 0.1.2
Successfully installed nokogiri-1.16.5-x86_64-linux
Successfully installed junit_merge-0.1.2
2 gems installed
==> 'gem install junit_merge --no-document --version 0.1.2' succeeded in 1 seconds.
Running RSpec command: bin/rspec -Ispec -rspec_helper --color --failure-exit-code 1 --error-exit-code 2 --format documentation --format Support::Formatters::JsonFormatter --out rspec/rspec-retry-7055069098.json --format RspecJunitFormatter --out rspec/rspec-retry-7055069098.xml --only-failures --pattern "spec/{commands,controllers,mailers,requests}{,/**/}*_spec.rb"
warning: parser/current is loading parser/ruby31, which recognizes 3.1.4-compliant syntax, but you are running 3.1.5.
Please see https://github.com/whitequark/parser#compatibility-with-ruby-mri.
Run options: include {:last_run_status=>"failed"}

# [RSpecRunTime] Starting RSpec timer...
[TEST PROF INFO] EventProf enabled (sql.active_record)
unknown OID 2249: failed to recognize type of 'pg_stat_file'. It will be treated as String.
unknown OID 2249: failed to recognize type of 'pg_stat_file'. It will be treated as String.

Test environment set up in 0.663252744 seconds
# [RSpecRunTime] Starting example group spec/mailers/notify_spec.rb. Expected to take 8 minutes 56.75 seconds.

Notify
  for a project
    items that are noteable, the email for a discussion note
      on a merge request
        behaves like a discussion note email
          is sent to the given recipient as the author
      on an issue
        behaves like a discussion note email
          is sent to the given recipient as the author
    items that are noteable, the email for a diff discussion note
      on a commit
        behaves like an email for a note on a diff discussion
          is sent to the given recipient as the author
      on a merge request
        behaves like an email for a note on a diff discussion
          is sent to the given recipient as the author

# [RSpecRunTime] Finishing example group spec/mailers/notify_spec.rb. It took 9.36 seconds. Expected to take 8 minutes 56.75 seconds.
# [RSpecRunTime] RSpec elapsed time: 18.22 seconds. Current RSS: ~1232M. Threads: 4. load average: 1.10 1.10 1.10 1/288 9300
.

# [RSpecRunTime] Starting example group spec/requests/api/graphql/mutations/work_items/create_spec.rb. Expected to take 40.09 seconds.

Create a work item
  when user has permissions to create a work item
    when creating work items in a project
      with namespacePath
        when the namespace_level_work_items feature flag is disabled
          behaves like creates work item
            with labels widget input
              when setting labels on work item creation
                sets the work item's labels
# [RSpecRunTime] RSpec elapsed time: 20.26 seconds. Current RSS: ~1239M. Threads: 5. load average: 1.09 1.10 1.10 1/290 9302
.


# [RSpecRunTime] Finishing example group spec/requests/api/graphql/mutations/work_items/create_spec.rb. It took 2.21 seconds. Expected to take 40.09 seconds.
auto_explain log contains 1642 entries for main, writing to /builds/gitlab-org/gitlab/auto_explain/rspec-integration-pg14-6-16.9050.main.ndjson.gz
took 33.969081855
auto_explain log contains 1642 entries for ci, writing to /builds/gitlab-org/gitlab/auto_explain/rspec-integration-pg14-6-16.9050.ci.ndjson.gz
took 33.341838977
[TEST PROF INFO] EventProf results for sql.active_record

Total time: 00:02.885 of 00:11.621 (24.83%)
Total events: 1514

Top 5 slowest suites (by time):

Notify (./spec/mailers/notify_spec.rb:6) – 00:02.179 (1020 / 4) of 00:09.414 (23.15%)
Create a work item (./spec/requests/api/graphql/mutations/work_items/create_spec.rb:5) – 00:00.706 (494 / 1) of 00:02.207 (32.0%)


Finished in 1 minute 27.93 seconds (files took 1 minute 2.66 seconds to load)
5 examples, 0 failures

[TEST PROF INFO] Time spent in factories: 00:06.640 (7.24% of total time)
Loading rspec/rspec-7055069098.json...
Merged rspec/rspec-retry-7055069098.json adding 4 results.
Saved rspec/rspec-7055069098.json.
A test was flaky and succeeded after being retried. Checking to see if flaky test is part of this MR...
Flaky test was not part of this MR.
section_end:1717998693:step_script
section_start:1717998693:after_script
Running after_script
Running after script...
$ source scripts/utils.sh
$ bundle exec gem list gitlab_quality-test_tooling
gitlab_quality-test_tooling (1.28.0)
$ section_start "failed-test-issues" "Report test failures" # collapsed multi-line command
section_start:1717998695:failed-test-issues[collapsed=true]
Report test failures
Reporting failed tests in `rspec/rspec-retry-7055069098.json` as issues in project `gitlab-org/gitlab` via the API at `https://gitlab.com/api/v4`.
=> Reporting 5 tests in rspec/rspec-retry-7055069098.json
section_end:1717998697:failed-test-issues

$ section_start "flaky-test-issues" "Report test flakiness" # collapsed multi-line command
section_start:1717998697:flaky-test-issues[collapsed=true]
Report test flakiness
Reporting flaky tests in `rspec/rspec-retry-7055069098.json` as issues in project `gitlab-org/gitlab` via the API at `https://gitlab.com/api/v4`.
=> Reporting 5 tests in rspec/rspec-retry-7055069098.json
 => Reporting flakiness for test 'Notify for a project items that are noteable, the email for a discussion note on a merge request behaves like a discussion note email is sent to the given recipient as the author'...
   => Adding the flaky test to the existing issue: https://gitlab.com/gitlab-org/gitlab/-/issues/464577
 => Reporting flakiness for test 'Notify for a project items that are noteable, the email for a discussion note on an issue behaves like a discussion note email is sent to the given recipient as the author'...
   => Adding the flaky test to the existing issue: https://gitlab.com/gitlab-org/gitlab/-/issues/464578
 => Reporting flakiness for test 'Notify for a project items that are noteable, the email for a diff discussion note on a commit behaves like an email for a note on a diff discussion is sent to the given recipient as the author'...
   => Adding the flaky test to the existing issue: https://gitlab.com/gitlab-org/gitlab/-/issues/464579
 => Reporting flakiness for test 'Notify for a project items that are noteable, the email for a diff discussion note on a merge request behaves like an email for a note on a diff discussion is sent to the given recipient as the author'...
   => Adding the flaky test to the existing issue: https://gitlab.com/gitlab-org/gitlab/-/issues/464580
 => Reporting flakiness for test 'Create a work item when user has permissions to create a work item when creating work items in a project with namespacePath when the namespace_level_work_items feature flag is disabled behaves like creates work item with labels widget input when setting labels on work item creation sets the work item's labels'...
   => Adding the flaky test to the existing issue: https://gitlab.com/gitlab-org/gitlab/-/issues/466367
section_end:1717998736:flaky-test-issues

$ section_start "slow-test-issues" "Report test slowness" # collapsed multi-line command
section_start:1717998736:slow-test-issues[collapsed=true]
Report test slowness
Reporting slow tests in `rspec/rspec-*.json` as issues in project `gitlab-org/gitlab` via the API at `https://gitlab.com/api/v4`.
=> Reporting 5 tests in rspec/rspec-7055069098.json
=> Reporting 5 tests in rspec/rspec-retry-7055069098.json
section_end:1717998738:slow-test-issues

$ section_start "slow-test-merge-request-report-note" "Report test slowness in MR note" # collapsed multi-line command
section_start:1717998738:slow-test-merge-request-report-note[collapsed=true]
Report test slowness in MR note
Not reporting test slowness in MR note because $ADD_SLOW_TEST_NOTE_TO_MERGE_REQUEST != 'true'
section_end:1717998738:slow-test-merge-request-report-note

$ section_start "knapsack-report-issues" "Report test files close to timing out" # collapsed multi-line command
section_start:1717998738:knapsack-report-issues[collapsed=true]
Report test files close to timing out
Reporting spec file exceeding Knapsack expectaton issues in project `gitlab-org/gitlab` via the API at `https://gitlab.com/api/v4`.
=> Reporting 0 spec files exceeding Knapsack expectation.
section_end:1717998739:knapsack-report-issues

$ tooling/bin/push_job_metrics || true
[job-metrics] Pushing job metrics file for the CI/CD job.
[job-metrics] Pushed 4 CI job metric entries to InfluxDB.
section_end:1717998740:after_script
section_start:1717998740:archive_cache
Saving cache for successful job
Not uploading cache ruby-gems-debian-bookworm-ruby-3.1.5-17 due to policy
section_end:1717998741:archive_cache
section_start:1717998741:upload_artifacts_on_success
Uploading artifacts for successful job
Uploading artifacts...
auto_explain/: found 5 matching artifact files and directories 
coverage/: found 4 matching artifact files and directories 
WARNING: crystalball/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 
deprecations/: found 4 matching artifact files and directories 
knapsack/: found 4 matching artifact files and directories 
rspec/: found 15 matching artifact files and directories 
WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 
log/*.log: found 23 matching artifact files and directories 
WARNING: Upload request redirected                  location=https://gitlab.com/api/v4/jobs/7055069098/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com
WARNING: Retrying...                                context=artifacts-uploader error=request redirected
Uploading artifacts as "archive" to coordinator... 201 Created  id=7055069098 responseStatus=201 Created token=glcbt-65
Uploading artifacts...
rspec/rspec-*.xml: found 2 matching artifact files and directories 
WARNING: Upload request redirected                  location=https://gitlab.com/api/v4/jobs/7055069098/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com
WARNING: Retrying...                                context=artifacts-uploader error=request redirected
Uploading artifacts as "junit" to coordinator... 201 Created  id=7055069098 responseStatus=201 Created token=glcbt-65
section_end:1717998747:upload_artifacts_on_success
section_start:1717998747:cleanup_file_variables
Cleaning up project directory and file based variables
section_end:1717998747:cleanup_file_variables
Job succeeded