rspec integration pg12 10/10
Passed Started
by
@splattael
Peter Leitzen
1Running with gitlab-runner 15.1.0~beta.20.g62206bb2 (62206bb2)2 on blue-1.shared-gitlab-org.runners-manager.gitlab.com/default KzYhZxBv3 feature flags: FF_USE_FASTZIP:true6Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-101-yarn-1.22-graphicsmagick-1.3.36 ...7Starting service postgres:12 ...8Pulling docker image postgres:12 ...9Using docker image sha256:ac3b8cd6a8b42e839456256bc514d6230b5a2538c738b3d522e1384a2a172b96 for postgres:12 with digest postgres@sha256:e6ffad42c91a4d5a29257a27ac4e160c3ae7196696b37bf2e80410024ed95951 ...10Starting service redis:6.0-alpine ...11Pulling docker image redis:6.0-alpine ...12Using docker image sha256:09401fed2a421bf0019f96dcec70c85f82ec7b76beb1ae589547b0dc302d6b76 for redis:6.0-alpine with digest redis@sha256:217a9db40a914cc3f6206a143a4d750da0607500cc013a147a4979e08e40beff ...13Waiting for services to be up and running (timeout 30 seconds)...14Authenticating with credentials from job payload (GitLab Registry)15Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-101-yarn-1.22-graphicsmagick-1.3.36 ...16Using docker image sha256:1c23a0bd0711f9f7944305c4b25ce8e4301c16167671a7873aad77579270806d for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-101-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12@sha256:d0052322332df372b949caf19e910c0ce6859c1e7ed29ff609ebec91b1dead87 ...18Running on runner-kzyhzxbv-project-278964-concurrent-0 via runner-kzyhzxbv-shared-gitlab-org-1656526390-164c35ef...20$ eval "$CI_PRE_CLONE_SCRIPT"21Fetching changes with git depth set to 20...22Initialized empty Git repository in /builds/gitlab-org/gitlab/.git/23Created fresh repository.24remote: Enumerating objects: 108133, done. 25remote: Counting objects: 100% (108133/108133), done. 26remote: Compressing objects: 100% (78029/78029), done. 27remote: Total 108133 (delta 41971), reused 69318 (delta 25782), pack-reused 0 28Receiving objects: 100% (108133/108133), 107.22 MiB | 28.86 MiB/s, done.29Resolving deltas: 100% (41971/41971), done.31 * [new ref] refs/pipelines/576349587 -> refs/pipelines/57634958732Checking out ab4209a5 as refs/merge-requests/91088/merge...33Skipping Git submodules setup34$ git remote set-url origin "${CI_REPOSITORY_URL}"36Checking cache for ruby-gems-debian-bullseye-ruby-2.7-10...37cache.zip is up to date 38Successfully extracted cache39Checking cache for gitaly-ruby-gems-debian-bullseye-ruby-2.7-10...40cache.zip is up to date 41Successfully extracted cache43Downloading artifacts for compile-test-assets (2658553241)...44Downloading artifacts from coordinator... ok id=2658553241 responseStatus=200 OK token=NtmVaxDm45Downloading artifacts for detect-tests (2658553263)...46Downloading artifacts from coordinator... ok id=2658553263 responseStatus=200 OK token=NtmVaxDm47Downloading artifacts for retrieve-tests-metadata (2658553268)...48Downloading artifacts from coordinator... ok id=2658553268 responseStatus=200 OK token=NtmVaxDm49Downloading artifacts for setup-test-env (2658553255)...50Downloading artifacts from coordinator... ok id=2658553255 responseStatus=200 OK token=NtmVaxDm52Using docker image sha256:1c23a0bd0711f9f7944305c4b25ce8e4301c16167671a7873aad77579270806d for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-101-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12@sha256:d0052322332df372b949caf19e910c0ce6859c1e7ed29ff609ebec91b1dead87 ...53$ echo $FOSS_ONLY54$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb55$ export GOPATH=$CI_PROJECT_DIR/.go56$ mkdir -p $GOPATH57$ source scripts/utils.sh58$ source scripts/prepare_build.sh593.2.3360Bundler version 2.2.3361Successfully installed bundler-2.3.15621 gem installed63production:development64Settings are listed in order of priority. The top value will be used.65clean66Set for your local app (/builds/gitlab-org/gitlab/.bundle/config): true67frozen68Set via BUNDLE_FROZEN: true69install_flags70Set via BUNDLE_INSTALL_FLAGS: "--jobs=$(nproc) --retry=3 --quiet"71path72Set for your local app (/builds/gitlab-org/gitlab/.bundle/config): "/builds/gitlab-org/gitlab/vendor"73without74Set via BUNDLE_WITHOUT: [:production, :development]75$ bundle install --jobs=$(nproc) --retry=3 --quiet && bundle check76Don't run Bundler as root. Bundler can ask for sudo if it is needed, and77installing your bundle as root will break this application for all non-root78users on this machine.79The Gemfile's dependencies are satisfied80==> 'bundle install --jobs=$(nproc) --retry=3 --quiet && bundle check' succeeded in 2 seconds.81$ bundle pristine pg82Installing pg 1.3.5 with native extensions83==> 'bundle pristine pg' succeeded in 11 seconds.84Using decomposed database config (config/database.yml.decomposed-postgresql)85$ setup_db_user_only86CREATE ROLE87GRANT88==> 'setup_db_user_only' succeeded in 0 seconds.89$ bundle exec rake db:drop db:create db:schema:load db:migrate90Dropped database 'gitlabhq_test'91Dropped database 'gitlabhq_test_ci'92Dropped database 'gitlabhq_geo_test'93Created database 'gitlabhq_test'94Created database 'gitlabhq_test_ci'95Created database 'gitlabhq_geo_test'96==> 'bundle exec rake db:drop db:create db:schema:load db:migrate' succeeded in 39 seconds.97$ setup_db_praefect98SELECT pg_catalog.set_config('search_path', '', false);99CREATE DATABASE praefect_test ENCODING 'UTF8';100==> 'setup_db_praefect' succeeded in 0 seconds.101$ run_timed_command "gem install knapsack --no-document"102$ gem install knapsack --no-document103Successfully installed knapsack-4.0.01041 gem installed105==> 'gem install knapsack --no-document' succeeded in 0 seconds.106$ run_timed_command "scripts/gitaly-test-spawn"107$ scripts/gitaly-test-spawn108find: ‘/builds/gitlab-org/gitlab/tmp/tests/gitaly/cmd’: No such file or directory109Don't run Bundler as root. Bundler can ask for sudo if it is needed, and110installing your bundle as root will break this application for all non-root111users on this machine.112Using abstract_type 0.0.7113Using concurrent-ruby 1.1.10114Using i18n 1.10.0115Using minitest 5.15.0116Using tzinfo 2.0.4117Using zeitwerk 2.5.4118Using activesupport 6.1.4.7119Using builder 3.2.4120Using erubi 1.10.0121Using mini_portile2 2.8.0122Using racc 1.6.0123Using nokogiri 1.13.6 (x86_64-linux)124Using rails-dom-testing 2.0.3125Using crass 1.0.6126Using loofah 2.16.0127Using rails-html-sanitizer 1.4.2128Using actionview 6.1.4.7129Using rack 2.2.3130Using rack-test 1.1.0131Using actionpack 6.1.4.7132Using ice_nine 0.11.2133Using thread_safe 0.3.6134Using memoizable 0.4.2135Using adamantium 0.2.0136Using public_suffix 4.0.6137Using addressable 2.7.0138Using ast 2.4.2139Using binding_ninja 0.2.3140Using bundler 2.3.15141Using charlock_holmes 0.7.7142Using coderay 1.1.2143Using equalizer 0.0.11144Using concord 0.1.5145Using diff-lcs 1.3146Using dotenv 2.7.6147Using escape_utils 1.2.1148Using factory_bot 5.0.2149Using multipart-post 2.1.1150Using faraday 1.0.1151Using ffi 1.15.3152Using json 2.5.1153Using gemojione 3.3.0154Using mini_mime 1.0.2155Using rugged 1.2.0156Using github-linguist 7.12.1157Using github-markup 1.7.0158Using mime-types-data 3.2020.1104159Using mime-types 3.3.1160Using gitlab-gollum-rugged_adapter 0.4.4.4.gitlab.1161Using rouge 3.27.0162Using sanitize 6.0.0163Using stringex 2.8.5164Using gitlab-gollum-lib 4.2.7.10.gitlab.2165Using google-protobuf 3.19.1 (x86_64-linux)166Using googleapis-common-protos-types 1.3.0167Using grpc 1.42.0 (x86_64-linux)168Using opentracing 0.5.0169Using thrift 0.15.0170Using jaeger-client 1.1.0171Using pg_query 2.1.1172Using redis 4.4.0173Using gitlab-labkit 0.21.2174Using rubyzip 2.3.2175Using thor 1.1.0176Using tomlrb 2.0.1177Using with_env 1.1.0178Using rexml 3.2.5179Using xml-simple 1.1.9180Using gitlab-license_finder 6.14.2.1181Using gitlab-markup 1.7.1182Using grpc-tools 1.42.0183Using sawyer 0.8.2184Using octokit 4.20.0185Using reverse_markdown 1.4.0186Using licensee 9.14.1187Using method_source 0.9.2188Using msgpack 1.3.3189Using optimist 3.0.1190Using parallel 1.19.2191Using parser 3.0.3.2192Using procto 0.0.3193Using unparser 0.4.7194Using proc_to_ast 0.1.0195Using pry 0.12.2196Using rainbow 3.0.0197Using rbtrace 0.4.14198Using rdoc 6.3.2199Using regexp_parser 1.8.1200Using rspec-support 3.8.0201Using rspec-core 3.8.0202Using rspec-expectations 3.8.3203Using rspec-mocks 3.8.0204Using rspec 3.8.0205Using rspec-parameterized 0.4.2206Using rubocop-ast 0.2.0207Using ruby-progressbar 1.10.1208Using unicode-display_width 1.7.0209Using rubocop 0.86.0210Using sentry-raven 3.0.4211Using timecop 0.9.1212Bundle complete! 22 Gemfile dependencies, 100 gems now installed.213Gems in the groups 'production' and 'development' were not installed.214Bundled gems are installed into `/builds/gitlab-org/gitlab/vendor/gitaly-ruby`215Checking gitaly-ruby Gemfile...216Checking gitaly-ruby bundle...217The Gemfile's dependencies are satisfied218Trying to connect to gitaly: ........................................... OK219Trying to connect to gitaly2: ................................................................ OK220Starting Praefect with in-memory election strategyTrying to connect to praefect: ........ OK221==> 'scripts/gitaly-test-spawn' succeeded in 13 seconds.222$ source ./scripts/rspec_helpers.sh223$ rspec_paralellized_job "--tag ~quarantine --tag ~level:migration"224SKIP_FLAKY_TESTS_AUTOMATICALLY: true225RETRY_FAILED_TESTS_IN_NEW_PROCESS: true226KNAPSACK_GENERATE_REPORT: true227FLAKY_RSPEC_GENERATE_REPORT: true228KNAPSACK_TEST_FILE_PATTERN: spec/{commands,controllers,mailers,requests}{,/**/}*_spec.rb229KNAPSACK_LOG_LEVEL: debug230KNAPSACK_REPORT_PATH: knapsack/rspec_integration_pg12_10_10_report.json231FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json232FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_integration_pg12_10_10_report.json233NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_integration_pg12_10_10_report.json234SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec_integration_pg12_10_10_report.txt235RETRIED_TESTS_REPORT_PATH: rspec/flaky/retried_tests_rspec_integration_pg12_10_10_report.txt236CRYSTALBALL: 237Knapsack node specs:238spec/requests/git_http_spec.rb239spec/requests/api/maven_packages_spec.rb240spec/requests/api/users_spec.rb241spec/requests/api/branches_spec.rb242spec/controllers/projects/clusters_controller_spec.rb243spec/controllers/projects/branches_controller_spec.rb244spec/requests/api/ci/triggers_spec.rb245spec/controllers/admin/instance_review_controller_spec.rb246spec/controllers/groups/children_controller_spec.rb247spec/requests/api/issues/post_projects_issues_spec.rb248spec/controllers/ldap/omniauth_callbacks_controller_spec.rb249spec/controllers/admin/users_controller_spec.rb250spec/controllers/omniauth_callbacks_controller_spec.rb251spec/controllers/projects/feature_flags_controller_spec.rb252spec/requests/api/project_import_spec.rb253spec/requests/api/project_milestones_spec.rb254spec/requests/api/graphql/project/merge_request_spec.rb255spec/controllers/dashboard/todos_controller_spec.rb256spec/controllers/groups/registry/repositories_controller_spec.rb257spec/requests/api/unleash_spec.rb258spec/requests/api/package_files_spec.rb259spec/controllers/projects/tags_controller_spec.rb260spec/requests/api/issue_links_spec.rb261spec/requests/api/project_hooks_spec.rb262spec/requests/api/group_import_spec.rb263spec/requests/projects/clusters/integrations_controller_spec.rb264spec/requests/api/markdown_golden_master_spec.rb265spec/requests/api/graphql/project/pipeline_spec.rb266spec/requests/api/system_hooks_spec.rb267spec/requests/api/clusters/agents_spec.rb268spec/controllers/concerns/metrics_dashboard_spec.rb269spec/requests/api/graphql/mutations/award_emojis/add_spec.rb270spec/controllers/projects/todos_controller_spec.rb271spec/controllers/projects/performance_monitoring/dashboards_controller_spec.rb272spec/requests/api/graphql/mutations/issues/set_crm_contacts_spec.rb273spec/mailers/emails/pipelines_spec.rb274spec/requests/api/applications_spec.rb275spec/requests/api/graphql/packages/composer_spec.rb276spec/controllers/projects/alerting/notifications_controller_spec.rb277spec/requests/api/container_repositories_spec.rb278spec/requests/api/graphql/work_item_spec.rb279spec/controllers/import/bulk_imports_controller_spec.rb280spec/requests/api/graphql/mutations/packages/cleanup/policy/update_spec.rb281spec/requests/api/graphql/mutations/issues/update_spec.rb282spec/requests/api/ci/runner/runners_post_spec.rb283spec/controllers/concerns/sourcegraph_decorator_spec.rb284spec/requests/api/graphql/mutations/merge_requests/update_reviewer_state_spec.rb285spec/requests/api/graphql/mutations/labels/create_spec.rb286spec/requests/api/graphql/mutations/work_items/create_from_task_spec.rb287spec/requests/api/graphql/mutations/design_management/move_spec.rb288spec/requests/api/graphql/mutations/todos/mark_done_spec.rb289spec/requests/api/bulk_imports_spec.rb290spec/requests/api/graphql/mutations/boards/lists/destroy_spec.rb291spec/controllers/admin/runners_controller_spec.rb292spec/requests/api/graphql/mutations/todos/restore_spec.rb293spec/controllers/projects/pipelines/stages_controller_spec.rb294spec/controllers/projects/import/jira_controller_spec.rb295spec/requests/abuse_reports_controller_spec.rb296spec/requests/api/graphql/mutations/issues/move_spec.rb297spec/requests/api/graphql/project/alert_management/alert/assignees_spec.rb298spec/mailers/repository_check_mailer_spec.rb299spec/controllers/admin/runner_projects_controller_spec.rb300spec/requests/groups/settings/applications_controller_spec.rb301spec/controllers/projects/learn_gitlab_controller_spec.rb302spec/controllers/profiles/preferences_controller_spec.rb303spec/requests/api/internal/lfs_spec.rb304spec/controllers/projects/error_tracking/projects_controller_spec.rb305spec/requests/admin/applications_controller_spec.rb306spec/requests/projects/incident_management/pagerduty_incidents_spec.rb307spec/requests/api/graphql/ci/ci_cd_setting_spec.rb308spec/requests/api/graphql/mutations/todos/create_spec.rb309spec/requests/admin/integrations_controller_spec.rb310spec/requests/api/graphql/multiplexed_queries_spec.rb311spec/controllers/projects/web_ide_schemas_controller_spec.rb312spec/controllers/jira_connect/branches_controller_spec.rb313spec/requests/api/graphql/mutations/dependency_proxy/group_settings/update_spec.rb314spec/requests/api/graphql/mutations/release_asset_links/delete_spec.rb315spec/requests/api/graphql/project/container_expiration_policy_spec.rb316spec/controllers/concerns/spammable_actions/captcha_check/json_format_actions_support_spec.rb317spec/controllers/every_controller_spec.rb318spec/controllers/admin/gitaly_servers_controller_spec.rb319spec/requests/runner_setup_controller_spec.rb320Filter specs:321Running specs:322Running all node tests without filter323spec/requests/git_http_spec.rb324spec/requests/api/maven_packages_spec.rb325spec/requests/api/users_spec.rb326spec/requests/api/branches_spec.rb327spec/controllers/projects/clusters_controller_spec.rb328spec/controllers/projects/branches_controller_spec.rb329spec/requests/api/ci/triggers_spec.rb330spec/controllers/admin/instance_review_controller_spec.rb331spec/controllers/groups/children_controller_spec.rb332spec/requests/api/issues/post_projects_issues_spec.rb333spec/controllers/ldap/omniauth_callbacks_controller_spec.rb334spec/controllers/admin/users_controller_spec.rb335spec/controllers/omniauth_callbacks_controller_spec.rb336spec/controllers/projects/feature_flags_controller_spec.rb337spec/requests/api/project_import_spec.rb338spec/requests/api/project_milestones_spec.rb339spec/requests/api/graphql/project/merge_request_spec.rb340spec/controllers/dashboard/todos_controller_spec.rb341spec/controllers/groups/registry/repositories_controller_spec.rb342spec/requests/api/unleash_spec.rb343spec/requests/api/package_files_spec.rb344spec/controllers/projects/tags_controller_spec.rb345spec/requests/api/issue_links_spec.rb346spec/requests/api/project_hooks_spec.rb347spec/requests/api/group_import_spec.rb348spec/requests/projects/clusters/integrations_controller_spec.rb349spec/requests/api/markdown_golden_master_spec.rb350spec/requests/api/graphql/project/pipeline_spec.rb351spec/requests/api/system_hooks_spec.rb352spec/requests/api/clusters/agents_spec.rb353spec/controllers/concerns/metrics_dashboard_spec.rb354spec/requests/api/graphql/mutations/award_emojis/add_spec.rb355spec/controllers/projects/todos_controller_spec.rb356spec/controllers/projects/performance_monitoring/dashboards_controller_spec.rb357spec/requests/api/graphql/mutations/issues/set_crm_contacts_spec.rb358spec/mailers/emails/pipelines_spec.rb359spec/requests/api/applications_spec.rb360spec/requests/api/graphql/packages/composer_spec.rb361spec/controllers/projects/alerting/notifications_controller_spec.rb362spec/requests/api/container_repositories_spec.rb363spec/requests/api/graphql/work_item_spec.rb364spec/controllers/import/bulk_imports_controller_spec.rb365spec/requests/api/graphql/mutations/packages/cleanup/policy/update_spec.rb366spec/requests/api/graphql/mutations/issues/update_spec.rb367spec/requests/api/ci/runner/runners_post_spec.rb368spec/controllers/concerns/sourcegraph_decorator_spec.rb369spec/requests/api/graphql/mutations/merge_requests/update_reviewer_state_spec.rb370spec/requests/api/graphql/mutations/labels/create_spec.rb371spec/requests/api/graphql/mutations/work_items/create_from_task_spec.rb372spec/requests/api/graphql/mutations/design_management/move_spec.rb373spec/requests/api/graphql/mutations/todos/mark_done_spec.rb374spec/requests/api/bulk_imports_spec.rb375spec/requests/api/graphql/mutations/boards/lists/destroy_spec.rb376spec/controllers/admin/runners_controller_spec.rb377spec/requests/api/graphql/mutations/todos/restore_spec.rb378spec/controllers/projects/pipelines/stages_controller_spec.rb379spec/controllers/projects/import/jira_controller_spec.rb380spec/requests/abuse_reports_controller_spec.rb381spec/requests/api/graphql/mutations/issues/move_spec.rb382spec/requests/api/graphql/project/alert_management/alert/assignees_spec.rb383spec/mailers/repository_check_mailer_spec.rb384spec/controllers/admin/runner_projects_controller_spec.rb385spec/requests/groups/settings/applications_controller_spec.rb386spec/controllers/projects/learn_gitlab_controller_spec.rb387spec/controllers/profiles/preferences_controller_spec.rb388spec/requests/api/internal/lfs_spec.rb389spec/controllers/projects/error_tracking/projects_controller_spec.rb390spec/requests/admin/applications_controller_spec.rb391spec/requests/projects/incident_management/pagerduty_incidents_spec.rbKnapsack report generator started!392DEPRECATION WARNING: /builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/activerecord-6.1.4.7/lib/active_record/connection_adapters/postgresql_adapter.rb:78: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call393/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/pg-1.3.5/lib/pg.rb:68: warning: The called method `connect' is defined here394 (called from new_client at /builds/gitlab-org/gitlab/config/initializers/00_connection_logger.rb:21)395Run options: exclude {:quarantine=>true, :level=>"migration"}396==> /builds/gitlab-org/gitlab/tmp/tests/gitlab-test_bare set up in 0.332302203 seconds...397Test environment set up in 0.900832993 seconds398Git HTTP requests399 User with no identities400 when the project doesn't exist401 when namespace doesn't exist402 behaves like pulls require Basic HTTP Authentication403 when no credentials are provided404 responds to downloads with status 401 Unauthorized (no project existence information leak)405 when only username is provided406 responds to downloads with status 401 Unauthorized407 when username and password are provided408 when authentication fails409 responds to downloads with status 401 Unauthorized410 when user is blocked411 responds to downloads with status 401 Unauthorized412 when authentication succeeds413 does not respond to downloads with status 401 Unauthorized414 behaves like pushes require Basic HTTP Authentication415 when no credentials are provided416 responds to uploads with status 401 Unauthorized (no project existence information leak)417 when only username is provided418 responds to uploads with status 401 Unauthorized419 when username and password are provided420 when authentication fails421 responds to uploads with status 401 Unauthorized422 when authentication succeeds423 does not respond to uploads with status 401 Unauthorized424 behaves like operations are not allowed with expired password425 when password is expired426 responds to downloads with status 401 Unauthorized427 responds to uploads with status 401 Unauthorized428 when authenticated429 rejects downloads and uploads with 404 Not Found430 when namespace exists431 when authenticated432 creates a new project under the existing namespace433 rejects push with 422 Unprocessable Entity when project is invalid434 when project name is missing435 does not redirect to the incorrect path436 behaves like project path without .git suffix437 GET info/refs438 when no params are added439 redirects to the .git suffix version440 when the upload-pack service is requested441 redirects to the .git suffix version442 when the receive-pack service is requested443 redirects to the .git suffix version444 when the params are anything else445 redirects to the sign-in page446 POST git-upload-pack447 fails to find a route448 POST git-receive-pack449 fails to find a route450 when requesting the Wiki451 when the project is public452 behaves like pushes require Basic HTTP Authentication453 when no credentials are provided454 responds to uploads with status 401 Unauthorized (no project existence information leak)455 when only username is provided456 responds to uploads with status 401 Unauthorized457 when username and password are provided458 when authentication fails459 responds to uploads with status 401 Unauthorized460 when authentication succeeds461 does not respond to uploads with status 401 Unauthorized462 when unauthenticated463 responds to pulls with the wiki's repo464 behaves like pulls are allowed465 allows pulls466 when authenticated467 and as a developer on the team468 but the repo is disabled469 behaves like pulls are allowed470 allows pulls471 behaves like pushes are allowed472 allows pushes473 and not on the team474 rejects pushes with 403 Forbidden475 behaves like pulls are allowed476 allows pulls477 when the project is private478 behaves like pulls require Basic HTTP Authentication479 when no credentials are provided480 responds to downloads with status 401 Unauthorized (no project existence information leak)481 when only username is provided482 responds to downloads with status 401 Unauthorized483 when username and password are provided484 when authentication fails485 responds to downloads with status 401 Unauthorized486 when user is blocked487 responds to downloads with status 401 Unauthorized488 when authentication succeeds489 does not respond to downloads with status 401 Unauthorized490 behaves like pushes require Basic HTTP Authentication491 when no credentials are provided492 responds to uploads with status 401 Unauthorized (no project existence information leak)493 when only username is provided494 responds to uploads with status 401 Unauthorized495 when username and password are provided496 when authentication fails497 responds to uploads with status 401 Unauthorized498 when authentication succeeds499 does not respond to uploads with status 401 Unauthorized500 behaves like operations are not allowed with expired password501 when password is expired502 responds to downloads with status 401 Unauthorized503 responds to uploads with status 401 Unauthorized504 when authenticated505 and as a developer on the team506 when user is using credentials with special characters507 with password with special characters508 allows clones509 but the repo is disabled510 allows clones511 pushes are allowed512 and not on the team513 rejects clones with 404 Not Found514 rejects pushes with 404 Not Found515 when the project exists516 when the project is public517 behaves like pushes require Basic HTTP Authentication518 when no credentials are provided519 responds to uploads with status 401 Unauthorized (no project existence information leak)520 when only username is provided521 responds to uploads with status 401 Unauthorized522 when username and password are provided523 when authentication fails524 responds to uploads with status 401 Unauthorized525 when authentication succeeds526 does not respond to uploads with status 401 Unauthorized527 when not authenticated528 behaves like pulls are allowed529 allows pulls530 when authenticated531 as a developer on the team532 behaves like pulls are allowed533 allows pulls534 behaves like pushes are allowed535 allows pushes536 but git-receive-pack over HTTP is disabled in config537 rejects pushes with 403 Forbidden538 but git-upload-pack over HTTP is disabled in config539 rejects pushes with 403 Forbidden540 but the service parameter is missing541 rejects clones with 403 Forbidden542 and not a member of the team543 rejects pushes with 403 Forbidden544 behaves like pulls are allowed545 allows pulls546 when merge requests are open that allow maintainer access547 behaves like pushes are allowed548 allows pushes549 but the service parameter is missing550 rejects clones with 401 Unauthorized551 when the request is not from gitlab-workhorse552 raises an exception553 when the repo is public554 but the repo is disabled555 behaves like pulls require Basic HTTP Authentication556 when no credentials are provided557 responds to downloads with status 401 Unauthorized (no project existence information leak)558 when only username is provided559 responds to downloads with status 401 Unauthorized560 when username and password are provided561 when authentication fails562 responds to downloads with status 401 Unauthorized563 when user is blocked564 responds to downloads with status 401 Unauthorized565 when authentication succeeds566 does not respond to downloads with status 401 Unauthorized567 behaves like pushes require Basic HTTP Authentication568 when no credentials are provided569 responds to uploads with status 401 Unauthorized (no project existence information leak)570 when only username is provided571 responds to uploads with status 401 Unauthorized572 when username and password are provided573 when authentication fails574 responds to uploads with status 401 Unauthorized575 when authentication succeeds576 does not respond to uploads with status 401 Unauthorized577 behaves like operations are not allowed with expired password578 when password is expired579 responds to downloads with status 401 Unauthorized580 responds to uploads with status 401 Unauthorized581 but the repo is enabled582 behaves like pulls are allowed583 allows pulls584 but only project members are allowed585 behaves like pulls require Basic HTTP Authentication586 when no credentials are provided587 responds to downloads with status 401 Unauthorized (no project existence information leak)588 when only username is provided589 responds to downloads with status 401 Unauthorized590 when username and password are provided591 when authentication fails592 responds to downloads with status 401 Unauthorized593 when user is blocked594 responds to downloads with status 401 Unauthorized595 when authentication succeeds596 does not respond to downloads with status 401 Unauthorized597 behaves like pushes require Basic HTTP Authentication598 when no credentials are provided599 responds to uploads with status 401 Unauthorized (no project existence information leak)600 when only username is provided601 responds to uploads with status 401 Unauthorized602 when username and password are provided603 when authentication fails604 responds to uploads with status 401 Unauthorized605 when authentication succeeds606 does not respond to uploads with status 401 Unauthorized607 behaves like operations are not allowed with expired password608 when password is expired609 responds to downloads with status 401 Unauthorized610 responds to uploads with status 401 Unauthorized611 and the user requests a redirected path612 downloads get status 200 for redirects613 when the project is private614 behaves like pulls require Basic HTTP Authentication615 when no credentials are provided616 responds to downloads with status 401 Unauthorized (no project existence information leak)617 when only username is provided618 responds to downloads with status 401 Unauthorized619 when username and password are provided620 when authentication fails621 responds to downloads with status 401 Unauthorized622 when user is blocked623 responds to downloads with status 401 Unauthorized624 when authentication succeeds625 does not respond to downloads with status 401 Unauthorized626 behaves like pushes require Basic HTTP Authentication627 when no credentials are provided628 responds to uploads with status 401 Unauthorized (no project existence information leak)629 when only username is provided630 responds to uploads with status 401 Unauthorized631 when username and password are provided632 when authentication fails633 responds to uploads with status 401 Unauthorized634 when authentication succeeds635 does not respond to uploads with status 401 Unauthorized636 behaves like operations are not allowed with expired password637 when password is expired638 responds to downloads with status 401 Unauthorized639 responds to uploads with status 401 Unauthorized640 when username and password are provided641 when authentication fails642 when the user is IP banned643 responds with status 403644 when authentication succeeds645 when the user has access to the project646 when the user is blocked647 rejects pulls with 401 Unauthorized648 rejects pulls with 401 Unauthorized for unknown projects (no project existence information leak)649 when the user isn't blocked650 resets the IP in Rack Attack on download651 resets the IP in Rack Attack on upload652 updates the user last activity653 when an oauth token is provided654 behaves like pulls are allowed655 allows pulls656 behaves like pushes are allowed657 allows pushes658 when password is expired659 responds to downloads with status 401 unauthorized660 when user has 2FA enabled661 when username and password are provided662 rejects pulls with personal access token error message663 rejects the push attempt with personal access token error message664 when username and personal access token are provided665 rejects the push attempt for read_repository scope666 accepts the push attempt for write_repository scope667 accepts the pull attempt for read_repository scope668 accepts the pull attempt for api scope669 accepts the push attempt for api scope670 behaves like pulls are allowed671 allows pulls672 behaves like pushes are allowed673 allows pushes674 when password is expired675 responds to uploads with status 401 unauthorized676 when token is impersonated677 when impersonation is off678 responds to uploads with status 401 unauthorized679 when impersonation is on680 responds to uploads with status 200681 when internal auth is disabled682 rejects pulls with personal access token error message683 rejects pushes with personal access token error message684 when LDAP is configured685 does not display the personal access token error message686 when blank password attempts follow a valid login687 repeated attempts followed by successful attempt688 and the user requests a redirected path689 downloads get status 200690 uploads get status 404 with "project was moved" message691 when the user doesn't have access to the project692 pulls get status 404693 uploads get status 404694 when the user is admin695 when admin mode is enabled696 behaves like pulls are allowed697 allows pulls698 behaves like pushes are allowed699 allows pushes700 when admin mode is disabled701 behaves like pulls are allowed702 allows pulls703 behaves like pushes are allowed704 allows pushes705 when a gitlab ci token is provided706 when build created by system is authenticated707 rejects pushes with 403 Forbidden708 rejects pulls for other project with 404 Not Found709 behaves like pulls are allowed710 allows pulls711 and build created by712 administrator713 when admin mode is enabled714 downloads from other project get status 403715 behaves like can download code only716 rejects pushes with 403 Forbidden717 behaves like pulls are allowed718 allows pulls719 when the repo does not exist720 rejects pulls with 404 Not Found721 when admin mode is disabled722 downloads from other project get status 403723 behaves like can download code only724 rejects pushes with 403 Forbidden725 behaves like pulls are allowed726 allows pulls727 when the repo does not exist728 rejects pulls with 404 Not Found729 regular user730 downloads from other project get status 404731 behaves like can download code only732 rejects pushes with 403 Forbidden733 behaves like pulls are allowed734 allows pulls735 when the repo does not exist736 rejects pulls with 404 Not Found737 when users password is expired738 rejects pulls with 401 unauthorized739 behaves like project path without .git suffix740 GET info/refs741 when no params are added742 redirects to the .git suffix version743 when the upload-pack service is requested744 redirects to the .git suffix version745 when the receive-pack service is requested746 redirects to the .git suffix version747 when the params are anything else748 redirects to the sign-in page749 POST git-upload-pack750 fails to find a route751 POST git-receive-pack752 fails to find a route753 retrieving an info/refs file754 when the file exists755 returns the file756 when the file does not exist757 redirects758 when the project path ends with a dot759 when the project is public760 behaves like pushes require Basic HTTP Authentication761 when no credentials are provided762 responds to uploads with status 401 Unauthorized (no project existence information leak)763 when only username is provided764 responds to uploads with status 401 Unauthorized765 when username and password are provided766 when authentication fails767 responds to uploads with status 401 Unauthorized768 when authentication succeeds769 does not respond to uploads with status 401 Unauthorized770 when not authenticated771 behaves like pulls are allowed772 allows pulls773 when authenticated774 as a developer on the team775 behaves like pulls are allowed776 allows pulls777 behaves like pushes are allowed778 allows pushes779 but git-receive-pack over HTTP is disabled in config780 rejects pushes with 403 Forbidden781 but git-upload-pack over HTTP is disabled in config782 rejects pushes with 403 Forbidden783 but the service parameter is missing784 rejects clones with 403 Forbidden785 and not a member of the team786 rejects pushes with 403 Forbidden787 behaves like pulls are allowed788 allows pulls789 when merge requests are open that allow maintainer access790 behaves like pushes are allowed791 allows pushes792 but the service parameter is missing793 rejects clones with 401 Unauthorized794 when the request is not from gitlab-workhorse795 raises an exception796 when the repo is public797 but the repo is disabled798 behaves like pulls require Basic HTTP Authentication799 when no credentials are provided800 responds to downloads with status 401 Unauthorized (no project existence information leak)801 when only username is provided802 responds to downloads with status 401 Unauthorized803 when username and password are provided804 when authentication fails805 responds to downloads with status 401 Unauthorized806 when user is blocked807 responds to downloads with status 401 Unauthorized808 when authentication succeeds809 does not respond to downloads with status 401 Unauthorized810 behaves like pushes require Basic HTTP Authentication811 when no credentials are provided812 responds to uploads with status 401 Unauthorized (no project existence information leak)813 when only username is provided814 responds to uploads with status 401 Unauthorized815 when username and password are provided816 when authentication fails817 responds to uploads with status 401 Unauthorized818 when authentication succeeds819 does not respond to uploads with status 401 Unauthorized820 behaves like operations are not allowed with expired password821 when password is expired822 responds to downloads with status 401 Unauthorized823 responds to uploads with status 401 Unauthorized824 but the repo is enabled825 behaves like pulls are allowed826 allows pulls827 but only project members are allowed828 behaves like pulls require Basic HTTP Authentication829 when no credentials are provided830 responds to downloads with status 401 Unauthorized (no project existence information leak)831 when only username is provided832 responds to downloads with status 401 Unauthorized833 when username and password are provided834 when authentication fails835 responds to downloads with status 401 Unauthorized836 when user is blocked837 responds to downloads with status 401 Unauthorized838 when authentication succeeds839 does not respond to downloads with status 401 Unauthorized840 behaves like pushes require Basic HTTP Authentication841 when no credentials are provided842 responds to uploads with status 401 Unauthorized (no project existence information leak)843 when only username is provided844 responds to uploads with status 401 Unauthorized845 when username and password are provided846 when authentication fails847 responds to uploads with status 401 Unauthorized848 when authentication succeeds849 does not respond to uploads with status 401 Unauthorized850 behaves like operations are not allowed with expired password851 when password is expired852 responds to downloads with status 401 Unauthorized853 responds to uploads with status 401 Unauthorized854 and the user requests a redirected path855 downloads get status 200 for redirects856 when the project is private857 behaves like pulls require Basic HTTP Authentication858 when no credentials are provided859 responds to downloads with status 401 Unauthorized (no project existence information leak)860 when only username is provided861 responds to downloads with status 401 Unauthorized862 when username and password are provided863 when authentication fails864 responds to downloads with status 401 Unauthorized865 when user is blocked866 responds to downloads with status 401 Unauthorized867 when authentication succeeds868 does not respond to downloads with status 401 Unauthorized869 behaves like pushes require Basic HTTP Authentication870 when no credentials are provided871 responds to uploads with status 401 Unauthorized (no project existence information leak)872 when only username is provided873 responds to uploads with status 401 Unauthorized874 when username and password are provided875 when authentication fails876 responds to uploads with status 401 Unauthorized877 when authentication succeeds878 does not respond to uploads with status 401 Unauthorized879 behaves like operations are not allowed with expired password880 when password is expired881 responds to downloads with status 401 Unauthorized882 responds to uploads with status 401 Unauthorized883 when username and password are provided884 when authentication fails885 when the user is IP banned886 responds with status 403887 when authentication succeeds888 when the user has access to the project889 when the user is blocked890 rejects pulls with 401 Unauthorized891 rejects pulls with 401 Unauthorized for unknown projects (no project existence information leak)892 when the user isn't blocked893 resets the IP in Rack Attack on download894 resets the IP in Rack Attack on upload895 updates the user last activity896 when an oauth token is provided897 behaves like pulls are allowed898 allows pulls899 behaves like pushes are allowed900 allows pushes901 when password is expired902 responds to downloads with status 401 unauthorized903 when user has 2FA enabled904 when username and password are provided905 rejects pulls with personal access token error message906 rejects the push attempt with personal access token error message907 when username and personal access token are provided908 rejects the push attempt for read_repository scope909 accepts the push attempt for write_repository scope910 accepts the pull attempt for read_repository scope911 accepts the pull attempt for api scope912 accepts the push attempt for api scope913 behaves like pulls are allowed914 allows pulls915 behaves like pushes are allowed916 allows pushes917 when password is expired918 responds to uploads with status 401 unauthorized919 when internal auth is disabled920 rejects pulls with personal access token error message921 rejects pushes with personal access token error message922 when LDAP is configured923 does not display the personal access token error message924 when blank password attempts follow a valid login925 repeated attempts followed by successful attempt926 and the user requests a redirected path927 downloads get status 200928 uploads get status 404 with "project was moved" message929 when the user doesn't have access to the project930 pulls get status 404931 uploads get status 404932 when a gitlab ci token is provided933 when build created by system is authenticated934 rejects pushes with 403 Forbidden935 rejects pulls for other project with 404 Not Found936 behaves like pulls are allowed937 allows pulls938 and build created by939 administrator940 when admin mode is enabled941 downloads from other project get status 403942 behaves like can download code only943 rejects pushes with 403 Forbidden944 behaves like pulls are allowed945 allows pulls946 when the repo does not exist947 rejects pulls with 404 Not Found948 when admin mode is disabled949 downloads from other project get status 403950 behaves like can download code only951 rejects pushes with 403 Forbidden952 behaves like pulls are allowed953 allows pulls954 when the repo does not exist955 rejects pulls with 404 Not Found956 regular user957 downloads from other project get status 404958 behaves like can download code only959 rejects pushes with 403 Forbidden960 behaves like pulls are allowed961 allows pulls962 when the repo does not exist963 rejects pulls with 404 Not Found964 when users password is expired965 rejects pulls with 401 unauthorized966 behaves like project path without .git suffix967 GET info/refs968 when no params are added969 redirects to the .git suffix version970 when the upload-pack service is requested971 redirects to the .git suffix version972 when the receive-pack service is requested973 redirects to the .git suffix version974 when the params are anything else975 redirects to the sign-in page976 POST git-upload-pack977 fails to find a route978 POST git-receive-pack979 fails to find a route980 retrieving an info/refs file981 when the file exists982 returns the file983 when the file does not exist984 redirects985 when the Wiki path ends with a dot986 when the project is public987 behaves like pushes require Basic HTTP Authentication988 when no credentials are provided989 responds to uploads with status 401 Unauthorized (no project existence information leak)990 when only username is provided991 responds to uploads with status 401 Unauthorized992 when username and password are provided993 when authentication fails994 responds to uploads with status 401 Unauthorized995 when authentication succeeds996 does not respond to uploads with status 401 Unauthorized997 when unauthenticated998 responds to pulls with the wiki's repo999 behaves like pulls are allowed1000 allows pulls1001 when authenticated1002 and as a developer on the team1003 but the repo is disabled1004 behaves like pulls are allowed1005 allows pulls1006 behaves like pushes are allowed1007 allows pushes1008 and not on the team1009 rejects pushes with 403 Forbidden1010 behaves like pulls are allowed1011 allows pulls1012 when the project is private1013 behaves like pulls require Basic HTTP Authentication1014 when no credentials are provided1015 responds to downloads with status 401 Unauthorized (no project existence information leak)1016 when only username is provided1017 responds to downloads with status 401 Unauthorized1018 when username and password are provided1019 when authentication fails1020 responds to downloads with status 401 Unauthorized1021 when user is blocked1022 responds to downloads with status 401 Unauthorized1023 when authentication succeeds1024 does not respond to downloads with status 401 Unauthorized1025 behaves like pushes require Basic HTTP Authentication1026 when no credentials are provided1027 responds to uploads with status 401 Unauthorized (no project existence information leak)1028 when only username is provided1029 responds to uploads with status 401 Unauthorized1030 when username and password are provided1031 when authentication fails1032 responds to uploads with status 401 Unauthorized1033 when authentication succeeds1034 does not respond to uploads with status 401 Unauthorized1035 behaves like operations are not allowed with expired password1036 when password is expired1037 responds to downloads with status 401 Unauthorized1038 responds to uploads with status 401 Unauthorized1039 when authenticated1040 and as a developer on the team1041 when user is using credentials with special characters1042 with password with special characters1043 allows clones1044 but the repo is disabled1045 allows clones1046 pushes are allowed1047 and not on the team1048 rejects clones with 404 Not Found1049 rejects pushes with 404 Not Found1050 User with LDAP identity1051 behaves like pulls require Basic HTTP Authentication1052 when no credentials are provided1053 responds to downloads with status 401 Unauthorized (no project existence information leak)1054 when only username is provided1055 responds to downloads with status 401 Unauthorized1056 when username and password are provided1057 when authentication fails1058 responds to downloads with status 401 Unauthorized1059 when user is blocked1060 responds to downloads with status 401 Unauthorized1061 when authentication succeeds1062 does not respond to downloads with status 401 Unauthorized1063 behaves like pushes require Basic HTTP Authentication1064 when no credentials are provided1065 responds to uploads with status 401 Unauthorized (no project existence information leak)1066 when only username is provided1067 responds to uploads with status 401 Unauthorized1068 when username and password are provided1069 when authentication fails1070 responds to uploads with status 401 Unauthorized1071 when authentication succeeds1072 does not respond to uploads with status 401 Unauthorized1073 when authentication succeeds1074 when the project doesn't exist1075 responds with status 404 Not Found1076 when the project exists1077 and the user is on the team1078 responds with status 2001079 behaves like pulls are allowed1080 allows pulls1081 behaves like pushes are allowed1082 allows pushes1083 when password is expired1084 responds to downloads with status 2001085 responds to uploads with status 2001086 when terms are enforced1087 blocks git access when the user did not accept terms1088 when the user accepted the terms1089 allows clones1090 behaves like pulls are allowed1091 allows pulls1092 behaves like pushes are allowed1093 allows pushes1094 from CI1095 behaves like pulls are allowed1096 allows pulls1097API::MavenPackages1098 GET /api/v4/packages/maven/*path/:file_name1099 a public project1100 behaves like handling groups, subgroups and user namespaces for1101 behaves like handling groups and subgroups for1102 within a group1103 that is public1104 behaves like getting a file1105 returns sha1 of the file1106 behaves like tracking the file download event1107 with jar file1108 behaves like a package tracking event1109 creates a gitlab tracking event pull_package1110 behaves like successfully returning the file1111 returns the file1112 behaves like file download in FIPS mode1113 in FIPS mode1114 rejects the request for an md5 file1115 behaves like successfully returning the file1116 returns the file1117 with a non existing maven path1118 behaves like rejecting the request for non existing maven path1119 rejects the request1120 within a subgroup1121 that is public1122 behaves like getting a file1123 returns sha1 of the file1124 behaves like tracking the file download event1125 with jar file1126 behaves like a package tracking event1127 creates a gitlab tracking event pull_package1128 behaves like successfully returning the file1129 returns the file1130 behaves like file download in FIPS mode1131 in FIPS mode1132 rejects the request for an md5 file1133 behaves like successfully returning the file1134 returns the file1135 with a non existing maven path1136 behaves like rejecting the request for non existing maven path1137 rejects the request1138 within a user namespace1139 that is public1140 behaves like getting a file1141 returns sha1 of the file1142 behaves like tracking the file download event1143 with jar file1144 behaves like a package tracking event1145 creates a gitlab tracking event pull_package1146 behaves like successfully returning the file1147 returns the file1148 behaves like file download in FIPS mode1149 in FIPS mode1150 rejects the request for an md5 file1151 behaves like successfully returning the file1152 returns the file1153 with a non existing maven path1154 behaves like rejecting the request for non existing maven path1155 rejects the request1156 internal project1157 behaves like handling groups, subgroups and user namespaces for1158 behaves like handling groups and subgroups for1159 within a group1160 that is public1161 behaves like getting a file1162 denies download when no private token1163 behaves like tracking the file download event1164 with jar file1165 behaves like a package tracking event1166 creates a gitlab tracking event pull_package1167 behaves like successfully returning the file1168 returns the file1169 behaves like downloads with a job token1170 with a running job1171 allows download with job token1172 with a finished job1173 returns unauthorized error1174 behaves like downloads with a deploy token1175 successful download1176 allows download with deploy token1177 allows download with deploy token with only write_package_registry scope1178 with a non existing maven path1179 behaves like rejecting the request for non existing maven path1180 rejects the request1181 that is internal1182 behaves like getting a file1183 denies download when no private token1184 behaves like tracking the file download event1185 with jar file1186 behaves like a package tracking event1187 creates a gitlab tracking event pull_package1188 behaves like successfully returning the file1189 returns the file1190 behaves like downloads with a job token1191 with a running job1192 allows download with job token1193 with a finished job1194 returns unauthorized error1195 behaves like downloads with a deploy token1196 successful download1197 allows download with deploy token1198 allows download with deploy token with only write_package_registry scope1199 with a non existing maven path1200 behaves like rejecting the request for non existing maven path1201 rejects the request1202 within a subgroup1203 that is public1204 behaves like getting a file1205 denies download when no private token1206 behaves like tracking the file download event1207 with jar file1208 behaves like a package tracking event1209 creates a gitlab tracking event pull_package1210 behaves like successfully returning the file1211 returns the file1212 behaves like downloads with a job token1213 with a running job1214 allows download with job token1215 with a finished job1216 returns unauthorized error1217 behaves like downloads with a deploy token1218 successful download1219 allows download with deploy token1220 allows download with deploy token with only write_package_registry scope1221 with a non existing maven path1222 behaves like rejecting the request for non existing maven path1223 rejects the request1224 that is internal1225 behaves like getting a file1226 denies download when no private token1227 behaves like tracking the file download event1228 with jar file1229 behaves like a package tracking event1230 creates a gitlab tracking event pull_package1231 behaves like successfully returning the file1232 returns the file1233 behaves like downloads with a job token1234 with a running job1235 allows download with job token1236 with a finished job1237 returns unauthorized error1238 behaves like downloads with a deploy token1239 successful download1240 allows download with deploy token1241 allows download with deploy token with only write_package_registry scope1242 with a non existing maven path1243 behaves like rejecting the request for non existing maven path1244 rejects the request1245 within a user namespace1246 that is public1247 behaves like getting a file1248 denies download when no private token1249 behaves like tracking the file download event1250 with jar file1251 behaves like a package tracking event1252 creates a gitlab tracking event pull_package1253 behaves like successfully returning the file1254 returns the file1255 behaves like downloads with a job token1256 with a running job1257 allows download with job token1258 with a finished job1259 returns unauthorized error1260 behaves like downloads with a deploy token1261 successful download1262 allows download with deploy token1263 allows download with deploy token with only write_package_registry scope1264 with a non existing maven path1265 behaves like rejecting the request for non existing maven path1266 rejects the request1267 that is internal1268 behaves like getting a file1269 denies download when no private token1270 behaves like tracking the file download event1271 with jar file1272 behaves like a package tracking event1273 creates a gitlab tracking event pull_package1274 behaves like successfully returning the file1275 returns the file1276 behaves like downloads with a job token1277 with a running job1278 allows download with job token1279 with a finished job1280 returns unauthorized error1281 behaves like downloads with a deploy token1282 successful download1283 allows download with deploy token1284 allows download with deploy token with only write_package_registry scope1285 with a non existing maven path1286 behaves like rejecting the request for non existing maven path1287 rejects the request1288 private project1289 behaves like handling groups, subgroups and user namespaces for1290 behaves like handling groups and subgroups for1291 within a group1292 that is public1293 behaves like getting a file1294 denies download when not enough permissions1295 denies download when no private token1296 does not allow download by a unauthorized deploy token with same id as a user with access1297 behaves like tracking the file download event1298 with jar file1299 behaves like a package tracking event1300 creates a gitlab tracking event pull_package1301 behaves like successfully returning the file1302 returns the file1303 behaves like downloads with a job token1304 with a running job1305 allows download with job token1306 with a finished job1307 returns unauthorized error1308 behaves like downloads with a deploy token1309 successful download1310 allows download with deploy token1311 allows download with deploy token with only write_package_registry scope1312 with a non existing maven path1313 behaves like rejecting the request for non existing maven path1314 rejects the request1315 that is internal1316 behaves like getting a file1317 denies download when not enough permissions1318 denies download when no private token1319 does not allow download by a unauthorized deploy token with same id as a user with access1320 behaves like tracking the file download event1321 with jar file1322 behaves like a package tracking event1323 creates a gitlab tracking event pull_package1324 behaves like successfully returning the file1325 returns the file1326 behaves like downloads with a job token1327 with a running job1328 allows download with job token1329 with a finished job1330 returns unauthorized error1331 behaves like downloads with a deploy token1332 successful download1333 allows download with deploy token1334 allows download with deploy token with only write_package_registry scope1335 with a non existing maven path1336 behaves like rejecting the request for non existing maven path1337 rejects the request1338 that is private1339 behaves like getting a file1340 denies download when not enough permissions1341 denies download when no private token1342 does not allow download by a unauthorized deploy token with same id as a user with access1343 behaves like tracking the file download event1344 with jar file1345 behaves like a package tracking event1346 creates a gitlab tracking event pull_package1347 behaves like successfully returning the file1348 returns the file1349 behaves like downloads with a job token1350 with a running job1351 allows download with job token1352 with a finished job1353 returns unauthorized error1354 behaves like downloads with a deploy token1355 successful download1356 allows download with deploy token1357 allows download with deploy token with only write_package_registry scope1358 with a non existing maven path1359 behaves like rejecting the request for non existing maven path1360 rejects the request1361 within a subgroup1362 that is public1363 behaves like getting a file1364 denies download when not enough permissions1365 denies download when no private token1366 does not allow download by a unauthorized deploy token with same id as a user with access1367 behaves like tracking the file download event1368 with jar file1369 behaves like a package tracking event1370 creates a gitlab tracking event pull_package1371 behaves like successfully returning the file1372 returns the file1373 behaves like downloads with a job token1374 with a running job1375 allows download with job token1376 with a finished job1377 returns unauthorized error1378 behaves like downloads with a deploy token1379 successful download1380 allows download with deploy token1381 allows download with deploy token with only write_package_registry scope1382 with a non existing maven path1383 behaves like rejecting the request for non existing maven path1384 rejects the request1385 that is internal1386 behaves like getting a file1387 denies download when not enough permissions1388 denies download when no private token1389 does not allow download by a unauthorized deploy token with same id as a user with access1390 behaves like tracking the file download event1391 with jar file1392 behaves like a package tracking event1393 creates a gitlab tracking event pull_package1394 behaves like successfully returning the file1395 returns the file1396 behaves like downloads with a job token1397 with a running job1398 allows download with job token1399 with a finished job1400 returns unauthorized error1401 behaves like downloads with a deploy token1402 successful download1403 allows download with deploy token1404 allows download with deploy token with only write_package_registry scope1405 with a non existing maven path1406 behaves like rejecting the request for non existing maven path1407 rejects the request1408 that is private1409 behaves like getting a file1410 denies download when not enough permissions1411 denies download when no private token1412 does not allow download by a unauthorized deploy token with same id as a user with access1413 behaves like tracking the file download event1414 with jar file1415 behaves like a package tracking event1416 creates a gitlab tracking event pull_package1417 behaves like successfully returning the file1418 returns the file1419 behaves like downloads with a job token1420 with a running job1421 allows download with job token1422 with a finished job1423 returns unauthorized error1424 behaves like downloads with a deploy token1425 successful download1426 allows download with deploy token1427 allows download with deploy token with only write_package_registry scope1428 with a non existing maven path1429 behaves like rejecting the request for non existing maven path1430 rejects the request1431 within a user namespace1432 that is public1433 behaves like getting a file1434 denies download when not enough permissions1435 denies download when no private token1436 does not allow download by a unauthorized deploy token with same id as a user with access1437 behaves like tracking the file download event1438 with jar file1439 behaves like a package tracking event1440 creates a gitlab tracking event pull_package1441 behaves like successfully returning the file1442 returns the file1443 behaves like downloads with a job token1444 with a running job1445 allows download with job token1446 with a finished job1447 returns unauthorized error1448 behaves like downloads with a deploy token1449 successful download1450 allows download with deploy token1451 allows download with deploy token with only write_package_registry scope1452 with a non existing maven path1453 behaves like rejecting the request for non existing maven path1454 rejects the request1455 that is internal1456 behaves like getting a file1457 denies download when not enough permissions1458 denies download when no private token1459 does not allow download by a unauthorized deploy token with same id as a user with access1460 behaves like tracking the file download event1461 with jar file1462 behaves like a package tracking event1463 creates a gitlab tracking event pull_package1464 behaves like successfully returning the file1465 returns the file1466 behaves like downloads with a job token1467 with a running job1468 allows download with job token1469 with a finished job1470 returns unauthorized error1471 behaves like downloads with a deploy token1472 successful download1473 allows download with deploy token1474 allows download with deploy token with only write_package_registry scope1475 with a non existing maven path1476 behaves like rejecting the request for non existing maven path1477 rejects the request1478 that is private1479 behaves like getting a file1480 denies download when not enough permissions1481 denies download when no private token1482 does not allow download by a unauthorized deploy token with same id as a user with access1483 behaves like tracking the file download event1484 with jar file1485 behaves like a package tracking event1486 creates a gitlab tracking event pull_package1487 behaves like successfully returning the file1488 returns the file1489 behaves like downloads with a job token1490 with a running job1491 allows download with job token1492 with a finished job1493 returns unauthorized error1494 behaves like downloads with a deploy token1495 successful download1496 allows download with deploy token1497 allows download with deploy token with only write_package_registry scope1498 with a non existing maven path1499 behaves like rejecting the request for non existing maven path1500 rejects the request1501 project name is different from a package name1502 rejects request1503 HEAD /api/v4/packages/maven/*path/:file_name1504 with check_maven_path_first enabled1505 behaves like handling groups, subgroups and user namespaces for1506 behaves like handling groups and subgroups for1507 within a group1508 that is public1509 behaves like heading a file1510 behaves like processing HEAD requests1511 with object storage enabled1512 non AWS provider1513 does not generated a signed url for head1514 with AWS provider1515 generates a signed url for head1516 with object storage disabled1517 does not generate a signed url for head1518 with a non existing maven path1519 behaves like rejecting the request for non existing maven path1520 rejects the request1521 within a subgroup1522 that is public1523 behaves like heading a file1524 behaves like processing HEAD requests1525 with object storage enabled1526 non AWS provider1527 does not generated a signed url for head1528 with AWS provider1529 generates a signed url for head1530 with object storage disabled1531 does not generate a signed url for head1532 with a non existing maven path1533 behaves like rejecting the request for non existing maven path1534 rejects the request1535 within a user namespace1536 that is public1537 behaves like heading a file1538 behaves like processing HEAD requests1539 with object storage enabled1540 non AWS provider1541 does not generated a signed url for head1542 with AWS provider1543 generates a signed url for head1544 with object storage disabled1545 does not generate a signed url for head1546 with a non existing maven path1547 behaves like rejecting the request for non existing maven path1548 rejects the request1549 with check_maven_path_first disabled1550 behaves like handling groups, subgroups and user namespaces for1551 behaves like handling groups and subgroups for1552 within a group1553 that is public1554 behaves like heading a file1555 behaves like processing HEAD requests1556 with object storage enabled1557 non AWS provider1558 does not generated a signed url for head1559 with AWS provider1560 generates a signed url for head1561 with object storage disabled1562 does not generate a signed url for head1563 with a non existing maven path1564 behaves like rejecting the request for non existing maven path1565 rejects the request1566 within a subgroup1567 that is public1568 behaves like heading a file1569 behaves like processing HEAD requests1570 with object storage enabled1571 non AWS provider1572 does not generated a signed url for head1573 with AWS provider1574 generates a signed url for head1575 with object storage disabled1576 does not generate a signed url for head1577 with a non existing maven path1578 behaves like rejecting the request for non existing maven path1579 rejects the request1580 within a user namespace1581 that is public1582 behaves like heading a file1583 behaves like processing HEAD requests1584 with object storage enabled1585 non AWS provider1586 does not generated a signed url for head1587 with AWS provider1588 generates a signed url for head1589 with object storage disabled1590 does not generate a signed url for head1591 with a non existing maven path1592 behaves like rejecting the request for non existing maven path1593 rejects the request1594 GET /api/v4/groups/:id/-/packages/maven/*path/:file_name1595 a public project1596 behaves like handling groups and subgroups for1597 within a group1598 that is public1599 behaves like getting a file for a group1600 returns sha1 of the file1601 behaves like tracking the file download event1602 with jar file1603 behaves like a package tracking event1604 creates a gitlab tracking event pull_package1605 behaves like successfully returning the file1606 returns the file1607 behaves like file download in FIPS mode1608 in FIPS mode1609 rejects the request for an md5 file1610 behaves like successfully returning the file1611 returns the file1612 with a non existing maven path1613 behaves like rejecting the request for non existing maven path1614 rejects the request1615 within a subgroup1616 that is public1617 behaves like getting a file for a group1618 returns sha1 of the file1619 behaves like tracking the file download event1620 with jar file1621 behaves like a package tracking event1622 creates a gitlab tracking event pull_package1623 behaves like successfully returning the file1624 returns the file1625 behaves like file download in FIPS mode1626 in FIPS mode1627 rejects the request for an md5 file1628 behaves like successfully returning the file1629 returns the file1630 with a non existing maven path1631 behaves like rejecting the request for non existing maven path1632 rejects the request1633 internal project1634 behaves like handling groups and subgroups for1635 within a group1636 that is internal1637 behaves like getting a file for a group1638 denies download when no private token1639 behaves like tracking the file download event1640 with jar file1641 behaves like a package tracking event1642 creates a gitlab tracking event pull_package1643 behaves like successfully returning the file1644 returns the file1645 behaves like downloads with a job token1646 with a running job1647 allows download with job token1648 with a finished job1649 returns unauthorized error1650 behaves like downloads with a deploy token1651 successful download1652 allows download with deploy token1653 allows download with deploy token with only write_package_registry scope1654 with a non existing maven path1655 behaves like rejecting the request for non existing maven path1656 rejects the request1657 that is public1658 behaves like getting a file for a group1659 denies download when no private token1660 behaves like tracking the file download event1661 with jar file1662 behaves like a package tracking event1663 creates a gitlab tracking event pull_package1664 behaves like successfully returning the file1665 returns the file1666 behaves like downloads with a job token1667 with a running job1668 allows download with job token1669 with a finished job1670 returns unauthorized error1671 behaves like downloads with a deploy token1672 successful download1673 allows download with deploy token1674 allows download with deploy token with only write_package_registry scope1675 with a non existing maven path1676 behaves like rejecting the request for non existing maven path1677 rejects the request1678 within a subgroup1679 that is internal1680 behaves like getting a file for a group1681 denies download when no private token1682 behaves like tracking the file download event1683 with jar file1684 behaves like a package tracking event1685 creates a gitlab tracking event pull_package1686 behaves like successfully returning the file1687 returns the file1688 behaves like downloads with a job token1689 with a running job1690 allows download with job token1691 with a finished job1692 returns unauthorized error1693 behaves like downloads with a deploy token1694 successful download1695 allows download with deploy token1696 allows download with deploy token with only write_package_registry scope1697 with a non existing maven path1698 behaves like rejecting the request for non existing maven path1699 rejects the request1700 that is public1701 behaves like getting a file for a group1702 denies download when no private token1703 behaves like tracking the file download event1704 with jar file1705 behaves like a package tracking event1706 creates a gitlab tracking event pull_package1707 behaves like successfully returning the file1708 returns the file1709 behaves like downloads with a job token1710 with a running job1711 allows download with job token1712 with a finished job1713 returns unauthorized error1714 behaves like downloads with a deploy token1715 successful download1716 allows download with deploy token1717 allows download with deploy token with only write_package_registry scope1718 with a non existing maven path1719 behaves like rejecting the request for non existing maven path1720 rejects the request1721 private project1722 behaves like handling groups and subgroups for1723 within a group1724 that is private1725 behaves like getting a file for a group1726 denies download when not enough permissions1727 denies download when no private token1728 behaves like tracking the file download event1729 with jar file1730 behaves like a package tracking event1731 creates a gitlab tracking event pull_package1732 behaves like successfully returning the file1733 returns the file1734 behaves like downloads with a job token1735 with a running job1736 allows download with job token1737 with a finished job1738 returns unauthorized error1739 behaves like downloads with a deploy token1740 successful download1741 allows download with deploy token1742 allows download with deploy token with only write_package_registry scope1743 with a non existing maven path1744 behaves like rejecting the request for non existing maven path1745 rejects the request1746 with group deploy token1747 returns the file with only write_package_registry scope1748 behaves like successfully returning the file1749 returns the file1750 with a non existing maven path1751 behaves like rejecting the request for non existing maven path1752 rejects the request1753 that is internal1754 behaves like getting a file for a group1755 denies download when not enough permissions1756 denies download when no private token1757 behaves like tracking the file download event1758 with jar file1759 behaves like a package tracking event1760 creates a gitlab tracking event pull_package1761 behaves like successfully returning the file1762 returns the file1763 behaves like downloads with a job token1764 with a running job1765 allows download with job token1766 with a finished job1767 returns unauthorized error1768 behaves like downloads with a deploy token1769 successful download1770 allows download with deploy token1771 allows download with deploy token with only write_package_registry scope1772 with a non existing maven path1773 behaves like rejecting the request for non existing maven path1774 rejects the request1775 with group deploy token1776 returns the file with only write_package_registry scope1777 behaves like successfully returning the file1778 returns the file1779 with a non existing maven path1780 behaves like rejecting the request for non existing maven path1781 rejects the request1782 that is public1783 behaves like getting a file for a group1784 denies download when not enough permissions1785 denies download when no private token1786 behaves like tracking the file download event1787 with jar file1788 behaves like a package tracking event1789 creates a gitlab tracking event pull_package1790 behaves like successfully returning the file1791 returns the file1792 behaves like downloads with a job token1793 with a running job1794 allows download with job token1795 with a finished job1796 returns unauthorized error1797 behaves like downloads with a deploy token1798 successful download1799 allows download with deploy token1800 allows download with deploy token with only write_package_registry scope1801 with a non existing maven path1802 behaves like rejecting the request for non existing maven path1803 rejects the request1804 with group deploy token1805 returns the file with only write_package_registry scope1806 behaves like successfully returning the file1807 returns the file1808 with a non existing maven path1809 behaves like rejecting the request for non existing maven path1810 rejects the request1811 within a subgroup1812 that is private1813 behaves like getting a file for a group1814 denies download when not enough permissions1815 denies download when no private token1816 behaves like tracking the file download event1817 with jar file1818 behaves like a package tracking event1819 creates a gitlab tracking event pull_package1820 behaves like successfully returning the file1821 returns the file1822 behaves like downloads with a job token1823 with a running job1824 allows download with job token1825 with a finished job1826 returns unauthorized error1827 behaves like downloads with a deploy token1828 successful download1829 allows download with deploy token1830 allows download with deploy token with only write_package_registry scope1831 with a non existing maven path1832 behaves like rejecting the request for non existing maven path1833 rejects the request1834 with group deploy token1835 returns the file with only write_package_registry scope1836 behaves like successfully returning the file1837 returns the file1838 with a non existing maven path1839 behaves like rejecting the request for non existing maven path1840 rejects the request1841 that is internal1842 behaves like getting a file for a group1843 denies download when not enough permissions1844 denies download when no private token1845 behaves like tracking the file download event1846 with jar file1847 behaves like a package tracking event1848 creates a gitlab tracking event pull_package1849 behaves like successfully returning the file1850 returns the file1851 behaves like downloads with a job token1852 with a running job1853 allows download with job token1854 with a finished job1855 returns unauthorized error1856 behaves like downloads with a deploy token1857 successful download1858 allows download with deploy token1859 allows download with deploy token with only write_package_registry scope1860 with a non existing maven path1861 behaves like rejecting the request for non existing maven path1862 rejects the request1863 with group deploy token1864 returns the file with only write_package_registry scope1865 behaves like successfully returning the file1866 returns the file1867 with a non existing maven path1868 behaves like rejecting the request for non existing maven path1869 rejects the request1870 that is public1871 behaves like getting a file for a group1872 denies download when not enough permissions1873 denies download when no private token1874 behaves like tracking the file download event1875 with jar file1876 behaves like a package tracking event1877 creates a gitlab tracking event pull_package1878 behaves like successfully returning the file1879 returns the file1880 behaves like downloads with a job token1881 with a running job1882 allows download with job token1883 with a finished job1884 returns unauthorized error1885 behaves like downloads with a deploy token1886 successful download1887 allows download with deploy token1888 allows download with deploy token with only write_package_registry scope1889 with a non existing maven path1890 behaves like rejecting the request for non existing maven path1891 rejects the request1892 with group deploy token1893 returns the file with only write_package_registry scope1894 behaves like successfully returning the file1895 returns the file1896 with a non existing maven path1897 behaves like rejecting the request for non existing maven path1898 rejects the request1899 with a reporter from a subgroup accessing the root group1900 behaves like successfully returning the file1901 returns the file1902 with a non existing maven path1903 behaves like rejecting the request for non existing maven path1904 rejects the request1905 maven metadata file1906 in multiple versionless packages1907 downloads the file1908 in multiple snapshot packages1909 downloads the file1910 HEAD /api/v4/groups/:id/-/packages/maven/*path/:file_name1911 with check_maven_path_first enabled1912 behaves like handling groups and subgroups for1913 within a group1914 that is public1915 behaves like processing HEAD requests1916 with object storage enabled1917 non AWS provider1918 does not generated a signed url for head1919 with AWS provider1920 generates a signed url for head1921 with object storage disabled1922 does not generate a signed url for head1923 with a non existing maven path1924 behaves like rejecting the request for non existing maven path1925 rejects the request1926 within a subgroup1927 that is public1928 behaves like processing HEAD requests1929 with object storage enabled1930 non AWS provider1931 does not generated a signed url for head1932 with AWS provider1933 generates a signed url for head1934 with object storage disabled1935 does not generate a signed url for head1936 with a non existing maven path1937 behaves like rejecting the request for non existing maven path1938 rejects the request1939 with check_maven_path_first disabled1940 behaves like handling groups and subgroups for1941 within a group1942 that is public1943 behaves like processing HEAD requests1944 with object storage enabled1945 non AWS provider1946 does not generated a signed url for head1947 with AWS provider1948 generates a signed url for head1949 with object storage disabled1950 does not generate a signed url for head1951 with a non existing maven path1952 behaves like rejecting the request for non existing maven path1953 rejects the request1954 within a subgroup1955 that is public1956 behaves like processing HEAD requests1957 with object storage enabled1958 non AWS provider1959 does not generated a signed url for head1960 with AWS provider1961 generates a signed url for head1962 with object storage disabled1963 does not generate a signed url for head1964 with a non existing maven path1965 behaves like rejecting the request for non existing maven path1966 rejects the request1967 GET /api/v4/projects/:id/packages/maven/*path/:file_name1968 a public project1969 returns sha1 of the file1970 behaves like tracking the file download event1971 with jar file1972 behaves like a package tracking event1973 creates a gitlab tracking event pull_package1974 behaves like successfully returning the file1975 returns the file1976 behaves like file download in FIPS mode1977 in FIPS mode1978 rejects the request for an md5 file1979 behaves like successfully returning the file1980 returns the file1981 when the repository is disabled1982 behaves like successfully returning the file1983 returns the file1984 with a non existing maven path1985 behaves like rejecting the request for non existing maven path1986 rejects the request1987 private project1988 denies download when not enough permissions1989 denies download when no private token1990 behaves like tracking the file download event1991 with jar file1992 behaves like a package tracking event1993 creates a gitlab tracking event pull_package1994 behaves like successfully returning the file1995 returns the file1996 behaves like downloads with a job token1997 with a running job1998 allows download with job token1999 with a finished job2000 returns unauthorized error2001 behaves like downloads with a deploy token2002 successful download2003 allows download with deploy token2004 allows download with deploy token with only write_package_registry scope2005 with a non existing maven path2006 behaves like rejecting the request for non existing maven path2007 rejects the request2008 HEAD /api/v4/projects/:id/packages/maven/*path/:file_name2009 with check_maven_path_first enabled2010 behaves like processing HEAD requests2011 with object storage enabled2012 non AWS provider2013 does not generated a signed url for head2014 with AWS provider2015 generates a signed url for head2016 with object storage disabled2017 does not generate a signed url for head2018 with a non existing maven path2019 behaves like rejecting the request for non existing maven path2020 rejects the request2021 with check_maven_path_first disabled2022 behaves like processing HEAD requests2023 with object storage enabled2024 non AWS provider2025 does not generated a signed url for head2026 with AWS provider2027 generates a signed url for head2028 with object storage disabled2029 does not generate a signed url for head2030 with a non existing maven path2031 behaves like rejecting the request for non existing maven path2032 rejects the request2033 PUT /api/v4/projects/:id/packages/maven/*path/:file_name/authorize2034 rejects a malicious request2035 authorizes posting package with a valid token2036 rejects request without a valid token2037 rejects request without a valid permission2038 rejects requests that did not go through gitlab-workhorse2039 authorizes upload with job token2040 authorizes upload with deploy token2041 rejects requests by a unauthorized deploy token with same id as a user with access2042 PUT /api/v4/projects/:id/packages/maven/*path/:file_name2043 rejects requests without a file from workhorse2044 rejects request without a token2045 without workhorse rewritten field2046 rejects the request2047 when params from workhorse are correct2048 rejects a malicious request2049 creates package and stores package file2050 allows upload with running job token2051 rejects upload without running job token2052 allows upload with deploy token2053 rejects uploads by a unauthorized deploy token with same id as a user with access2054 FIPS mode2055 rejects the request for md5 file2056 behaves like package workhorse uploads2057 without a workhorse header2058 logs an error2059 behaves like returning response status2060 returns forbidden2061 file size is too large2062 rejects the request2063 behaves like package workhorse uploads2064 without a workhorse header2065 logs an error2066 behaves like returning response status2067 returns forbidden2068 event tracking2069 behaves like a package tracking event2070 creates a gitlab tracking event push_package2071 when the package file fails to be created2072 behaves like not a package tracking event2073 does not create a gitlab tracking event2074 version is not correct2075 rejects request2076 when package duplicates are not allowed2077 rejects the request2078 when uploading to the versionless package which contains metadata about all versions2079 behaves like storing the package file2080 stores the file2081 when uploading different non-duplicate files to the same package2082 behaves like storing the package file2083 stores the file2084 when the package name matches the exception regex2085 behaves like storing the package file2086 stores the file2087 for sha1 file2088 checks the sha12089 for md5 file2090 returns an empty body2091 with FIPS mode enabled2092 rejects the request2093API::Users2094 admin notes2095 POST /users2096 when unauthenticated2097 return authentication error2098 when authenticated2099 as an admin2100 contains the note of the user2101 as a regular user2102 does not allow creating new user2103 PUT /users/:id2104 when user is an admin2105 updates note of the user2106 when user is not an admin2107 cannot update their own note2108 PATCH /users/:id/disable_two_factor2109 when current user is an admin2110 returns a 204 when 2FA is disabled for the target user2111 uses TwoFactor Destroy Service2112 returns a 400 if 2FA is not enabled for the target user2113 returns a 403 if the target user is an admin2114 returns a 404 if the target user cannot be found2115 when current user is not an admin2116 returns a 4032117 when unauthenticated2118 returns a 4012119 GET /users/2120 when unauthenticated2121 does not contain certain fields2122 when authenticated2123 as a regular user2124 does not contain certain fields2125 as an admin2126 contains the note of users2127 GET /user2128 when authenticated2129 as an admin2130 accesses their own profile2131 contains the note of the user2132 sudo2133 accesses the profile of another regular user2134 does not contain the note of the user2135 accesses the profile of another admin2136 contains the note of the user2137 as a regular user2138 does not contain the note of the user2139 GET /users2140 when unauthenticated2141 returns authorization error when the `username` parameter is not passed2142 returns the user when a valid `username` parameter is passed2143 returns the user when a valid `username` parameter is passed (case insensitive)2144 returns an empty response when an invalid `username` parameter is passed2145 does not return the highest role2146 does not return the current or last sign-in ip addresses2147 when public level is restricted2148 returns authorization error when the `username` parameter refers to an inaccessible user2149 returns authorization error when the `username` parameter is not passed2150 when authenticated2151 returns an array of users2152 returns an array of blocked users2153 returns an array of external users2154 returns one user2155 returns one user (case insensitive)2156 returns a 403 when non-admin user searches by external UID2157 does not reveal the `is_admin` flag of the user2158 when public level is restricted2159 when authenticate as a regular user2160 renders 2002161 when authenticate as an admin2162 renders 2002163 when admin2164 exclude_internal param2165 returns all users when it is not set2166 returns all non internal users when it is set2167 without_project_bots param2168 returns all users when it is not set2169 returns all non project_bot users when it is set2170 admins param2171 returns all users2172 when admin2173 returns an array of users2174 users contain the `namespace_id` field2175 returns an array of external users2176 returns one user by external UID2177 returns 400 error if provider with no extern_uid2178 returns 400 error if provider with no extern_uid2179 returns a user created before a specific date2180 returns no users created before a specific date2181 returns users created before and after a specific date2182 returns the correct order when sorted by id2183 returns users with 2fa enabled2184 returns users without projects2185 returns 400 when provided incorrect sort params2186 when sudo is defined2187 does not return 5002188 admins param2189 returns only admins2190 GET /users/:id2191 returns a user by id2192 does not return the user's `is_admin` flag2193 does not return the user's `highest_role`2194 does not return the user's sign in IPs2195 does not contain plan or trial data2196 returns a 404 if the target user is present but inaccessible2197 returns the `created_at` field for public users2198 does not return the `created_at` field for private users2199 returns the `followers` field for public users2200 does not return the `followers` field for private users2201 returns the `following` field for public users2202 does not return the `following` field for private users2203 does not contain the note of the user2204 returns a 404 error if user id not found2205 returns a 404 for invalid ID2206 when the rate limit is not exceeded2207 returns a success status2208 when the rate limit is exceeded2209 when feature flag is enabled2210 returns "too many requests" status2211 still allows admin users2212 allows users whose username is in the allowlist2213 when job title is present2214 returns job title of a user2215 when authenticated as admin2216 contains the note of the user2217 includes the `is_admin` field2218 includes the `created_at` field for private users2219 includes the `highest_role` field2220 includes the `namespace_id` field2221 does not include values for plan or trial2222 when user has not logged in2223 does not include the sign in IPs2224 when user has logged in2225 includes the sign in IPs2226 for an anonymous user2227 returns 4032228 GET /users/:id_or_username/status2229 when finding the user by id2230 behaves like rendering user status2231 returns the status if there was one2232 returns an empty response if there was no status2233 when finding the user by username2234 behaves like rendering user status2235 returns the status if there was one2236 returns an empty response if there was no status2237 when finding the user by username (case insensitive)2238 behaves like rendering user status2239 returns the status if there was one2240 returns an empty response if there was no status2241 POST /users/:id/follow2242 on an unfollowed user2243WARNING: Active Record does not support composite primary key.2244user_follow_users has composite primary key. Composite primary key is ignored.2245 follows the user2246 on a followed user2247 does not change following2248 POST /users/:id/unfollow2249 on a followed user2250 unfollow the user2251 on an unfollowed user2252 does not change following2253 GET /users/:id/followers2254 for an anonymous user2255 returns 4032256 user has followers2257 lists followers2258 do not lists followers if profile is private2259 user does not have any follower2260 does list nothing2261 GET /users/:id/following2262 for an anonymous user2263 returns 4032264 user has followers2265 lists following user2266 do not lists following user if profile is private2267 user does not have any follower2268 does list nothing2269 POST /users2270 creates user2271 creates user with correct attributes2272 creates user with optional attributes2273 creates non-admin user2274 creates non-admin users by default2275 returns 201 Created on success2276 creates non-external users by default2277 allows an external user to be created2278 creates user with reset password2279 creates user with random password2280 creates user with private profile2281 creates user with view_diffs_file_by_file2282 does not create user with invalid email2283 returns 400 error if name not given2284 returns 400 error if password not given2285 returns 400 error if email not given2286 returns 400 error if username not given2287 doesn't create user with invalid optional attributes2288DEPRECATION WARNING: Calling `delete` to an ActiveModel::Errors messages hash is deprecated. Please call `ActiveModel::Errors#delete` instead. (called from block in model_error_messages at /builds/gitlab-org/gitlab/lib/api/helpers/users_helpers.rb:18)2289DEPRECATION WARNING: Calling `[]=` to an ActiveModel::Errors is deprecated. Please call `ActiveModel::Errors#add` instead. (called from block in model_error_messages at /builds/gitlab-org/gitlab/lib/api/helpers/users_helpers.rb:18)2290 returns 400 error if user does not validate2291 is not available for non admin users2292 with existing user2293 returns 409 conflict error if user with same email exists2294 returns 409 conflict error if same username exists2295 returns 409 conflict error if same username exists (case insensitive)2296 creates user with new identity2297 scopes2298 when the requesting token has the "read_user" scope2299 returns a "403" response2300 PUT /users/:id2301 returns 200 OK on success2302 updates user with new bio2303 updates user with empty bio2304 updates user with nil bio2305 updates user with organization2306 updates user with avatar2307 updates user with a new email2308 skips reconfirmation when requested2309 updates user with their own username2310 updates user's existing identity2311 updates user with new identity2312 updates admin status2313 updates external status2314 private profile is false by default2315 does have default values for theme and color-scheme ID2316 updates private profile2317 updates viewing diffs file by file2318 updates private profile to false when nil is given2319 does not modify private profile when field is not provided2320 does not modify theme or color-scheme ID when field is not provided2321 does not update admin status2322 does not allow invalid update2323 updates theme id2324 does not update invalid theme id2325 updates color scheme id2326 does not update invalid color scheme id2327 returns 404 for non-existing user2328 returns a 404 if invalid ID2329DEPRECATION WARNING: Calling `delete` to an ActiveModel::Errors messages hash is deprecated. Please call `ActiveModel::Errors#delete` instead. (called from block in model_error_messages at /builds/gitlab-org/gitlab/lib/api/helpers/users_helpers.rb:18)2330DEPRECATION WARNING: Calling `[]=` to an ActiveModel::Errors is deprecated. Please call `ActiveModel::Errors#add` instead. (called from block in model_error_messages at /builds/gitlab-org/gitlab/lib/api/helpers/users_helpers.rb:18)2331 returns 400 error if user does not validate2332 returns 400 if provider is missing for identity update2333 returns 400 if external UID is missing for identity update2334 updating password2335 admin updates their own password2336 does not force reset on next login2337 does not enqueue the `admin changed your password` email2338 enqueues the `password changed` email2339 admin updates the password of another user2340 forces reset on next login2341 enqueues the `admin changed your password` email2342 does not enqueue the `password changed` email2343 when the current user is not an admin2344 is not available2345 with existing user2346 returns 409 conflict error if email address exists2347 returns 409 conflict error if username taken2348 returns 409 conflict error if username taken (case insensitive)2349 PUT /user/:id/credit_card_validation2350 when unauthenticated2351 returns authentication error2352 when authenticated as non-admin2353 does not allow updating user's credit card validation2354 when authenticated as admin2355 updates user's credit card validation2356 returns 400 error if credit_card_validated_at is missing2357 returns 404 error if user not found2358 DELETE /users/:id/identities/:provider2359 when unauthenticated2360 returns authentication error2361 when authenticated2362 deletes identity of given provider2363 returns 404 error if user not found2364 returns 404 error if identity not found2365 behaves like 412 response2366 for a modified ressource2367 returns 412 with a JSON error2368 for an unmodified ressource2369 returns 204 with an empty body2370 POST /users/:id/keys2371 does not create invalid ssh key2372 does not create key without title2373 creates ssh key2374 creates SSH key with `expires_at` attribute2375 returns 400 for invalid ID2376 GET /users/:id/project_deploy_keys2377 returns 404 for non-existing user2378 returns array of project deploy keys with pagination2379 forbids when a developer fetches maintainer keys2380 with multiple projects2381 when no common projects for user and current_user2382 forbids2383 when there are common projects for user and current_user2384 lists only common project keys2385 lists only project_deploy_keys and not user deploy_keys2386 avoids N+1 queries2387 GET /user/:id/keys2388 returns 404 for non-existing user2389 returns array of ssh keys2390 returns array of ssh keys with comments replaced witha simple identifier of username + hostname2391 N+1 queries2392 avoids N+1 queries2393 GET /user/:user_id/keys2394 returns 404 for non-existing user2395 returns array of ssh keys2396 GET /user/:id/keys/:key_id2397 gets existing key2398 returns 404 error if user not found2399 returns 404 error if key not found2400 DELETE /user/:id/keys/:key_id2401 when unauthenticated2402 returns authentication error2403 when authenticated2404 deletes existing key2405 returns 404 error if user not found2406 returns 404 error if key not foud2407 behaves like 412 response2408 for a modified ressource2409 returns 412 with a JSON error2410 for an unmodified ressource2411 returns 204 with an empty body2412 POST /users/:id/gpg_keys2413 does not create invalid GPG key2414 creates GPG key2415 returns 400 for invalid ID2416 GET /user/:id/gpg_keys2417 returns 404 for non-existing user2418 returns array of GPG keys2419 GET /user/:id/gpg_keys/:key_id2420 returns 404 for non-existing user2421 returns 404 for non-existing key2422 returns a single GPG key2423 DELETE /user/:id/gpg_keys/:key_id2424 when unauthenticated2425 returns authentication error2426 when authenticated2427 deletes existing key2428 returns 404 error if user not found2429 returns 404 error if key not foud2430 POST /user/:id/gpg_keys/:key_id/revoke2431 when unauthenticated2432 returns authentication error2433 when authenticated2434 revokes existing key2435 returns 404 error if user not found2436 returns 404 error if key not foud2437 POST /users/:id/emails2438 does not create invalid email2439 creates unverified email2440 returns a 400 for invalid ID2441 creates verified email2442 GET /user/:id/emails2443 when unauthenticated2444 returns authentication error2445 when authenticated2446 returns 404 for non-existing user2447 returns array of emails2448 returns a 404 for invalid ID2449 DELETE /user/:id/emails/:email_id2450 when unauthenticated2451 returns authentication error2452 when authenticated2453 deletes existing email2454 returns 404 error if user not found2455 returns 404 error if email not foud2456 returns a 404 for invalid ID2457 behaves like 412 response2458 for a modified ressource2459 returns 412 with a JSON error2460 for an unmodified ressource2461 returns 204 with an empty body2462 DELETE /users/:id2463 deletes user2464 does not delete for unauthenticated user2465 is not available for non admin users2466 returns 404 for non-existing user2467 returns a 404 for invalid ID2468 sole owner of a group2469 hard delete disabled2470 does not delete user2471 hard delete enabled2472 delete user and group2473 with subgroup owning2474 delete only user2475 behaves like 412 response2476 for a modified ressource2477 returns 412 with a JSON error2478 for an unmodified ressource2479 returns 204 with an empty body2480 hard delete disabled2481 moves contributions to the ghost user2482 hard delete enabled2483 removes contributions2484 GET /user2485 behaves like get user info2486 with regular user2487 returns current user without private token when sudo not defined2488 with personal access token2489 returns 403 without private token when sudo is defined2490 scopes2491 for personal access tokens2492 when the requesting token has the "api" scope2493 returns a "200" response on get request2494 returns a "200" response on head request2495 when the requesting token has the "read_user" scope2496 returns a "200" response on get request2497 returns a "200" response on head request2498 when the requesting token does not have any required scope2499 returns a "403" response2500 for doorkeeper (OAuth) tokens2501 when the requesting token has the "api" scope2502 returns a "200" response on get request2503 returns a "200" response on head request2504 when the requesting token has the "read_user" scope2505 returns a "200" response on get request2506 returns a "200" response on head request2507 when the requesting token does not have any required scope2508 returns a "403" response2509 with admin2510 with personal access token2511 returns 403 without private token when sudo defined2512 returns initial current user without private token but with is_admin when sudo not defined2513 with unauthenticated user2514 returns 401 error if user is unauthenticated2515 behaves like get user info2516 with regular user2517 returns current user without private token when sudo not defined2518 with personal access token2519 returns 403 without private token when sudo is defined2520 scopes2521 for personal access tokens2522 when the requesting token has the "api" scope2523 returns a "200" response on get request2524 returns a "200" response on head request2525 when the requesting token has the "read_user" scope2526 returns a "200" response on get request2527 returns a "200" response on head request2528 when the requesting token does not have any required scope2529 returns a "403" response2530 for doorkeeper (OAuth) tokens2531 when the requesting token has the "api" scope2532 returns a "200" response on get request2533 returns a "200" response on head request2534 when the requesting token has the "read_user" scope2535 returns a "200" response on get request2536 returns a "200" response on head request2537 when the requesting token does not have any required scope2538 returns a "403" response2539 with admin2540 with personal access token2541 returns 403 without private token when sudo defined2542 returns initial current user without private token but with is_admin when sudo not defined2543 with unauthenticated user2544 returns 401 error if user is unauthenticated2545 GET /user/preferences2546 when unauthenticated2547 returns authentication error2548 when authenticated2549 returns user preferences2550 GET /user/keys2551 when unauthenticated2552 returns authentication error2553 when authenticated2554 returns array of ssh keys2555 returns array of ssh keys with comments replaced witha simple identifier of username + hostname2556 N+1 queries2557 avoids N+1 queries2558 scopes2559 for personal access tokens2560 when the requesting token has the "api" scope2561 returns a "200" response on get request2562 returns a "200" response on head request2563 when the requesting token has the "read_user" scope2564 returns a "200" response on get request2565 returns a "200" response on head request2566 when the requesting token does not have any required scope2567 returns a "403" response2568 for doorkeeper (OAuth) tokens2569 when the requesting token has the "api" scope2570 returns a "200" response on get request2571 returns a "200" response on head request2572 when the requesting token has the "read_user" scope2573 returns a "200" response on get request2574 returns a "200" response on head request2575 when the requesting token does not have any required scope2576 returns a "403" response2577 GET /user/keys/:key_id2578 returns single key2579 exposes SSH key comment as a simple identifier of username + hostname2580 returns 404 Not Found within invalid ID2581 returns 404 error if admin accesses user's ssh key2582 returns 404 for invalid ID2583 scopes2584 for personal access tokens2585 when the requesting token has the "api" scope2586 returns a "200" response on get request2587 returns a "200" response on head request2588 when the requesting token has the "read_user" scope2589 returns a "200" response on get request2590 returns a "200" response on head request2591 when the requesting token does not have any required scope2592 returns a "403" response2593 for doorkeeper (OAuth) tokens2594 when the requesting token has the "api" scope2595 returns a "200" response on get request2596 returns a "200" response on head request2597 when the requesting token has the "read_user" scope2598 returns a "200" response on get request2599 returns a "200" response on head request2600 when the requesting token does not have any required scope2601 returns a "403" response2602 POST /user/keys2603 creates ssh key2604 creates SSH key with `expires_at` attribute2605 returns a 401 error if unauthorized2606 does not create ssh key without key2607 does not create ssh key without title2608 does not create ssh key without title2609 DELETE /user/keys/:key_id2610 deletes existed key2611 returns 404 if key ID not found2612 returns 401 error if unauthorized2613 returns a 404 for invalid ID2614 behaves like 412 response2615 for a modified ressource2616 returns 412 with a JSON error2617 for an unmodified ressource2618 returns 204 with an empty body2619 GET /user/gpg_keys2620 when unauthenticated2621 returns authentication error2622 when authenticated2623 returns array of GPG keys2624 scopes2625 for personal access tokens2626 when the requesting token has the "api" scope2627 returns a "200" response on get request2628 returns a "200" response on head request2629 when the requesting token has the "read_user" scope2630 returns a "200" response on get request2631 returns a "200" response on head request2632 when the requesting token does not have any required scope2633 returns a "403" response2634 for doorkeeper (OAuth) tokens2635 when the requesting token has the "api" scope2636 returns a "200" response on get request2637 returns a "200" response on head request2638 when the requesting token has the "read_user" scope2639 returns a "200" response on get request2640 returns a "200" response on head request2641 when the requesting token does not have any required scope2642 returns a "403" response2643 GET /user/gpg_keys/:key_id2644 returns a single key2645 returns 404 Not Found within invalid ID2646 returns 404 error if admin accesses user's GPG key2647 returns 404 for invalid ID2648 scopes2649 for personal access tokens2650 when the requesting token has the "api" scope2651 returns a "200" response on get request2652 returns a "200" response on head request2653 when the requesting token has the "read_user" scope2654 returns a "200" response on get request2655 returns a "200" response on head request2656 when the requesting token does not have any required scope2657 returns a "403" response2658 for doorkeeper (OAuth) tokens2659 when the requesting token has the "api" scope2660 returns a "200" response on get request2661 returns a "200" response on head request2662 when the requesting token has the "read_user" scope2663 returns a "200" response on get request2664 returns a "200" response on head request2665 when the requesting token does not have any required scope2666 returns a "403" response2667 POST /user/gpg_keys2668 creates a GPG key2669 returns a 401 error if unauthorized2670 does not create GPG key without key2671 POST /user/gpg_keys/:key_id/revoke2672 revokes existing GPG key2673 returns 404 if key ID not found2674 returns 401 error if unauthorized2675 returns a 404 for invalid ID2676 DELETE /user/gpg_keys/:key_id2677 deletes existing GPG key2678 returns 404 if key ID not found2679 returns 401 error if unauthorized2680 returns a 404 for invalid ID2681 GET /user/emails2682 when unauthenticated2683 returns authentication error2684 when authenticated2685 returns array of emails2686 scopes2687 for personal access tokens2688 when the requesting token has the "api" scope2689 returns a "200" response on get request2690 returns a "200" response on head request2691 when the requesting token has the "read_user" scope2692 returns a "200" response on get request2693 returns a "200" response on head request2694 when the requesting token does not have any required scope2695 returns a "403" response2696 for doorkeeper (OAuth) tokens2697 when the requesting token has the "api" scope2698 returns a "200" response on get request2699 returns a "200" response on head request2700 when the requesting token has the "read_user" scope2701 returns a "200" response on get request2702 returns a "200" response on head request2703 when the requesting token does not have any required scope2704 returns a "403" response2705 GET /user/emails/:email_id2706 returns single email2707 returns 404 Not Found within invalid ID2708 returns 404 error if admin accesses user's email2709 returns 404 for invalid ID2710 scopes2711 for personal access tokens2712 when the requesting token has the "api" scope2713 returns a "200" response on get request2714 returns a "200" response on head request2715 when the requesting token has the "read_user" scope2716 returns a "200" response on get request2717 returns a "200" response on head request2718 when the requesting token does not have any required scope2719 returns a "403" response2720 for doorkeeper (OAuth) tokens2721 when the requesting token has the "api" scope2722 returns a "200" response on get request2723 returns a "200" response on head request2724 when the requesting token has the "read_user" scope2725 returns a "200" response on get request2726 returns a "200" response on head request2727 when the requesting token does not have any required scope2728 returns a "403" response2729 POST /user/emails2730 creates email2731 returns a 401 error if unauthorized2732 does not create email with invalid email2733 DELETE /user/emails/:email_id2734 deletes existed email2735 returns 404 if email ID not found2736 returns 401 error if unauthorized2737 returns 400 for invalid ID2738 behaves like 412 response2739 for a modified ressource2740 returns 412 with a JSON error2741 for an unmodified ressource2742 returns 204 with an empty body2743 activate and deactivate2744 POST /users/:id/activate2745 performed by a non-admin user2746 is not authorized to perform the action2747 performed by an admin user2748 for a deactivated user2749 activates a deactivated user2750 for an active user2751 returns 2012752 for a blocked user2753 returns 4032754 for a ldap blocked user2755 returns 4032756 for a user that does not exist2757 behaves like 4042758 returns 4042759 POST /users/:id/deactivate2760 performed by a non-admin user2761 is not authorized to perform the action2762 performed by an admin user2763 for an active user2764 with no recent activity2765 deactivates an active user2766 with recent activity2767 does not deactivate an active user2768 for a deactivated user2769 returns 2012770 for a blocked user2771 returns 4032772 for a ldap blocked user2773 returns 4032774 for an internal user2775 returns 4032776 for a user that does not exist2777 behaves like 4042778 returns 4042779 approve and reject pending user2780 POST /users/:id/approve2781 performed by a non-admin user2782 is not authorized to perform the action2783 performed by an admin user2784 for a deactivated user2785 does not approve a deactivated user2786 for an pending approval user2787 returns 2012788 for an active user2789 returns 2012790 for a blocked user2791 returns 4032792 for a ldap blocked user2793 returns 4032794 for a user that does not exist2795 behaves like 4042796 returns 4042797 POST /users/:id/reject2798 performed by a non-admin user2799 returns 4032800 performed by an admin user2801 for an pending approval user2802 returns 2002803 for a deactivated user2804 does not reject a deactivated user2805 behaves like returns 4092806 returns 4092807 for an active user2808 does not reject an active user2809 behaves like returns 4092810 returns 4092811 for a blocked user2812 does not reject a blocked user2813 behaves like returns 4092814 returns 4092815 for a ldap blocked user2816 does not reject a ldap blocked user2817 behaves like returns 4092818 returns 4092819 for a user that does not exist2820 behaves like 4042821 returns 4042822 POST /users/:id/block2823 is not available for non admin users2824 when admin2825 with an existing user2826 blocks existing user2827 with an ldap blocked user2828 does not re-block ldap blocked users2829 with a non existent user2830 does not block non existent user, returns 4042831 with an internal user2832 does not block internal user, returns 4032833 with a blocked user2834 returns a 201 if user is already blocked2835 with the API initiating user2836 does not block the API initiating user, returns 4032837 POST /users/:id/unblock2838 is not available for non admin users2839 when admin2840 with an existing user2841 unblocks existing user2842 with a blocked user2843 unblocks a blocked user2844 with a ldap blocked user2845 does not unblock ldap blocked users2846 with a deactivated user2847 does not unblock deactivated users2848 with a non existent user2849 returns a 404 error if user id not found2850 with an invalid user id2851 returns a 4042852 POST /users/:id/ban2853 is not available for non-admin users2854 when admin2855 with an active user2856 bans an active user2857 with an ldap blocked user2858 does not ban ldap blocked users2859 with a deactivated user2860 does not ban deactivated users2861 with a banned user2862 does not ban banned users2863 with a non existent user2864 does not ban non existent users2865 with an invalid id2866 does not ban invalid id users2867 POST /users/:id/unban2868 is not available for non admin users2869 when admin2870 with a banned user2871 activates a banned user2872 with an ldap_blocked user2873 does not unban ldap_blocked users2874 with a deactivated user2875 does not unban deactivated users2876 with an active user2877 does not unban active users2878 with a non existent user2879 does not unban non existent users2880 with an invalid id user2881 does not unban invalid id users2882 GET /users/:id/memberships2883 responses with 4032884 requested by admin user2885 responses successfully2886 does not submit N+1 DB queries2887 with type filter2888 only returns project memberships2889 only returns group memberships2890 recognizes unsupported types2891 user activities2892 last activity as normal user2893 has no permission2894 as admin2895 returns the activities from the last 6 months2896 passing a :from parameter2897 returns the activities from the given date2898 GET /user/status2899 behaves like rendering user status2900 returns the status if there was one2901 returns an empty response if there was no status2902 PUT /user/status2903 saves the status2904 renders errors when the status was invalid2905 deletes the status when passing empty values2906 when clear_status_after is given2907 sets the clear_status_at column2908 unsets the clear_status_at column2909 raises error when unknown status value is given2910 POST /users/:user_id/personal_access_tokens2911 returns error if required attributes are missing2912 returns a 404 error if user not found2913 returns a 401 error when not authenticated2914 returns a 403 error when authenticated as normal user2915 creates a personal access token when authenticated as admin2916 when an error is thrown by the model2917 returns the error2918 GET /users/:user_id/impersonation_tokens2919 returns a 404 error if user not found2920 returns a 403 error when authenticated as normal user2921 returns an array of all impersonated tokens2922 returns an array of active impersonation tokens if state active2923 returns an array of inactive personal access tokens if active is set to false2924 POST /users/:user_id/impersonation_tokens2925 returns validation error if impersonation token misses some attributes2926 returns a 404 error if user not found2927 returns a 403 error when authenticated as normal user2928 creates a impersonation token2929 GET /users/:user_id/impersonation_tokens/:impersonation_token_id2930 returns 404 error if user not found2931 returns a 404 error if impersonation token not found2932 returns a 404 error if token is not impersonation token2933 returns a 403 error when authenticated as normal user2934 returns an impersonation token2935 DELETE /users/:user_id/impersonation_tokens/:impersonation_token_id2936 returns a 404 error if user not found2937 returns a 404 error if impersonation token not found2938 returns a 404 error if token is not impersonation token2939 returns a 403 error when authenticated as normal user2940 revokes a impersonation token2941 behaves like 412 response2942 for a modified ressource2943 returns 412 with a JSON error2944 for an unmodified ressource2945 returns 204 with an empty body2946 behaves like custom attributes endpoints2947 GET /users with custom attributes filter2948 with an unauthorized user2949 does not filter by custom attributes2950 with an authorized user2951 filters by custom attributes2952 GET /users with custom attributes2953 with an unauthorized user2954 does not include custom attributes2955 with an authorized user2956 does not include custom attributes by default2957 includes custom attributes if requested2958 GET /users/:id with custom attributes2959 with an unauthorized user2960 does not include custom attributes2961 with an authorized user2962 does not include custom attributes by default2963 includes custom attributes if requested2964 GET /users/:id/custom_attributes2965 with an unauthorized user2966 behaves like an unauthorized API user2967 is expected to eq 4032968 with an authorized user2969 returns all custom attributes2970 GET /users/:id/custom_attributes/:key2971 with an unauthorized user2972 behaves like an unauthorized API user2973 is expected to eq 4032974 with an authorized user2975 returns a single custom attribute2976 PUT /users/:id/custom_attributes/:key2977 with an unauthorized user2978 behaves like an unauthorized API user2979 is expected to eq 4032980 with an authorized user2981 creates a new custom attribute2982 updates an existing custom attribute2983 DELETE /users/:id/custom_attributes/:key2984 with an unauthorized user2985 behaves like an unauthorized API user2986 is expected to eq 4032987 with an authorized user2988 deletes an existing custom attribute2989API::Branches2990 GET /projects/:id/repository/branches2991 when search parameter is passed2992 and branch exists2993 returns correct branches2994 and branch does not exist2995 returns an empty array2996 when sort parameter is passed2997 sorts branches2998 when sort value is not supported2999 behaves like 400 response3000 returns 4003001 when unauthenticated and project is public3002 behaves like repository branches3003 with branch_list_keyset_pagination feature off3004 with offset pagination params3005 returns the repository branches3006 determines only a limited number of merged branch names3007 merge status matches reality on paginated input3008 recovers pagination headers from cache between consecutive requests3009 with gitaly pagination params3010 merge status matches reality on paginated input3011 with branch_list_keyset_pagination feature on3012 with keyset pagination option3013 with gitaly pagination params3014 returns the repository branches3015 determines only a limited number of merged branch names3016 merge status matches reality on paginated input3017 with offset pagination params3018 ignores legacy pagination params3019 when repository is disabled3020 behaves like 404 response3021 returns 4043022 when unauthenticated and project is private3023 behaves like 404 response3024 returns 4043025 when authenticated as a maintainer3026 does not submit N+1 DB queries3027 behaves like repository branches3028 with branch_list_keyset_pagination feature off3029 with offset pagination params3030 returns the repository branches3031 determines only a limited number of merged branch names3032 merge status matches reality on paginated input3033 recovers pagination headers from cache between consecutive requests3034 with gitaly pagination params3035 merge status matches reality on paginated input3036 with branch_list_keyset_pagination feature on3037 with keyset pagination option3038 with gitaly pagination params3039 returns the repository branches3040 determines only a limited number of merged branch names3041 merge status matches reality on paginated input3042 with offset pagination params3043 ignores legacy pagination params3044 when repository is disabled3045 behaves like 404 response3046 returns 4043047 requesting with the escaped project full path3048 behaves like repository branches3049 with branch_list_keyset_pagination feature off3050 with offset pagination params3051 returns the repository branches3052 determines only a limited number of merged branch names3053 merge status matches reality on paginated input3054 recovers pagination headers from cache between consecutive requests3055 with gitaly pagination params3056 merge status matches reality on paginated input3057 with branch_list_keyset_pagination feature on3058 with keyset pagination option3059 with gitaly pagination params3060 returns the repository branches3061 determines only a limited number of merged branch names3062 merge status matches reality on paginated input3063 with offset pagination params3064 ignores legacy pagination params3065 when repository is disabled3066 behaves like 404 response3067 returns 4043068 when authenticated as a guest3069 behaves like 403 response3070 returns 4033071 GET /projects/:id/repository/branches/:branch3072 when unauthenticated and project is public3073 returns that the current user cannot push3074 behaves like repository branch3075 returns the repository branch3076 HEAD request3077 returns 204 No Content3078 returns 404 Not Found3079 when branch does not exist3080 behaves like 404 response3081 returns 4043082 when the branch refname is invalid3083 behaves like 400 response3084 returns 4003085 when repository is disabled3086 behaves like 404 response3087 returns 4043088 when repository does not exist3089 behaves like 404 response3090 returns 4043091 when unauthenticated and project is private3092 behaves like 404 response3093 returns 4043094 when authenticated as a maintainer3095 returns that the current user can push3096 behaves like repository branch3097 returns the repository branch3098 HEAD request3099 returns 204 No Content3100 returns 404 Not Found3101 when branch does not exist3102 behaves like 404 response3103 returns 4043104 when the branch refname is invalid3105 behaves like 400 response3106 returns 4003107 when repository is disabled3108 behaves like 404 response3109 returns 4043110 when repository does not exist3111 behaves like 404 response3112 returns 4043113 when branch contains a dot3114 behaves like repository branch3115 returns the repository branch3116 HEAD request3117 returns 204 No Content3118 returns 404 Not Found3119 when branch does not exist3120 behaves like 404 response3121 returns 4043122 when the branch refname is invalid3123 behaves like 400 response3124 returns 4003125 when repository is disabled3126 behaves like 404 response3127 returns 4043128 when repository does not exist3129 behaves like 404 response3130 returns 4043131 when branch contains dot txt3132 behaves like repository branch3133 returns the repository branch3134 HEAD request3135 returns 204 No Content3136 returns 404 Not Found3137 when branch does not exist3138 behaves like 404 response3139 returns 4043140 when the branch refname is invalid3141 behaves like 400 response3142 returns 4003143 when repository is disabled3144 behaves like 404 response3145 returns 4043146 when repository does not exist3147 behaves like 404 response3148 returns 4043149 when branch contains a slash3150 behaves like 404 response3151 returns 4043152 when branch contains an escaped slash3153 behaves like repository branch3154 returns the repository branch3155 HEAD request3156 returns 204 No Content3157 returns 404 Not Found3158 when branch does not exist3159 behaves like 404 response3160 returns 4043161 when the branch refname is invalid3162 behaves like 400 response3163 returns 4003164 when repository is disabled3165 behaves like 404 response3166 returns 4043167 when repository does not exist3168 behaves like 404 response3169 returns 4043170 requesting with the escaped project full path3171 behaves like repository branch3172 returns the repository branch3173 HEAD request3174 returns 204 No Content3175 returns 404 Not Found3176 when branch does not exist3177 behaves like 404 response3178 returns 4043179 when the branch refname is invalid3180 behaves like 400 response3181 returns 4003182 when repository is disabled3183 behaves like 404 response3184 returns 4043185 when repository does not exist3186 behaves like 404 response3187 returns 4043188 when branch contains a dot3189 behaves like repository branch3190 returns the repository branch3191 HEAD request3192 returns 204 No Content3193 returns 404 Not Found3194 when branch does not exist3195 behaves like 404 response3196 returns 4043197 when the branch refname is invalid3198 behaves like 400 response3199 returns 4003200 when repository is disabled3201 behaves like 404 response3202 returns 4043203 when repository does not exist3204 behaves like 404 response3205 returns 4043206 when authenticated as a developer and branch is protected3207 returns that the current user cannot push3208 behaves like repository branch3209 returns the repository branch3210 HEAD request3211 returns 204 No Content3212 returns 404 Not Found3213 when branch does not exist3214 behaves like 404 response3215 returns 4043216 when the branch refname is invalid3217 behaves like 400 response3218 returns 4003219 when repository is disabled3220 behaves like 404 response3221 returns 4043222 when repository does not exist3223 behaves like 404 response3224 returns 4043225 when authenticated as a guest3226 behaves like 403 response3227 returns 4033228 PUT /projects/:id/repository/branches/:branch/protect3229 when unauthenticated and project is private3230 behaves like 404 response3231 returns 4043232 when authenticated as a guest3233 behaves like 403 response3234 returns 4033235 when authenticated as a maintainer3236 when a protected branch doesn't already exist3237 behaves like repository new protected branch3238 protects a single branch3239 protects a single branch and developers can push3240 protects a single branch and developers can merge3241 protects a single branch and developers can push and merge3242 when branch does not exist3243 behaves like 404 response3244 returns 4043245 when the branch refname is invalid3246 behaves like 400 response3247 returns 4003248 when repository is disabled3249 behaves like 404 response3250 returns 4043251 when branch contains a dot3252 behaves like repository new protected branch3253 protects a single branch3254 protects a single branch and developers can push3255 protects a single branch and developers can merge3256 protects a single branch and developers can push and merge3257 when branch does not exist3258 behaves like 404 response3259 returns 4043260 when the branch refname is invalid3261 behaves like 400 response3262 returns 4003263 when repository is disabled3264 behaves like 404 response3265 returns 4043266 when branch contains a slash3267 behaves like 404 response3268 returns 4043269 when branch contains an escaped slash3270 behaves like repository new protected branch3271 protects a single branch3272 protects a single branch and developers can push3273 protects a single branch and developers can merge3274 protects a single branch and developers can push and merge3275 when branch does not exist3276 behaves like 404 response3277 returns 4043278 when the branch refname is invalid3279 behaves like 400 response3280 returns 4003281 when repository is disabled3282 behaves like 404 response3283 returns 4043284 requesting with the escaped project full path3285 behaves like repository new protected branch3286 protects a single branch3287 protects a single branch and developers can push3288 protects a single branch and developers can merge3289 protects a single branch and developers can push and merge3290 when branch does not exist3291 behaves like 404 response3292 returns 4043293 when the branch refname is invalid3294 behaves like 400 response3295 returns 4003296 when repository is disabled3297 behaves like 404 response3298 returns 4043299 when branch contains a dot3300 behaves like repository new protected branch3301 protects a single branch3302 protects a single branch and developers can push3303 protects a single branch and developers can merge3304 protects a single branch and developers can push and merge3305 when branch does not exist3306 behaves like 404 response3307 returns 4043308 when the branch refname is invalid3309 behaves like 400 response3310 returns 4003311 when repository is disabled3312 behaves like 404 response3313 returns 4043314 when protected branch already exists3315 when developers can push and merge3316 updates that a developer cannot push or merge3317 when developers cannot push or merge3318 updates that a developer can push and merge3319 PUT /projects/:id/repository/branches/:branch/unprotect3320 when unauthenticated and project is private3321 behaves like 404 response3322 returns 4043323 when authenticated as a guest3324 behaves like 403 response3325 returns 4033326 when authenticated as a maintainer3327 when a protected branch doesn't already exist3328 behaves like repository unprotected branch3329 unprotects a single branch3330 when branch does not exist3331 behaves like 404 response3332 returns 4043333 when the branch refname is invalid3334 behaves like 400 response3335 returns 4003336 when repository is disabled3337 behaves like 404 response3338 returns 4043339 when branch contains a dot3340 behaves like repository unprotected branch3341 unprotects a single branch3342 when branch does not exist3343 behaves like 404 response3344 returns 4043345 when the branch refname is invalid3346 behaves like 400 response3347 returns 4003348 when repository is disabled3349 behaves like 404 response3350 returns 4043351 when branch contains a slash3352 behaves like 404 response3353 returns 4043354 when branch contains an escaped slash3355 behaves like repository unprotected branch3356 unprotects a single branch3357 when branch does not exist3358 behaves like 404 response3359 returns 4043360 when the branch refname is invalid3361 behaves like 400 response3362 returns 4003363 when repository is disabled3364 behaves like 404 response3365 returns 4043366 requesting with the escaped project full path3367 behaves like repository unprotected branch3368 unprotects a single branch3369 when branch does not exist3370 behaves like 404 response3371 returns 4043372 when the branch refname is invalid3373 behaves like 400 response3374 returns 4003375 when repository is disabled3376 behaves like 404 response3377 returns 4043378 when branch contains a dot3379 behaves like repository unprotected branch3380 unprotects a single branch3381 when branch does not exist3382 behaves like 404 response3383 returns 4043384 when the branch refname is invalid3385 behaves like 400 response3386 returns 4003387 when repository is disabled3388 behaves like 404 response3389 returns 4043390 POST /projects/:id/repository/branches3391 returns 400 if branch name is invalid3392 returns 400 if branch already exists3393 returns 400 if ref name is invalid3394 when unauthenticated and project is private3395 behaves like 404 response3396 returns 4043397 when authenticated as a guest3398 behaves like 403 response3399 returns 4033400 when authenticated as a maintainer3401 when a protected branch doesn't already exist3402 behaves like repository new branch3403 creates a new branch3404 when repository is disabled3405 behaves like 404 response3406 returns 4043407 requesting with the escaped project full path3408 behaves like repository new branch3409 creates a new branch3410 when repository is disabled3411 behaves like 404 response3412 returns 4043413 DELETE /projects/:id/repository/branches/:branch3414 removes branch3415 removes a branch with dots in the branch name3416 returns 404 if branch not exists3417 when the branch refname is invalid3418 behaves like 400 response3419 returns 4003420 behaves like 412 response3421 for a modified ressource3422 returns 412 with a JSON error3423 for an unmodified ressource3424 returns 204 with an empty body3425 DELETE /projects/:id/repository/merged_branches3426 returns 202 with json body3427 returns a 403 error if guest3428Projects::ClustersController3429 GET index3430 functionality3431 when project has one or more clusters3432 lists available clusters and renders html3433 lists available clusters with json serializer3434 sets the polling interval header for json requests3435 feature flag is disabled3436 does not list any clusters3437 when page is specified3438 redirects to the page3439 displays cluster list for associated page3440 when project does not have a cluster3441 returns an empty state page3442 security3443 is allowed for admin when admin mode enabled3444 is disabled for admin when admin mode disabled3445 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 2003446 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 2003447 is expected to be allowed for developer. Expected: 200,201,204,302 Got: 2003448 is expected to be denied for reporter. Expected: 401,404 Got: 4043449 is expected to be denied for guest. Expected: 401,404 Got: 4043450 is expected to be denied for user. Expected: 401,404 Got: 4043451 is expected to be denied for external. Expected: 401,404 Got: 4043452 GET #prometheus_proxy3453 behaves like metrics dashboard prometheus api proxy3454 with valid requests3455 with success result3456 returns prometheus response3457 with nil query3458 does not raise error3459 with nil result3460 returns 204 no_content3461 with 404 result3462 returns body3463 with error result3464 with http_status3465 sets the http response status code3466 without http_status3467 returns bad_request3468 with inappropriate requests3469 without correct permissions3470 returns 4043471 with invalid proxyable id3472 returns 4043473 with anonymous user3474 redirects to signin page3475 behaves like GET #metrics_dashboard for dashboard3476 returns correct dashboard3477 behaves like GET #metrics_dashboard correctly formatted response3478 returns a json object with the correct keys3479 POST create for existing cluster3480 feature flag is disabled3481 responds with :not_found3482 functionality3483 when creates a cluster3484 creates a new cluster3485 when creates a RBAC-enabled cluster3486 creates a new cluster3487 when creates a user-managed cluster3488 creates a new user-managed cluster3489 security3490 is allowed for admin when admin mode enabled3491 is disabled for admin when admin mode disabled3492 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 3023493 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 3023494 is expected to be denied for developer. Expected: 401,404 Got: 4043495 is expected to be denied for reporter. Expected: 401,404 Got: 4043496 is expected to be denied for guest. Expected: 401,404 Got: 4043497 is expected to be denied for user. Expected: 401,404 Got: 4043498 is expected to be denied for external. Expected: 401,404 Got: 4043499 DELETE clear cluster cache3500 deletes the namespaces associated with the cluster3501 feature flag is disabled3502 responds with :not_found3503 security3504 is allowed for admin when admin mode enabled3505 is disabled for admin when admin mode disabled3506 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 3023507 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 3023508 is expected to be denied for developer. Expected: 401,404 Got: 4043509 is expected to be denied for reporter. Expected: 401,404 Got: 4043510 is expected to be denied for guest. Expected: 401,404 Got: 4043511 is expected to be denied for user. Expected: 401,404 Got: 4043512 is expected to be denied for external. Expected: 401,404 Got: 4043513 GET cluster_status3514 feature flag is disabled3515 responds with :not_found3516 functionality3517 responds with matching schema3518 invokes schedule_status_update on each application3519 security3520 is allowed for admin when admin mode enabled3521 is disabled for admin when admin mode disabled3522 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 2003523 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 2003524 is expected to be denied for developer. Expected: 401,404 Got: 4043525 is expected to be denied for reporter. Expected: 401,404 Got: 4043526 is expected to be denied for guest. Expected: 401,404 Got: 4043527 is expected to be denied for user. Expected: 401,404 Got: 4043528 is expected to be denied for external. Expected: 401,404 Got: 4043529 GET show3530 feature flag is disabled3531 responds with :not_found3532 functionality3533 renders view3534 renders integration tab view3535 security3536 is allowed for admin when admin mode enabled3537 is disabled for admin when admin mode disabled3538 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 2003539 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 2003540 is expected to be allowed for developer. Expected: 200,201,204,302 Got: 2003541 is expected to be denied for reporter. Expected: 401,404 Got: 4043542 is expected to be denied for guest. Expected: 401,404 Got: 4043543 is expected to be denied for user. Expected: 401,404 Got: 4043544 is expected to be denied for external. Expected: 401,404 Got: 4043545 PUT update3546 updates and redirects back to show page3547 feature flag is disabled3548 responds with :not_found3549 when format is json3550 when changing parameters3551 when valid parameters are used3552 updates and redirects back to show page3553 when invalid parameters are used3554 rejects changes3555 security3556 is allowed for admin when admin mode enabled3557 is disabled for admin when admin mode disabled3558 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 3023559 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 3023560 is expected to be denied for developer. Expected: 401,404 Got: 4043561 is expected to be denied for reporter. Expected: 401,404 Got: 4043562 is expected to be denied for guest. Expected: 401,404 Got: 4043563 is expected to be denied for user. Expected: 401,404 Got: 4043564 is expected to be denied for external. Expected: 401,404 Got: 4043565 DELETE destroy3566 feature flag is disabled3567 responds with :not_found3568 functionality3569 when cluster is provided by GCP3570 when cluster is created3571 destroys and redirects back to clusters list3572 when cluster is being created3573 destroys and redirects back to clusters list3574 when cluster is provided by user3575 destroys and redirects back to clusters list3576 security3577 is allowed for admin when admin mode enabled3578 is disabled for admin when admin mode disabled3579 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 3023580 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 3023581 is expected to be denied for developer. Expected: 401,404 Got: 4043582 is expected to be denied for reporter. Expected: 401,404 Got: 4043583 is expected to be denied for guest. Expected: 401,404 Got: 4043584 is expected to be denied for user. Expected: 401,404 Got: 4043585 is expected to be denied for external. Expected: 401,404 Got: 4043586 no project_id param3587 does not respond to any action without project_id param3588Projects::BranchesController3589 POST create with HTML format3590 on creation of a new branch3591 valid branch name, valid source3592 redirects3593 invalid branch name, valid ref3594 redirects3595 valid branch name, invalid ref3596 is expected to render template new3597 invalid branch name, invalid ref3598 is expected to render template new3599 valid branch name with encoded slashes3600 is expected to render template new3601 example at ./spec/controllers/projects/branches_controller_spec.rb:733602 created from the new branch button on issues3603 redirects3604 posts a system note3605 confidential_issue_project_id is present3606 user cannot update issue3607 does not post a system note3608 user can update issue3609 issue is under the specified project3610 posts a system note3611 issue is not under the specified project3612 does not post a system note3613 repository-less project3614 redirects to newly created branch3615 redirects to autodeploy setup page3616 when user configured kubernetes from CI/CD > Clusters3617 redirects to autodeploy setup page3618 when create branch service fails3619 doesn't post a system note3620 without issue feature access3621 doesn't post a system note3622 POST create with JSON format3623 with valid params3624 returns a successful 200 response3625 returns the created branch3626 with invalid params3627 returns an unprocessable entity 422 response3628 POST destroy with HTML format3629 returns response code 3033630 with http referer3631 redirects to the referer path3632 without http referer3633 redirects to the project branches path3634 POST destroy3635 as JS3636 valid branch name, valid source3637 is expected to respond with numeric status code ok3638 is expected to be blank3639 valid branch name with unencoded slashes3640 is expected to respond with numeric status code ok3641 is expected to be blank3642 valid branch name with encoded slashes3643 is expected to respond with numeric status code not_found3644 is expected to be blank3645 invalid branch name, valid ref3646 is expected to respond with numeric status code not_found3647 is expected to be blank3648 as JSON3649 valid branch name, valid source3650 returns JSON response with message3651 is expected to respond with numeric status code ok3652 valid branch name with unencoded slashes3653 returns JSON response with message3654 is expected to respond with numeric status code ok3655 valid branch name with encoded slashes3656 returns JSON response with message3657 is expected to respond with numeric status code not_found3658 invalid branch name, valid ref3659 returns JSON response with message3660 is expected to respond with numeric status code not_found3661 as HTML3662 redirects to branches path3663 DELETE destroy_all_merged3664 when user is allowed to push3665 redirects to branches3666 starts worker to delete merged branches3667 when user is not allowed to push3668 responds with status 4043669 GET index3670 when rendering a JSON format3671 filters branches by name3672 when a branch has multiple pipelines3673 chooses the latest to determine status3674 when multiple branches exist3675 all relevant commit statuses are received3676 when a branch contains no pipelines3677 no commit statuses are received3678 when cache is enabled yet cold3679 return with a status 2003680 when branch contains an invalid UTF-8 sequence3681 return with a status 2003682 when deprecated sort/search/page parameters are specified3683 returns with a status 301 when sort specified3684 returns with a status 301 when search specified3685 returns with a status 301 when page specified3686 fetching branches for overview3687 sets active and stale branches3688 sorting3689 is expected to eq "name_asc"3690 when sort is not provided3691 uses a default sort without an error message3692 when sort is not supported3693 uses a default sort and shows an error message3694 when gitaly is not available3695 returns with a status 5033696 sets gitaly_unavailable variable3697 GET diverging_commit_counts3698 returns the commit counts behind and ahead of default branch3699 returns the commits counts with no names provided3700 with many branches3701 returns 422 if no names are specified3702 returns the list of counts3703API::Ci::Triggers3704 POST /projects/:project_id/trigger/pipeline3705 Handles errors3706 returns bad request if token is missing3707 returns not found if project is not found3708 Have a commit3709 creates pipeline3710 stores payload as a variable3711 returns bad request with no pipeline created if there's no commit for that ref3712 Validates variables3713 validates variables to be a hash3714 validates variables needs to be a map of key-valued strings3715 creates trigger request with variables3716 when triggering a pipeline from a trigger token3717 does not leak the presence of project when token is for different project3718 creates builds from the ref given in the URL, not in the body3719 when ref contains a dot3720 creates builds from the ref given in the URL, not in the body3721 adding arguments to the application context3722 when triggering a pipeline from a trigger token3723 behaves like storing arguments in the application context for the API3724 places the expected params in the application context3725 behaves like not executing any extra queries for the application context3726 does not execute more queries than without adding anything to the application context3727 when triggered from another running job3728 when other job is triggered by a user3729 behaves like storing arguments in the application context for the API3730 places the expected params in the application context3731 behaves like not executing any extra queries for the application context3732 does not execute more queries than without adding anything to the application context3733 when other job is triggered by a runner3734 behaves like storing arguments in the application context for the API3735 places the expected params in the application context3736 behaves like not executing any extra queries for the application context3737 does not execute more queries than without adding anything to the application context3738 when is triggered by a pipeline hook3739 does not create a new pipeline3740 GET /projects/:id/triggers3741 authenticated user who can access triggers3742 returns a list of triggers with tokens exposed correctly3743 authenticated user with invalid permissions3744 does not return triggers list3745 unauthenticated user3746 does not return triggers list3747 GET /projects/:id/triggers/:trigger_id3748 authenticated user with valid permissions3749 returns trigger details3750 responds with 404 Not Found if requesting non-existing trigger3751 authenticated user with invalid permissions3752 does not return triggers list3753 unauthenticated user3754 does not return triggers list3755 POST /projects/:id/triggers3756 authenticated user with valid permissions3757 with required parameters3758 creates trigger3759 without required parameters3760 does not create trigger3761 authenticated user with invalid permissions3762 does not create trigger3763 unauthenticated user3764 does not create trigger3765 PUT /projects/:id/triggers/:trigger_id3766 user is maintainer of the project3767 the trigger belongs to user3768 updates description3769 the trigger does not belong to user3770 does not update trigger3771 user is developer of the project3772 the trigger belongs to user3773 does not update trigger3774 the trigger does not belong to user3775 does not update trigger3776 unauthenticated user3777 does not update trigger3778 DELETE /projects/:id/triggers/:trigger_id3779 authenticated user with valid permissions3780 deletes trigger3781 responds with 404 Not Found if requesting non-existing trigger3782 behaves like 412 response3783 for a modified ressource3784 returns 412 with a JSON error3785 for an unmodified ressource3786 returns 204 with an empty body3787 authenticated user with invalid permissions3788 does not delete trigger3789 unauthenticated user3790 does not delete trigger3791Admin::InstanceReviewController3792 GET #index3793 with usage ping enabled3794/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/ohai-16.10.6/lib/ohai/plugins/eucalyptus.rb:32: warning: already initialized constant MAC_MATCH3795/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/ohai-16.10.6/lib/ohai/plugins/eucalyptus.rb:32: warning: previous definition of MAC_MATCH was here3796 redirects to the customers app with correct params3797 with usage ping disabled3798 redirects to the customers app with correct params3799Groups::ChildrenController3800 GET #index3801 for projects3802 as a user3803 shows all children3804 being member of private subgroup3805 shows public and private children the user is member of3806 as a guest3807 shows the public children3808 for subgroups3809 as a user3810 shows all children3811 being member of private subgroup3812 shows public and private children the user is member of3813 as a guest3814 shows the public children3815 filtering children3816 expands the tree for matching projects3817 expands the tree for matching subgroups3818 merges the trees correctly3819 expands the tree upto a specified parent3820 returns an array with one element when only one result is matched3821 returns an empty array when there are no search results3822 succeeds if multiple pages contain matching subgroups3823 includes pagination headers3824 queries per rendered element3825 queries the expected amount for a group row3826 queries the expected amount for a project row3827 when rendering hierarchies3828 queries the expected amount when nested rows are increased for a group3829 queries the expected amount when a new group match is added3830 queries the expected amount when nested rows are increased for a project3831 pagination3832 with only projects3833 has projects on the first page3834 has projects on the second page3835 with subgroups and projects3836 contains all subgroups3837 contains the project and group on the second page3838 with a mixed first page3839 correctly calculates the counts3840 external authorization3841 works when external authorization service is enabled3842API::Issues3843 POST /projects/:id/issues3844 creates a new project issue3845 creates a new project issue with labels param as array3846 creates a new confidential project issue3847 creates a new confidential project issue with a different param3848 creates a public issue when confidential param is false3849 creates a public issue when confidential param is invalid3850 returns a 400 bad request if title not given3851 allows special label names3852 allows special label names with labels param as array3853 returns 400 if title is too long3854 support for deprecated assignee_id3855 creates a new project issue3856 creates a new project issue when assignee_id is empty3857 single assignee restrictions3858 creates a new project issue with no more than one assignee3859 user does not have permissions to create issue3860 renders 4033861 an internal ID is provided3862 by an admin3863 sets the internal ID on the new issue3864 by an owner3865 sets the internal ID on the new issue3866 by a group owner3867 sets the internal ID on the new issue3868 by another user3869 ignores the given internal ID3870 when an issue with the same IID exists on database3871 returns 4093872 resolving discussions3873 resolving all discussions in a merge request3874 behaves like creating an issue resolving discussions through the API3875 creates a new project issue3876 resolves the discussions in a merge request3877 assigns a description to the issue mentioning the merge request3878 resolving a single discussion3879 behaves like creating an issue resolving discussions through the API3880 creates a new project issue3881 resolves the discussions in a merge request3882 assigns a description to the issue mentioning the merge request3883 with due date3884 creates a new project issue3885 setting created_at3886 by an admin3887 sets the creation time on the new issue3888 by a project owner3889 sets the creation time on the new issue3890 by a group owner3891 sets the creation time on the new issue3892 by another user3893 ignores the given creation time3894 the user can only read the issue3895 cannot create new labels3896 cannot create new labels with labels param as array3897 when request exceeds the rate limit3898 prevents users from creating more issues3899 POST /projects/:id/issues with spam filtering3900 when allow_possible_spam feature flag is false3901 does not create a new project issue3902 returns correct status and message3903 creates a new spam log entry3904 when allow_possible_spam feature flag is true3905 does creates a new project issue3906 returns correct status3907 creates a new spam log entry3908 /projects/:id/issues/:issue_iid/move3909 moves an issue3910 moves the issue to another namespace if I am admin3911 when source and target projects are the same3912 returns 400 when trying to move an issue3913 when the user does not have the permission to move issues3914 returns 400 when trying to move an issue3915 when issue does not exist3916 returns 404 when trying to move an issue3917 when source project does not exist3918 returns 404 when trying to move an issue3919 when target project does not exist3920 returns 404 when trying to move an issue3921 /projects/:id/issues/:issue_iid/clone3922 clones the issue with notes when with_notes is true3923 when user can admin the issue3924 when the user can admin the target project3925 clones the issue3926 when target project is the same source project3927 clones the issue3928 when the user does not have the permission to clone issues3929 returns 4003930 when issue does not exist3931 returns 4043932 when source project does not exist3933 returns 4043934 when target project does not exist3935 returns 4043936 POST :id/issues/:issue_iid/subscribe3937 subscribes to an issue3938 returns 304 if already subscribed3939 returns 404 if the issue is not found3940 returns 404 if the issue is confidential3941 POST :id/issues/:issue_id/unsubscribe3942 unsubscribes from an issue3943 returns 304 if not subscribed3944 returns 404 if the issue is not found3945 returns 404 if the issue is confidential3946Ldap::OmniauthCallbacksController3947 allows sign in3948 creates an authentication event record3949 respects remember me checkbox3950 with sign in prevented3951 does not allow sign in3952 with 2FA3953 passes remember_me to the Devise view3954 access denied3955 warns the user3956 doesn't authenticate user3957 sign up3958 is allowed3959 enable admin mode3960 with a regular user3961 cannot be enabled3962 with an admin user3963 when requested first3964 can be enabled3965 when not requested first3966 cannot be enabled3967Admin::UsersController3968 GET #index3969 retrieves all users3970 filters by admins3971 eager loads authorized projects association3972 pagination3973 when number of users is over the pagination limit3974 marks the relation for pagination without counts3975 when number of users is below the pagination limit3976 marks the relation for pagination with counts3977 GET :id3978 finds a user case-insensitively3979 DELETE #destroy3980 deletes user and ghosts their contributions3981 deletes the user and their contributions when hard delete is specified3982 prerequisites for account deletion3983 solo-owned groups3984 if the user is the sole owner of at least one group3985 soft-delete3986 fails3987 hard-delete3988 succeeds3989 DELETE #reject3990 when rejecting a pending user3991 hard deletes the user3992 displays the rejection message3993 sends the user a rejection email3994 when user is not pending3995 does not reject and delete the user3996 displays the error3997 does not email the user3998 PUT #approve3999 when successful4000 activates the user4001 emails the user on approval4002 when unsuccessful4003 displays the error4004 does not activate the user4005 does not email the pending user4006 PUT #activate4007 for a deactivated user4008 behaves like a request that activates the user4009 activates the user4010 for an active user4011 behaves like a request that activates the user4012 activates the user4013 for a blocked user4014 does not activate the user4015 PUT #deactivate4016 for an active user4017 with no recent activity4018 behaves like a request that deactivates the user4019 deactivates the user4020 with recent activity4021 does not deactivate the user4022 for a deactivated user4023 behaves like a request that deactivates the user4024 deactivates the user4025 for a blocked user4026 does not deactivate the user4027 for an internal user4028 does not deactivate the user4029 PUT block/:id4030 blocks user4031 PUT unblock/:id4032 ldap blocked users4033 does not unblock user4034 manually blocked users4035 unblocks user4036 PUT ban/:id4037 when ban_user_feature_flag is enabled4038 bans user4039 when unsuccessful4040 does not ban user4041 when ban_user_feature_flag is not enabled4042 does not ban user, renders 4044043 PUT unban/:id4044 unbans user4045 PUT unlock/:id4046 unlocks user4047 PUT confirm/:id4048 when the confirmation period has expired4049 behaves like confirms the user4050 confirms the user4051 when the confirmation period has not expired4052 behaves like confirms the user4053 confirms the user4054 PATCH disable_two_factor4055 for a user that has 2FA enabled4056 disables 2FA for the user4057 redirects back4058 displays a notice on success4059 for a user that does not have 2FA enabled4060 redirects back4061 displays an alert on failure4062 POST create4063 creates the user4064 shows only one error message for an invalid email4065 admin notes4066 creates the user with note4067 POST update4068 when the password has changed4069 when admin changes their own password4070 when password is valid4071 updates the password4072 does not set the new password to expire immediately4073 does not enqueue the `admin changed your password` email4074 enqueues the `password changed` email4075 when admin changes the password of another user4076 when the new password is valid4077 redirects to the user4078 updates the password4079 sets the new password to expire immediately4080 enqueues the `admin changed your password` email4081 does not enqueue the `password changed` email4082 when the new password is invalid4083 shows the edit page again4084 returns the error message4085 does not update the password4086 when the new password does not match the password confirmation4087 shows the edit page again4088 returns the error message4089 does not update the password4090 when the update fails4091 returns a 500 error4092 admin notes4093 updates the note for the user4094 when updating credit card validation for user account4095 when user has a credit card validation4096 with unchecked credit card validation4097 deletes credit_card_validation4098 with checked credit card validation4099 does not change credit_card_validated_at4100 behaves like no credit card validation param4101 does not change credit card validation4102 when user does not have a credit card validation4103 with checked credit card validation4104 creates new credit card validation4105 with unchecked credit card validation4106 does not blow up4107 behaves like no credit card validation param4108 does not change credit card validation4109 invalid parameters4110 behaves like no credit card validation param4111 does not change credit card validation4112 with non permitted params4113 behaves like no credit card validation param4114 does not change credit card validation4115 DELETE #remove_email4116 deletes the email4117 POST impersonate4118 when the user is blocked4119 shows a notice4120 doesn't sign us in as the user4121 when the user is not blocked4122 stores the impersonator in the session4123 signs us in as the user4124 logs the beginning of the impersonation event4125 redirects to root4126 shows a notice4127 clears token session keys4128 when impersonation is disabled4129 shows error page4130 when impersonating an admin and attempting to impersonate again4131 does not allow double impersonation4132OmniauthCallbacksController4133 omniauth4134 a deactivated user4135 allows sign in4136 activates the user4137 shows reactivation flash message after logging in4138 when sign in is not valid4139 renders omniauth error page4140 when the user is on the last sign in attempt4141 when using a form based provider4142 locks the user when sign in fails4143 when using a button based provider4144 does not lock the user when sign in fails4145 when sign in fails4146 calls through to the failure handler4147 when a redirect fragment is provided4148 when a redirect url is stored4149 redirects with fragment4150 when a redirect url with a fragment is stored4151 redirects with the new fragment4152 when no redirect url is stored4153 does not redirect with the fragment4154 strategies4155 github4156 allows sign in4157 creates an authentication event record4158 behaves like known sign in4159 when the remote IP and the last sign in IP match4160 does not notify the user4161 sets/updates the encrypted cookie4162 when the remote IP and the last sign in IP do not match4163 notifies the user when the cookie is expired4164 notifies the user when the cookie is for another user4165 does not notify the user when remote IP matches an active session4166 does not notify the user when the cookie is present and not expired4167 when the cookie is not previously set4168 notifies the user4169 sets the encrypted cookie4170 when notify_on_unknown_sign_in global setting is false4171 does not notify the user4172 does not set a cookie4173 when user has no linked provider4174 links identity4175 and is not allowed to link the provider4176 returns 4034177 when user with 2FA is unconfirmed4178 redirects to login page4179 sign up4180 when intent to register is added to omniauth params4181 is allowed4182 redirects to welcome path4183 when intent to register is not added to omniauth params4184 is allowed4185 redirects to root path4186 when OAuth is disabled4187 prevents login via POST4188 shows warning when attempting login4189 allows linking the disabled provider4190 sign up4191 is prevented4192 auth04193 does not allow sign in without extern_uid4194 atlassian_oauth24195 when the user and identity already exist4196 allows sign-in4197 sets the username and caller_id in the context4198 for a new user4199 denies sign-in if sign-up is enabled, but block_auto_created_users is set4200 accepts sign-in if sign-up is enabled4201 denies sign-in if sign-up is not enabled4202 salesforce4203 without verified email4204 does not allow sign in4205 with verified email4206 allows sign in4207 #saml4208 behaves like known sign in4209 when the remote IP and the last sign in IP match4210 does not notify the user4211 sets/updates the encrypted cookie4212 when the remote IP and the last sign in IP do not match4213 notifies the user when the cookie is expired4214 notifies the user when the cookie is for another user4215 does not notify the user when remote IP matches an active session4216 does not notify the user when the cookie is present and not expired4217 when the cookie is not previously set4218 notifies the user4219 sets the encrypted cookie4220 when notify_on_unknown_sign_in global setting is false4221 does not notify the user4222 does not set a cookie4223 sign up4224 denies login if sign up is enabled, but block_auto_created_users is set4225 accepts login if sign up is enabled4226 denies login if sign up is not enabled4227 with GitLab initiated request4228 when worth two factors4229 expects user to be signed_in4230 when not worth two factors4231 expects user to provide second factor4232 with IdP initiated request4233 lets the user know their account isn't linked yet4234 redirects to profile account page4235 doesn't link a new identity to the user4236 sets the username and caller_id in the context4237 with a blocked user trying to log in when there are hooks set up4238 is expected not to raise Exception4239 enable admin mode4240 user and admin mode requested by the same user4241 with a regular user4242 cannot be enabled4243 with an admin user4244 when requested first4245 can be enabled4246 when not requested first4247 cannot be enabled4248 user and admin mode requested by different users4249 with a regular user4250 cannot be enabled4251 with an admin user4252 when requested first4253 cannot be enabled4254 when not requested first4255 cannot be enabled4256Projects::FeatureFlagsController4257 GET index4258 when there is no feature flags4259 responds with success4260 for a list of feature flags4261 responds with success4262 when the user is a reporter4263 responds with not found4264 GET #index.json4265 returns all feature flags as json response4266 returns CRUD paths4267 returns the summary of feature flags4268 matches json schema4269 returns the feature flag iid4270 when scope is specified4271 when all feature flags are requested4272 returns all feature flags4273 when enabled feature flags are requested4274 returns enabled feature flags4275 when disabled feature flags are requested4276 returns disabled feature flags4277 with version 1 and 2 feature flags4278 returns all feature flags as json response4279 GET new4280 renders the form4281 GET #show.json4282 returns the feature flag as json response4283 matches json schema4284 routes based on iid4285 when feature flag is not found4286 returns 4044287 when user is reporter4288 returns 4044289 with a version 2 feature flag4290 returns the feature flag4291 returns strategies ordered by id4292 GET edit4293 with new version flags4294 returns successfully4295 POST create.json4296 returns 2004297 creates a new feature flag4298 matches json schema4299 when the same named feature flag has already existed4300 returns 4004301 returns an error message4302 without the active parameter4303 creates a flag with active set to true4304 when user is reporter4305 returns 4044306 when creating a version 2 feature flag4307 creates a new feature flag4308 when creating a version 2 feature flag with strategies and scopes4309 creates a new feature flag with the strategies and scopes4310 when creating a version 2 feature flag with a gradualRolloutUserId strategy4311 creates the new strategy4312 when creating a version 2 feature flag with a flexibleRollout strategy4313 creates the new strategy4314 when creating a version 2 feature flag with a gitlabUserList strategy4315 creates the new strategy4316 when version parameter is invalid4317 returns a 4004318 DELETE destroy.json4319 returns 2004320 deletes one feature flag4321 matches json schema4322 when user is reporter4323 returns 4044324 when the feature flag does not exist4325 returns not found4326 with a version 2 flag4327 deletes the flag4328 PUT update.json4329 with a version 2 feature flag4330 creates a new strategy and scope4331 creates a gradualRolloutUserId strategy4332 creates a flexibleRollout strategy4333 creates a gitlabUserList strategy4334 supports switching the associated user list for an existing gitlabUserList strategy4335 automatically dissociates the user list when switching the type of an existing gitlabUserList strategy4336 does not delete a user list when deleting a gitlabUserList strategy4337 returns not found when trying to create a gitlabUserList strategy with an invalid user list id4338 returns not found when trying to update a gitlabUserList strategy with a user list from another project4339 allows setting multiple gitlabUserList strategies to the same user list4340 updates an existing strategy4341 updates an existing scope4342 deletes an existing strategy4343 deletes an existing scope4344API::ProjectImport4345 POST /projects/import4346 executes a limited number of queries4347 schedules an import using a namespace4348 schedules an import using the namespace path4349 schedules an import at the user namespace level4350 does not schedule an import for a namespace that does not exist4351 does not schedule an import if the user has no permission to the namespace4352 stores params that can be overridden4353 does not store params that are not allowed4354 behaves like requires authentication4355 returns 4014356 when a name is explicitly set4357 schedules an import using a namespace and a different name4358 schedules an import using the namespace path and a different name4359 sets name correctly4360 sets name correctly with an overwrite4361 schedules an import using the path and name explicitly set to nil4362 if user uploads no valid file4363 does not schedule an import if the user uploads no valid file4364 when target path already exists in namespace4365 does not schedule an import4366 when param overwrite is true4367 schedules an import4368 when request exceeds the rate limit4369 prevents users from importing projects4370 when using remote storage4371 schedules an import4372 POST /projects/remote-import4373 behaves like requires authentication4374 returns 4014375 when the response is successful4376 schedules the import successfully4377 when the service returns an error4378 fails to schedule the import4379 POST /projects/remote-import-s34380 returns NOT FOUND when the feature is disabled4381 behaves like requires authentication4382 returns 4014383 when the feature flag is enabled4384 when the response is successful4385 schedules the import successfully4386 when the service returns an error4387 fails to schedule the import4388 GET /projects/:id/import4389 public project accessible for an unauthenticated user4390 returns the import status4391 returns the import status and the error if failed4392 POST /projects/import/authorize4393 authorizes importing project with workhorse header4394 rejects requests that bypassed gitlab-workhorse4395 behaves like requires authentication4396 returns 4014397 when using remote storage4398 when direct upload is enabled4399 responds with status 200, location of file remote store and object details4400 when direct upload is disabled4401 handles as a local file4402API::ProjectMilestones4403 behaves like group and project milestones4404 GET /projects/:id/milestones4405 returns milestones list4406 returns a 401 error if user not authenticated4407 returns an array of active milestones4408 returns an array of closed milestones4409 returns an array of milestones specified by iids4410 does not return any milestone if none found4411 returns a milestone by iids array4412 returns a milestone by title4413 returns a milestone by searching for title4414 returns a milestones by searching for description4415 GET /projects/:id/milestones/:milestone_id4416 returns a milestone by id4417 returns 401 error if user not authenticated4418 returns a 404 error if milestone id not found4419 POST /projects/:id/milestones4420 creates a new milestone4421 creates a new milestone with description and dates4422 returns a 400 error if title is missing4423 returns a 400 error if params are invalid (duplicate title)4424 creates a new milestone with reserved html characters4425 PUT /projects/:id/milestones/:milestone_id4426 updates a milestone4427 removes a due date if nil is passed4428 returns a 404 error if milestone id not found4429 closes milestone4430 updates milestone with only start date4431 DELETE /projects/:id/milestones/:milestone_id4432 rejects a member with guest access from deleting a milestone4433 deletes the milestone when the user has reporter access to the project4434 GET /projects/:id/milestones/:milestone_id/issues4435 returns issues for a particular milestone4436 returns issues sorted by label priority4437 matches V4 response schema for a list of issues4438 returns a 401 error if user not authenticated4439 confidential issues4440 returns confidential issues to team members4441 does not return confidential issues to team members with guest role4442 does not return confidential issues to regular users4443 returns issues ordered by label priority4444 GET /projects/:id/milestones/:milestone_id/merge_requests4445 returns merge_requests for a particular milestone4446 returns merge_requests sorted by label priority4447 returns a 404 error if milestone id not found4448 returns a 404 if the user has no access to the milestone4449 returns a 401 error if user not authenticated4450 returns merge_requests ordered by position asc4451 GET /projects/:id/milestones4452 when include_parent_milestones is true4453 when project parent is a namespace4454 behaves like listing all milestones4455 returns correct list of milestones4456 when project parent is a group4457 behaves like listing all milestones4458 returns correct list of milestones4459 when iids param is present4460 behaves like listing all milestones4461 returns correct list of milestones4462 when user is not a member of the private project4463 returns a 404 error4464 DELETE /projects/:id/milestones/:milestone_id4465 returns 404 response when the project does not exist4466 returns 404 response when the milestone does not exist4467 returns 404 from guest user deleting a milestone4468 PUT /projects/:id/milestones/:milestone_id to test observer on close4469 creates an activity event when a milestone is closed4470 POST /projects/:id/milestones/:milestone_id/promote4471 when user does not have permission to promote milestone4472 returns 4034473 when user has permission4474 returns 2004475 returns 200 for closed milestone4476 when no such resource4477 returns 404 response when the project does not exist4478 returns 404 response when the milestone does not exist4479 when project does not belong to group4480 returns 4034481getting merge request information nested in a project4482 contains merge request information4483 includes a web_url4484 includes correct mergedAt value when merged4485 includes nil mergedAt value when not merged4486 behaves like a working graphql query4487DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.4488DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.4489DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.4490DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.4491DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.4492DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.4493 returns a successful response4494 when selecting author4495 includes author4496 when the merge_request has reviewers4497 includes reviewers4498 when the merge_request has committers4499 includes committers4500 diffStats4501 includes diff stats4502 when requesting a specific diff stat4503 includes only the requested stats4504 permissions on the merge request4505 includes the permissions for the current user on a public project4506 when the user does not have access to the merge request4507 returns nil4508 when there are pipelines4509 has a head pipeline4510 has pipeline connections4511 when limiting the number of results4512 returns the correct number of results4513 when merge request is cannot_be_merged_rechecking4514 returns checking4515 when the notes have been preloaded (by participants)4516 does not error4517 behaves like when requesting information about MR interactions4518 when the user is not assigned4519 returns null data4520 when the user is a reviewer, but has not reviewed4521 returns falsey values4522 when the user has interacted4523 returns appropriate data4524 scalability4525 when selecting only known scalable fields4526 behaves like scalable query for interaction fields4527 does not suffer from N+14528 when selecting all fields4529 behaves like scalable query for interaction fields4530 does not suffer from N+1 (PENDING: See: https://gitlab.com/gitlab-org/gitlab/-/issues/322549)4531 behaves like when requesting information about MR interactions4532 when the user is not assigned4533 returns null data4534 when the user is a reviewer, but has not reviewed4535 returns falsey values4536 when the user has interacted4537 returns appropriate data4538 scalability4539 when selecting only known scalable fields4540 behaves like scalable query for interaction fields4541 does not suffer from N+14542 when selecting all fields4543 behaves like scalable query for interaction fields4544 does not suffer from N+1 (PENDING: See: https://gitlab.com/gitlab-org/gitlab/-/issues/322549)4545Dashboard::TodosController4546 GET #index4547 project authorization4548 renders 404 when user does not have read access on given project4549 renders 404 when given project does not exists4550 renders 200 when filtering for "any project" todos4551 renders 200 when user has access on given project4552 with render_views4553 avoids N+1 queries4554 group authorization4555 renders 404 when user does not have read access on given group4556 behaves like paginated collection4557 renders a page number that is not ouf of range4558 redirects to last_page if page number is larger than number of pages4559 does not redirect to external sites when provided a host field4560 when providing no filters4561 does not perform a query to get the page count, but gets that from the user4562 when providing filters4563 performs a query to get the correct page count4564 returns directly addressed if filtering by mentioned action_id4565 external authorization4566 behaves like disabled when using an external authorization service4567 works when the feature is not enabled4568 renders a 404 with a message when the feature is enabled4569 PATCH #restore4570 restores the todo to pending state4571 PATCH #bulk_restore4572 restores the todos to pending state4573Groups::Registry::RepositoriesController4574 GET #index4575 behaves like renders correctly4576 when user has access to registry4577 html format4578 show index page4579 when there is an invalid path error ContainerRegistry::Path::InvalidRegistryPathError4580 displays a connection error message4581 when there is an invalid path error Faraday::Error4582 displays a connection error message4583 json format4584 has the correct response schema4585 behaves like renders a list of repositories4586 returns a list of projects for json format4587 when there is a ContainerRegistry::Path::InvalidRegistryPathError4588 displays a connection error message4589 when there is a Faraday::Error4590 displays a connection error message4591 behaves like with name parameter4592 returns the searched repo4593 behaves like a package tracking event4594 creates a gitlab tracking event list_repositories4595 with project in subgroup4596 behaves like renders a list of repositories4597 returns a list of projects for json format4598 when there is a ContainerRegistry::Path::InvalidRegistryPathError4599 displays a connection error message4600 when there is a Faraday::Error4601 displays a connection error message4602 behaves like with name parameter4603 returns the searched repo4604 with project in subgroup and group4605 returns all the projects4606 behaves like with name parameter4607 returns the searched repo4608 user does not have access to container registry4609 json format4610 behaves like returning response status4611 returns not_found4612 html format4613 behaves like returning response status4614 returns not_found4615 GET #show4616 behaves like renders correctly4617 when user has access to registry4618 html format4619 show index page4620 when there is an invalid path error ContainerRegistry::Path::InvalidRegistryPathError4621 displays a connection error message4622 when there is an invalid path error Faraday::Error4623 displays a connection error message4624 json format4625 has the correct response schema4626 behaves like renders a list of repositories4627 returns a list of projects for json format4628 when there is a ContainerRegistry::Path::InvalidRegistryPathError4629 displays a connection error message4630 when there is a Faraday::Error4631 displays a connection error message4632 behaves like with name parameter4633 returns the searched repo4634 behaves like a package tracking event4635 creates a gitlab tracking event list_repositories4636 with project in subgroup4637 behaves like renders a list of repositories4638 returns a list of projects for json format4639 when there is a ContainerRegistry::Path::InvalidRegistryPathError4640 displays a connection error message4641 when there is a Faraday::Error4642 displays a connection error message4643 behaves like with name parameter4644 returns the searched repo4645 with project in subgroup and group4646 returns all the projects4647 behaves like with name parameter4648 returns the searched repo4649 user does not have access to container registry4650 json format4651 behaves like returning response status4652 returns not_found4653 html format4654 behaves like returning response status4655 returns not_found4656API::Unleash4657 GET /feature_flags/unleash/:project_id/features4658 behaves like authenticated request4659 when using instance id4660 responds with OK4661 when repository is disabled4662 responds with forbidden4663 when repository is private4664 responds with OK4665 when using header4666 responds with OK4667 when using bogus instance id4668 responds with unauthorized4669 when using not existing project4670 responds with unauthorized4671 with version 2 feature flags4672 does not return a flag without any strategies4673 returns a flag with a default strategy4674 returns a flag with a userWithId strategy4675 returns a flag with multiple strategies4676 returns only flags matching the environment scope4677 returns only strategies matching the environment scope4678 returns only flags for the given project4679 returns all strategies with a matching scope4680 returns a strategy with more than one matching scope4681 returns a disabled flag with a matching scope4682 returns a userWithId strategy for a gitlabUserList strategy4683 GET /feature_flags/unleash/:project_id/client/features4684 behaves like authenticated request4685 when using instance id4686 responds with OK4687 when repository is disabled4688 responds with forbidden4689 when repository is private4690 responds with OK4691 when using header4692 responds with OK4693 when using bogus instance id4694 responds with unauthorized4695 when using not existing project4696 responds with unauthorized4697 with version 2 feature flags4698 does not return a flag without any strategies4699 returns a flag with a default strategy4700 returns a flag with a userWithId strategy4701 returns a flag with multiple strategies4702 returns only flags matching the environment scope4703 returns only strategies matching the environment scope4704 returns only flags for the given project4705 returns all strategies with a matching scope4706 returns a strategy with more than one matching scope4707 returns a disabled flag with a matching scope4708 returns a userWithId strategy for a gitlabUserList strategy4709 POST /feature_flags/unleash/:project_id/client/register4710 behaves like authenticated request4711 when using instance id4712 responds with OK4713 when repository is disabled4714 responds with forbidden4715 when repository is private4716 responds with OK4717 when using header4718 responds with OK4719 when using bogus instance id4720 responds with unauthorized4721 when using not existing project4722 responds with unauthorized4723 POST /feature_flags/unleash/:project_id/client/metrics4724 behaves like authenticated request4725 when using instance id4726 responds with OK4727 when repository is disabled4728 responds with forbidden4729 when repository is private4730 responds with OK4731 when using header4732 responds with OK4733 when using bogus instance id4734 responds with unauthorized4735 when using not existing project4736 responds with unauthorized4737API::PackageFiles4738 GET /projects/:id/packages/:package_id/package_files4739 without the need for a license4740 project is public4741 returns 2004742 returns 404 if package does not exist4743 project is private4744 returns 404 for non authenticated user4745 returns 404 for a user without access to the project4746 returns 200 and valid response schema4747 with pagination params4748 when viewing the first page4749Skipping ./spec/requests/api/package_files_spec.rb[1:1:1:3:1:1] 'API::PackageFiles GET /projects/:id/packages/:package_id/package_files without the need for a license with pagination params when viewing the first page returns first 2 packages' because it's flaky.4750 returns first 2 packages (PENDING: around hook at ./spec/support/flaky_tests.rb:21 did not execute the example)4751 viewing the second page4752 returns the last package4753 with package files pending destruction4754 does not return them4755 DELETE /projects/:id/packages/:package_id/package_files/:package_file_id4756 project is public4757 returns 403 for a user without access to the project4758 without user4759 returns 403 for non authenticated user4760 project is private4761 returns 404 for a user without access to the project4762 returns 403 for a user without enough permissions4763 returns 2044764 without user4765 returns 404 for non authenticated user4766 invalid file4767 returns 404 when the package file does not exist4768 with package file pending destruction4769 can not be accessed4770Projects::TagsController4771 GET index4772 returns the tags for the page4773 returns releases matching those tags4774 default sort for tags4775 sorts tags by recently updated4776 when Gitaly is unavailable4777 format: :html4778 returns 503 status code4779 format: :atom4780 returns 503 status code4781 @tag_pipeline_status4782 when no pipelines exist4783 is empty4784 when multiple tags exist4785 all relevant commit statuses are received4786 when a tag has multiple pipelines4787 chooses the latest to determine status4788 GET show4789 valid tag4790 is expected to respond with 2004791 invalid tag4792 is expected to respond with 4044793 POST #create4794 creates tag4795 when release description is set4796 creates tag and release4797 passes the last pipeline for evidence creation4798 DELETE #destroy4799 deletes tag and redirects to tags path4800API::IssueLinks4801 GET /links4802 when unauthenticated4803 returns 4014804 when authenticated4805 returns related issues4806 returns multiple links without N + 14807 POST /links4808 when unauthenticated4809 returns 4014810 when authenticated4811 given target project not found4812 returns 4044813 given target issue not found4814 returns 4044815 when user does not have write access to given issue4816 returns 4044817 when trying to relate to a confidential issue4818 returns 4044819 when trying to relate to a private project issue4820 returns 4044821 when user has ability to create an issue link4822 returns 201 status and contains the expected link response4823 returns 201 when sending full path of target project4824 GET /links/:issue_link_id4825 when unauthenticated4826 returns 4014827 when authenticated4828 when issue link does not exist4829 returns 4044830 when issue link does not belong to the specified issue4831 returns 4044832 when user has ability to read the issue link4833 returns 2004834 when user cannot read issue link4835 when the issue link targets an issue in a non-accessible project4836 returns 4044837 when issue link targets a non-accessible issue4838 returns 4044839 DELETE /links/:issue_link_id4840 when unauthenticated4841 returns 4014842 when authenticated4843 when user does not have write access to given issue link4844 returns 4044845 issue link not found4846 returns 4044847 when trying to delete a link with a private project issue4848 returns 4044849 when user has ability to delete the issue link4850 returns 2004851 returns 404 when the issue link does not belong to the specified issue4852API::ProjectHooks ProjectHooks4853 behaves like web-hook API endpoints4854 GET /projects/:id/hooks4855 authorized user4856 returns all hooks4857 when user is forbidden4858 prevents access to hooks4859 when user is unauthorized4860 prevents access to hooks4861 the hook has URL variables4862 returns the names of the url variables4863 GET /projects/:id/hooks/:hook_id4864 authorized user4865 returns a project hook4866 returns a 404 error if hook id is not available4867 the hook is disabled4868 has the correct alert status4869 the hook is backed-off4870 has the correct alert status4871 when user is forbidden4872 does not access an existing hook4873 when user is unauthorized4874 does not access an existing hook4875 POST /projects/:id/hooks4876WARNING: ignoring the provided expectation message argument (:push_events) since it is not a string or a proc.4877WARNING: ignoring the provided expectation message argument (:tag_push_events) since it is not a string or a proc.4878WARNING: ignoring the provided expectation message argument (:merge_requests_events) since it is not a string or a proc.4879WARNING: ignoring the provided expectation message argument (:issues_events) since it is not a string or a proc.4880WARNING: ignoring the provided expectation message argument (:confidential_issues_events) since it is not a string or a proc.4881WARNING: ignoring the provided expectation message argument (:note_events) since it is not a string or a proc.4882WARNING: ignoring the provided expectation message argument (:confidential_note_events) since it is not a string or a proc.4883WARNING: ignoring the provided expectation message argument (:pipeline_events) since it is not a string or a proc.4884WARNING: ignoring the provided expectation message argument (:wiki_page_events) since it is not a string or a proc.4885WARNING: ignoring the provided expectation message argument (:job_events) since it is not a string or a proc.4886WARNING: ignoring the provided expectation message argument (:deployment_events) since it is not a string or a proc.4887WARNING: ignoring the provided expectation message argument (:releases_events) since it is not a string or a proc.4888 adds hook4889 adds the token without including it in the response4890 returns a 400 error if url not given4891 returns a 400 error if no parameters are provided4892WARNING: ignoring the provided expectation message argument (:push_events) since it is not a string or a proc.4893WARNING: ignoring the provided expectation message argument (:tag_push_events) since it is not a string or a proc.4894WARNING: ignoring the provided expectation message argument (:merge_requests_events) since it is not a string or a proc.4895WARNING: ignoring the provided expectation message argument (:issues_events) since it is not a string or a proc.4896WARNING: ignoring the provided expectation message argument (:confidential_issues_events) since it is not a string or a proc.4897WARNING: ignoring the provided expectation message argument (:note_events) since it is not a string or a proc.4898WARNING: ignoring the provided expectation message argument (:confidential_note_events) since it is not a string or a proc.4899WARNING: ignoring the provided expectation message argument (:pipeline_events) since it is not a string or a proc.4900WARNING: ignoring the provided expectation message argument (:wiki_page_events) since it is not a string or a proc.4901WARNING: ignoring the provided expectation message argument (:job_events) since it is not a string or a proc.4902WARNING: ignoring the provided expectation message argument (:deployment_events) since it is not a string or a proc.4903WARNING: ignoring the provided expectation message argument (:releases_events) since it is not a string or a proc.4904 sets default values for events4905 returns a 422 error if token not valid4906 returns a 422 error if url not valid4907 PUT /projects/:id/hooks/:hook_id4908 updates an existing hook4909 updates the URL variables4910 adds the token without including it in the response4911 returns 404 error if hook id not found4912 returns 400 error if no parameters are provided4913 returns a 422 error if url is not valid4914 returns a 422 error if token is not valid4915 DELETE /projects/:id/hooks/:hook_id4916 deletes hook from project4917 returns a 404 error when deleting non existent hook4918 returns a 404 error if hook id not given4919 returns forbidden if a user attempts to delete hooks they do not own4920 behaves like 412 response4921 for a modified ressource4922 returns 412 with a JSON error4923 for an unmodified ressource4924 returns 204 with an empty body4925 PUT /projects/:id/hooks/:hook_id/url_variables/:key4926 sets the variable4927 overwrites existing values4928 returns a 404 error when editing non existent hook4929 returns a 422 error when the key is illegal4930 returns a 422 error when the value is illegal4931 DELETE /projects/:id/hooks/:hook_id/url_variables/:key4932 unsets the variable4933 returns 404 for keys that do not exist4934 returns a 404 error when deleting a variable from a non existent hook4935 behaves like web-hook API endpoints with branch-filter4936 POST /projects/:id/hooks4937 returns a 422 error if branch filter is not valid4938API::GroupImport4939 POST /groups/import4940 with object storage disabled4941 doesn't attempt to migrate file to object storage4942 without a file from workhorse4943 rejects the request4944 without a workhorse header4945 rejects request without a workhorse header4946 when params from workhorse are correct4947 when user is authorized to create new group4948 creates new group and accepts request4949 creates private group4950 when importing to a parent group4951 creates new group and accepts request4952 when parent group is private or internal4953 imports public group4954 imports internal group4955 when parent group is invalid4956 returns 404 and does not create new group4957 when user is not an owner of parent group4958 returns 403 Forbidden HTTP status4959 when group creation failed4960 returns 400 HTTP status4961 when user is not authorized to create new group4962 forbids the request4963 when required params are missing4964 returns 400 HTTP status4965 returns 400 HTTP status4966 with object storage enabled4967 with direct upload enabled4968 accepts the request and stores the file4969 when user is authorized to create new group4970 creates new group and accepts request4971 creates private group4972 when importing to a parent group4973 creates new group and accepts request4974 when parent group is private or internal4975 imports public group4976 imports internal group4977 when parent group is invalid4978 returns 404 and does not create new group4979 when user is not an owner of parent group4980 returns 403 Forbidden HTTP status4981 when group creation failed4982 returns 400 HTTP status4983 when user is not authorized to create new group4984 forbids the request4985 when required params are missing4986 returns 400 HTTP status4987 returns 400 HTTP status4988 POST /groups/import/authorize4989 authorizes importing group with workhorse header4990 rejects requests that bypassed gitlab-workhorse4991 when using remote storage4992 when direct upload is enabled4993 responds with status 200, location of file remote store and object details4994 when direct upload is disabled4995 handles as a local file4996Projects::Clusters::IntegrationsController4997 POST create_or_update4998 behaves like #create_or_update action4999 authorization5000 behaves like a secure endpoint5001 is allowed for admin when admin mode enabled5002 is denied for admin when admin mode disabled5003 it is allowed for project maintainers5004 is expected to be allowed for owner. Expected: 200,201,204,302 Got: 3025005 is expected to be allowed for maintainer. Expected: 200,201,204,302 Got: 3025006 is expected to be denied for developer. Expected: 401,404 Got: 4045007 is expected to be denied for reporter. Expected: 401,404 Got: 4045008 is expected to be denied for guest. Expected: 401,404 Got: 4045009 is expected to be denied for user. Expected: 401,404 Got: 4045010 is expected to be denied for external. Expected: 401,404 Got: 4045011 functionality5012 redirects on success5013 redirects on error5014API::Markdown Golden Master5015 examples must be unique and alphabetized by name5016 for attachment_image_for_group (api_context: group)5017 verifies conversion of GFM to HTML5018 for attachment_image_for_project (api_context: project)5019 verifies conversion of GFM to HTML5020 for attachment_image_for_project_wiki (api_context: project_wiki)5021 verifies conversion of GFM to HTML5022 for attachment_link_for_group (api_context: group)5023 verifies conversion of GFM to HTML5024 for attachment_link_for_project (api_context: project)5025 verifies conversion of GFM to HTML5026 for attachment_link_for_project_wiki (api_context: project_wiki)5027 verifies conversion of GFM to HTML5028 for audio5029 verifies conversion of GFM to HTML5030 for audio_and_video_in_lists5031 verifies conversion of GFM to HTML5032 for blockquote5033 verifies conversion of GFM to HTML5034 for bold5035 verifies conversion of GFM to HTML5036 for bullet_list_style_15037 verifies conversion of GFM to HTML5038 for bullet_list_style_25039 verifies conversion of GFM to HTML5040 for bullet_list_style_35041 verifies conversion of GFM to HTML5042 for code_block_javascript5043 verifies conversion of GFM to HTML5044 for code_block_plaintext5045 verifies conversion of GFM to HTML5046 for code_block_unknown5047 verifies conversion of GFM to HTML5048 for color_chips5049 verifies conversion of GFM to HTML5050 for description_list5051 verifies conversion of GFM to HTML5052 for details5053 verifies conversion of GFM to HTML5054 for diagram_kroki_nomnoml5055 verifies conversion of GFM to HTML5056 for diagram_plantuml5057 verifies conversion of GFM to HTML5058 for div5059 verifies conversion of GFM to HTML5060 for emoji5061 verifies conversion of GFM to HTML5062 for emphasis5063 verifies conversion of GFM to HTML5064 for figure5065 verifies conversion of GFM to HTML5066 for footnotes5067 verifies conversion of GFM to HTML (PENDING: https://gitlab.com/gitlab-org/gitlab/-/issues/346591)5068 for frontmatter_json5069 verifies conversion of GFM to HTML5070 for frontmatter_toml5071 verifies conversion of GFM to HTML5072 for frontmatter_yaml5073 verifies conversion of GFM to HTML5074 for hard_break5075 verifies conversion of GFM to HTML5076 for headings5077 verifies conversion of GFM to HTML5078 for horizontal_rule5079 verifies conversion of GFM to HTML5080 for html_marks5081 verifies conversion of GFM to HTML5082 for image5083 verifies conversion of GFM to HTML5084 for inline_code5085 verifies conversion of GFM to HTML5086 for inline_diff5087 verifies conversion of GFM to HTML5088 for label5089 verifies conversion of GFM to HTML5090 for link5091 verifies conversion of GFM to HTML5092 for math5093 verifies conversion of GFM to HTML5094 for ordered_list5095 verifies conversion of GFM to HTML5096 for ordered_list_with_start_order5097 verifies conversion of GFM to HTML5098 for ordered_task_list5099 verifies conversion of GFM to HTML5100 for ordered_task_list_with_order5101 verifies conversion of GFM to HTML5102 for reference_for_project_wiki (api_context: project_wiki)5103 verifies conversion of GFM to HTML5104 for strike5105 verifies conversion of GFM to HTML5106 for table5107 verifies conversion of GFM to HTML5108 for table_of_contents5109 verifies conversion of GFM to HTML5110 for task_list5111 verifies conversion of GFM to HTML5112 for video5113 verifies conversion of GFM to HTML5114 for word_break5115 verifies conversion of GFM to HTML5116getting pipeline information nested in a project5117DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5118 contains pipeline information5119DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5120 contains configSource5121 behaves like a working graphql query5122DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5123 returns a successful response5124 when batching5125 executes the finder once5126 keeps the queries under the threshold5127 when enough data is requested5128DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5129DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5130DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5131DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5132DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5133DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5134DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5135DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5136DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5137 contains jobs5138 when requesting only builds with certain statuses5139 can filter build jobs by status5140 when requesting a specific job5141 can request a build by name5142 can request a build by ID5143 when we request nested fields of the build5144 returns the nested data5145 requires a constant number of queries5146 when requesting a specific test suite5147 can request a test suite by an array of build_ids5148 when pipeline has no builds that matches the given build_ids5149 returns nil5150 N+1 queries on pipeline jobs5151 does not generate N+1 queries5152 N+1 queries on stages jobs5153 does not generate N+1 queries5154API::SystemHooks5155 behaves like web-hook API endpoints5156 GET /hooks5157 authorized user5158 returns all hooks5159 when user is forbidden5160 prevents access to hooks5161 when user is unauthorized5162 prevents access to hooks5163 the hook has URL variables5164 returns the names of the url variables5165 GET /hooks/:hook_id5166 authorized user5167 returns a project hook5168 returns a 404 error if hook id is not available5169 the hook is disabled5170 has the correct alert status5171 the hook is backed-off5172 has the correct alert status5173 when user is forbidden5174 does not access an existing hook5175 when user is unauthorized5176 does not access an existing hook5177 POST /hooks5178WARNING: ignoring the provided expectation message argument (:push_events) since it is not a string or a proc.5179WARNING: ignoring the provided expectation message argument (:tag_push_events) since it is not a string or a proc.5180WARNING: ignoring the provided expectation message argument (:merge_requests_events) since it is not a string or a proc.5181WARNING: ignoring the provided expectation message argument (:repository_update_events) since it is not a string or a proc.5182 adds hook5183 adds the token without including it in the response5184 returns a 400 error if url not given5185 returns a 400 error if no parameters are provided5186WARNING: ignoring the provided expectation message argument (:push_events) since it is not a string or a proc.5187WARNING: ignoring the provided expectation message argument (:tag_push_events) since it is not a string or a proc.5188WARNING: ignoring the provided expectation message argument (:merge_requests_events) since it is not a string or a proc.5189WARNING: ignoring the provided expectation message argument (:repository_update_events) since it is not a string or a proc.5190 sets default values for events5191 returns a 422 error if token not valid5192 returns a 422 error if url not valid5193 PUT /hooks/:hook_id5194 updates an existing hook5195 updates the URL variables5196 adds the token without including it in the response5197 returns 404 error if hook id not found5198 returns 400 error if no parameters are provided5199 returns a 422 error if url is not valid5200 returns a 422 error if token is not valid5201 DELETE /projects/:id/hooks/:hook_id5202 deletes hook from project5203 returns a 404 error when deleting non existent hook5204 returns a 404 error if hook id not given5205 returns forbidden if a user attempts to delete hooks they do not own5206 behaves like 412 response5207 for a modified ressource5208 returns 412 with a JSON error5209 for an unmodified ressource5210 returns 204 with an empty body5211 PUT /hooks/:hook_id/url_variables/:key5212 sets the variable5213 overwrites existing values5214 returns a 404 error when editing non existent hook5215 returns a 422 error when the key is illegal5216 returns a 422 error when the value is illegal5217 DELETE /hooks/:hook_id/url_variables/:key5218 unsets the variable5219 returns 404 for keys that do not exist5220 returns a 404 error when deleting a variable from a non existent hook5221 behaves like web-hook API endpoints test hook5222 POST /:hook_id5223 tests the hook5224API::Clusters::Agents5225 GET /projects/:id/cluster_agents5226 avoids N+1 queries5227 authorized user5228 returns project agents5229 returns empty list when no agents registered5230 unauthorized user5231 unable to access agents5232 GET /projects/:id/cluster_agents/:agent_id5233 authorized user5234 returns a project agent5235 returns a 404 error if agent id is not available5236 unauthorized user5237 unable to access an existing agent5238 POST /projects/:id/cluster_agents5239 adds agent to project5240 returns a 400 error if name not given5241 returns a 400 error if name is invalid5242 returns 404 error if project does not exist5243 DELETE /projects/:id/cluster_agents/:agent_id5244 deletes agent from project5245 returns a 404 error when deleting non existent agent5246 returns a 404 error if agent id not given5247 returns a 403 if the user is unauthorized to delete5248 behaves like 412 response5249 for a modified ressource5250 returns 412 with a JSON error5251 for an unmodified ressource5252 returns 204 with an empty body5253MetricsDashboard5254 GET #metrics_dashboard5255 when no parameters are provided5256 returns an error json_response5257 when params are provided5258 returns the specified dashboard5259 when the params are in an alternate format5260 returns the specified dashboard5261 when environment for dashboard is available5262 returns the specified dashboard5263 when dashboard path includes encoded characters5264 decodes dashboard path5265 when parameters are provided and the list of all dashboards is required5266 returns a dashboard in addition to the list of dashboards5267 in all_dashboard list5268 includes project_blob_path only for project dashboards5269 allows editing only for project dashboards5270 includes out_of_the_box_dashboard key5271 project permissions5272 can_collaborate: false, system_can_edit: false, project_can_edit: false5273 sets can_edit appropriately5274 can_collaborate: true, system_can_edit: false, project_can_edit: true5275 sets can_edit appropriately5276 starred dashboards5277 adds starred dashboard information and sorts the list5278Adding an AwardEmoji5279 when the user does not have permission5280 behaves like a mutation that does not create an AwardEmoji5281 is expected not to change `AwardEmoji.count`5282 behaves like a mutation that returns a top-level access error5283 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"5284 when the user has permission5285 when the given awardable is not an Awardable5286 behaves like a mutation that does not create an AwardEmoji5287 is expected not to change `AwardEmoji.count`5288 behaves like a mutation that returns top-level errors5289 is expected to include /was provided invalid value for awardableId/5290 when the given awardable is an Awardable but still cannot be awarded an emoji5291 behaves like a mutation that does not create an AwardEmoji5292 is expected not to change `AwardEmoji.count`5293 behaves like a mutation that returns top-level errors5294 is expected to contain exactly "You cannot award emoji to this resource."5295 when the given awardable is an Awardable5296 creates an emoji5297 returns the emoji5298 marking Todos as done5299 type: :issue, expectation: true5300 is expected to eq true5301 type: :merge_request, expectation: true5302 is expected to eq true5303 type: :project_snippet, expectation: false5304 is expected to eq false5305 for notes5306 regular Notes5307 marks the Todo as done5308 PersonalSnippet Notes5309 does not mark the Todo as done5310 when there were active record validation errors5311 returns an empty awardEmoji5312 behaves like a mutation that does not create an AwardEmoji5313 is expected not to change `AwardEmoji.count`5314 behaves like a mutation that returns errors in the response5315 is expected to contain exactly "Error 1" and "Error 2"5316Projects::TodosController5317 Issues5318 POST create5319 behaves like issuable todo actions5320 behaves like todos actions5321 when authorized5322 creates todo5323 returns todo path and pending count5324 when not authorized for project/group5325 does not create todo for resource that user has no access to5326 does not create todo when user is not logged in5327 when not authorized for resource5328 doesn't create todo5329 Merge Requests5330 POST create5331 behaves like issuable todo actions5332 behaves like todos actions5333 when authorized5334 creates todo5335 returns todo path and pending count5336 when not authorized for project/group5337 does not create todo for resource that user has no access to5338 does not create todo when user is not logged in5339 when not authorized for resource5340 doesn't create todo5341 Designs5342 POST create5343 behaves like todos actions5344 when authorized5345 creates todo5346 returns todo path and pending count5347 when not authorized for project/group5348 does not create todo for resource that user has no access to5349 does not create todo when user is not logged in5350Projects::PerformanceMonitoring::DashboardsController5351 POST #create5352 authenticated user5353 project with repository feature5354 with rights to push to the repository5355 valid parameters5356 delegates cloning to ::Metrics::Dashboard::CloneDashboardService5357 request format json5358 returns services response5359 Metrics::Dashboard::CloneDashboardService failure5360 returns json with failure message5361 param commit_message is missing5362 responds with bad request status and error message5363 param file_name is missing5364 responds with bad request status and error message5365 param dashboard is missing5366 responds with bad request status and error message5367 param branch_name is missing5368 responds with bad request status and error message5369 without rights to push to repository5370 responds with :forbidden status code5371 project without repository feature5372 responds with :not_found status code5373 PUT #update5374 authenticated user5375 project with repository feature5376 with rights to push to the repository5377 valid parameters5378 request format json5379 returns path to new file5380 UpdateDashboardService failure5381 returns json with failure message5382 missing branch5383 raises responds with :bad_request status code and error message5384 without rights to push to repository5385 responds with :forbidden status code5386 project without repository feature5387 responds with :not_found status code5388Setting issues crm contacts5389 when the user has no permission5390 returns expected error5391 when the user has permission5392 behaves like successful mutation5393 replace5394 updates the issue with correct contacts5395 append5396 updates the issue with correct contacts5397 remove5398 updates the issue with correct contacts5399 when the contact does not exist5400 returns expected error5401 when the contact belongs to a different group5402 returns expected error5403 when attempting to add more than 65404 returns expected error5405 when trying to remove non-existent contact5406 raises expected error5407 when crm_enabled is false5408 raises expected error5409Emails::Pipelines5410 #pipeline_success_email5411 behaves like correct pipeline information5412 has a correct information5413 when pipeline on master branch has a merge request5414 has correct information that there is no merge request link5415 when pipeline for merge requests5416 has correct information that there is a merge request link5417 when branch pipeline is set to a merge request as a head pipeline5418 has correct information that there is a merge request link5419 behaves like only accepts a single recipient5420 raises an ArgumentError5421 #pipeline_failed_email5422 behaves like correct pipeline information5423 has a correct information5424 when pipeline on master branch has a merge request5425 has correct information that there is no merge request link5426 when pipeline for merge requests5427 has correct information that there is a merge request link5428 when branch pipeline is set to a merge request as a head pipeline5429 has correct information that there is a merge request link5430 behaves like only accepts a single recipient5431 raises an ArgumentError5432 #pipeline_fixed_email5433 behaves like correct pipeline information5434 has a correct information5435 when pipeline on master branch has a merge request5436 has correct information that there is no merge request link5437 when pipeline for merge requests5438 has correct information that there is a merge request link5439 when branch pipeline is set to a merge request as a head pipeline5440 has correct information that there is a merge request link5441 behaves like only accepts a single recipient5442 raises an ArgumentError5443API::Applications5444 POST /applications5445 authenticated and authorized user5446 creates and returns an OAuth application5447 does not allow creating an application with the wrong redirect_uri format5448 does not allow creating an application with a forbidden URI format5449 does not allow creating an application without a name5450 does not allow creating an application without a redirect_uri5451 does not allow creating an application without specifying `scopes`5452 does not allow creating an application with blank `scopes`5453 does not allow creating an application with invalid `scopes`5454 defaults to creating an application with confidential5455 multiple scopes5456 creates an application with multiple `scopes` when each scope specified is seperated by a space5457 does not allow creating an application with multiple `scopes` when one of the scopes is invalid5458 authorized user without authorization5459 does not create application5460 non-authenticated user5461 does not create application5462 GET /applications5463 authenticated and authorized user5464 can list application5465 authorized user without authorization5466 cannot list application5467 non-authenticated user5468 cannot list application5469 DELETE /applications/:id5470 authenticated and authorized user5471 can delete an application5472 cannot delete non-existing application5473 authorized user without authorization5474 cannot delete an application5475 non-authenticated user5476 cannot delete an application5477package details5478DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5479DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5480 has the correct metadata5481DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5482DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5483 does not have files5484 behaves like a package detail5485 behaves like a working graphql query5486DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5487DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5488 returns a successful response5489 behaves like matching the package details schema5490DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5491DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5492 matches the JSON schema5493 with pipelines5494 behaves like a working graphql query5495DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5496DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5497 returns a successful response5498 behaves like matching the package details schema5499DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5500DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.5501 matches the JSON schema5502Projects::Alerting::NotificationsController5503 POST #create5504 with generic alert payload5505 behaves like process alert payload5506 when notification service succeeds5507 responds with the alert data5508 does not pass excluded parameters to the notify service5509 when notification service fails5510 responds with the service response5511 with bearer token5512 when set5513 behaves like a working token5514 extracts token5515 with a corresponding integration5516 with integration parameters specified5517 the integration is active5518 extracts and finds the integration5519 when the integration is inactive5520 does not find an integration5521 without integration parameters specified5522 extracts and finds the legacy integration5523 with basic auth token5524 behaves like a working token5525 extracts token5526 with a corresponding integration5527 with integration parameters specified5528 the integration is active5529 extracts and finds the integration5530 when the integration is inactive5531 does not find an integration5532 without integration parameters specified5533 extracts and finds the legacy integration5534 when inextractable token5535 passes nil for a non-bearer token5536 when missing token5537 passes nil5538 with Prometheus alert payload5539 behaves like process alert payload5540 when notification service succeeds5541 responds with the alert data5542 does not pass excluded parameters to the notify service5543 when notification service fails5544 responds with the service response5545 with bearer token5546 when set5547 behaves like a working token5548 extracts token5549 with a corresponding integration5550 with integration parameters specified5551 the integration is active5552 extracts and finds the integration5553 when the integration is inactive5554 does not find an integration5555 without integration parameters specified5556 extracts and finds the legacy integration5557 with basic auth token5558 behaves like a working token5559 extracts token5560 with a corresponding integration5561 with integration parameters specified5562 the integration is active5563 extracts and finds the integration5564 when the integration is inactive5565 does not find an integration5566 without integration parameters specified5567 extracts and finds the legacy integration5568 when inextractable token5569 passes nil for a non-bearer token5570 when missing token5571 passes nil5572API::ContainerRepositories5573 GET /registry/repositories/:id5574 behaves like rejected container repository access5575 for guest5576 returns forbidden5577 behaves like rejected container repository access5578 for anonymous5579 returns unauthorized5580 for allowed user5581 returns a repository5582 returns a matching schema5583 with a network error5584 returns a matching schema5585 with tags param5586 returns a repository and its tags5587 with a network error5588caught error of type Faraday::Error in after callback inside Grape::Middleware::Formatter : 5589 returns a connection error message5590 with tags_count param5591 returns a repository and its tags_count5592 with size param5593 returns a repository and its size5594 with a network error5595caught error of type Faraday::Error in after callback inside Grape::Middleware::Formatter : 5596 returns an error message5597 with not supporting the gitlab api5598 returns nil5599 not on .com5600 returns nil5601 with an older container repository5602 returns nil5603 with invalid repository id5604 behaves like returning response status5605 returns not_found5606Query.work_item(id)5607 when the user can read the work item5608 returns all fields5609 behaves like a working graphql query5610 returns a successful response5611 when querying widgets5612 description widget5613 returns widget information5614 hierarchy widget5615 returns widget information5616 avoids N+1 queries5617 when user is guest5618 filters out not accessible children or parent5619 when requesting child item5620 returns parent information5621 assignees widget5622 returns widget information5623 when an Issue Global ID is provided5624 allows an Issue GID as input5625 when the user can not read the work item5626 returns an access error5627 when the work_items feature flag is disabled5628 returns nil5629Import::BulkImportsController5630 when user is signed in5631 when bulk_import feature flag is enabled5632 POST configure5633 sets the session variables5634 strips access token with spaces5635 when no params are passed in5636 clears out existing session5637 GET status5638 serialized group data5639 returns serialized group data5640 forwards pagination headers5641 when filtering5642 returns filtered result5643 when host url is local or not http5644 denies network request5645 denies network request5646 denies network request5647 when local requests are allowed5648 allows network request5649 allows network request5650 when connection error occurs5651 returns 4225652 clears session5653 GET realtime_changes5654 returns bulk imports created by current user5655 sets a Poll-Interval header5656 POST create5657 executes BulkImpors::CreateService5658 when bulk_import feature flag is disabled5659 POST configure5660 returns 4045661 GET status5662 returns 4045663 when user is signed out5664 POST configure5665 redirects to sign in page5666 GET status5667 redirects to sign in page5668Updating the packages cleanup policy5669 post graphql mutation5670 with existing packages cleanup policy5671 user_role: :maintainer, shared_examples_name: "accepting the mutation request and updates the existing policy"5672 behaves like accepting the mutation request and updates the existing policy5673 returns the updated packages cleanup policy5674 user_role: :developer, shared_examples_name: "denying the mutation request"5675 behaves like denying the mutation request5676 returns an error5677 user_role: :reporter, shared_examples_name: "denying the mutation request"5678 behaves like denying the mutation request5679 returns an error5680 user_role: :guest, shared_examples_name: "denying the mutation request"5681 behaves like denying the mutation request5682 returns an error5683 user_role: :anonymous, shared_examples_name: "denying the mutation request"5684 behaves like denying the mutation request5685 returns an error5686 without existing packages cleanup policy5687 user_role: :maintainer, shared_examples_name: "accepting the mutation request and creates a policy"5688 behaves like accepting the mutation request and creates a policy5689 returns the created packages cleanup policy5690 user_role: :developer, shared_examples_name: "denying the mutation request"5691 behaves like denying the mutation request5692 returns an error5693 user_role: :reporter, shared_examples_name: "denying the mutation request"5694 behaves like denying the mutation request5695 returns an error5696 user_role: :guest, shared_examples_name: "denying the mutation request"5697 behaves like denying the mutation request5698 returns an error5699 user_role: :anonymous, shared_examples_name: "denying the mutation request"5700 behaves like denying the mutation request5701 returns an error5702Update of an existing issue5703 the user is not allowed to update issue5704 behaves like a mutation that returns a top-level access error5705 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"5706 when user has permissions to update issue5707 updates the issue5708 when issue_type is updated5709 updates issue_type and work_item_type5710 setting labels5711 reset labels5712 resets labels5713 reset labels and add labels5714 returns error for mutually exclusive arguments5715 reset labels and remove labels5716 returns error for mutually exclusive arguments5717 with global label ids5718 resets labels5719 add and remove labels5720 returns correct labels5721 add labels5722 adds labels and keeps the title ordering5723API::Ci::Runner5724 /api/v4/runners5725 POST /api/v4/runners5726 when no token is provided5727 returns 400 error5728 when invalid token is provided5729 returns 403 error5730 when valid parameters are provided5731 when token_expires_at is nil5732 creates runner5733 when token_expires_at is a valid date5734 creates runner5735 behaves like storing arguments in the application context for the API5736 places the expected params in the application context5737 behaves like not executing any extra queries for the application context5738 does not execute more queries than without adding anything to the application context5739 when deprecated maintainer_note field is provided5740 converts to maintenance_note param5741 when deprecated active parameter is provided5742 uses active value in registration5743 calling actual register service5744 sets the runner's ip_address5745 when info parameter 'name' info is present5746 updates provided Runner's parameter5747 when info parameter 'version' info is present5748 updates provided Runner's parameter5749 when info parameter 'revision' info is present5750 updates provided Runner's parameter5751 when info parameter 'platform' info is present5752 updates provided Runner's parameter5753 when info parameter 'architecture' info is present5754 updates provided Runner's parameter5755 when tags parameter is provided5756 with number of tags above limit5757 uses tag_list value in registration and returns error5758 with number of tags below limit5759 uses tag_list value in registration and successfully creates runner5760SourcegraphDecorator5761 with feature enabled, application enabled, and user enabled5762 behaves like enabled5763 is expected to eq {:url=>"http://sourcegraph.gitlab.com"}5764 with feature enabled for specific project5765 behaves like enabled5766 is expected to eq {:url=>"http://sourcegraph.gitlab.com"}5767 with feature enabled for different project5768 behaves like disabled5769 is expected to be nil5770 with feature disabled5771 behaves like disabled5772 is expected to be nil5773 with admin settings disabled5774 behaves like disabled5775 is expected to be nil5776 with public only5777 with internal project5778 behaves like disabled5779 is expected to be nil5780 with public project5781 behaves like enabled5782 is expected to eq {:url=>"http://sourcegraph.gitlab.com"}5783 with user disabled5784 behaves like disabled5785 is expected to be nil5786 with no user5787 behaves like disabled5788 is expected to be nil5789 with non-html format5790 behaves like disabled5791 is expected to be nil5792Toggle attention requested for reviewer5793 returns an error if the user is not allowed to update the merge request5794 reviewer does not exist5795 returns an error5796 reviewer exists5797 does not return an error5798Mutations::Labels::Create5799 when creating a project label5800 behaves like labels create mutation5801 when the user does not have permission to create a label5802 does not create the label5803 behaves like a mutation that returns a top-level access error5804 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"5805 when the user has permission to create a label5806 when the parent (project_path or group_path) param is given5807 creates the label5808 does not create a label when there are errors5809 when creating a group label5810 behaves like labels create mutation5811 when the user does not have permission to create a label5812 does not create the label5813 behaves like a mutation that returns a top-level access error5814 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"5815 when the user has permission to create a label5816 when the parent (project_path or group_path) param is given5817 creates the label5818 does not create a label when there are errors5819 when neither project_path nor group_path param is given5820 does not create the label5821 behaves like a mutation that returns top-level errors5822 is expected to contain exactly "Exactly one of group_path or project_path arguments is required"5823Create a work item from a task in a work item's description5824 the user is not allowed to update a work item5825 behaves like a mutation that returns a top-level access error5826 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"5827 when user has permissions to create a work item5828 creates the work item5829 when creating a work item fails5830 makes no changes to the DB and returns an error message5831 behaves like has spam protection5832 #check_spam_action_response!5833 when the object is spam (DISALLOW)5834 and no CAPTCHA is available5835 behaves like disallow response5836 informs the client that the request was denied as spam5837 and a CAPTCHA is required5838 behaves like disallow response5839 informs the client that the request was denied as spam5840 when the object is not spam (CONDITIONAL ALLOW)5841 and no CAPTCHA is required5842 does not return a top-level error5843 and a CAPTCHA is required5844 informs the client that the request may be retried after solving the CAPTCHA5845 when the work_items feature flag is disabled5846 does nothing and returns and error5847moving designs5848 the user is not allowed to move designs5849 returns an error5850 the neighbors do not have positions5851 maintains the correct order in the presence of other unpositioned designs5852 behaves like a successful move5853 does not error, and reports the current order5854 moving a design between two others5855 behaves like a successful move5856 does not error, and reports the current order5857 moving a design to the start5858 behaves like a successful move5859 does not error, and reports the current order5860 moving a design to the end5861 behaves like a successful move5862 does not error, and reports the current order5863Marking todos done5864 marks a single todo as done5865 when todo is already marked done5866 has the expected response5867 when todo does not belong to requesting user5868 results in the correct todo states5869 behaves like a mutation that returns a top-level access error5870 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"5871 when using an invalid gid5872 contains the expected error5873API::BulkImports5874 GET /bulk_imports5875 returns a list of bulk imports authored by the user5876 sort parameter5877 sorts by created_at descending by default5878 sorts by created_at descending when explicitly specified5879 sorts by created_at ascending when explicitly specified5880 POST /bulk_imports5881 starts a new migration5882 when provided url is blocked5883 returns blocked url error5884 GET /bulk_imports/entities5885 returns a list of all import entities authored by the user5886 GET /bulk_imports/:id5887 returns specified bulk import5888 GET /bulk_imports/:id/entities5889 returns specified bulk import entities with failures5890 GET /bulk_imports/:id/entities/:entity_id5891 returns specified bulk import entity5892 when user is unauthenticated5893 returns 4015894Mutations::Boards::Lists::Destroy5895 behaves like board lists destroy request5896 when the user does not have permission5897 does not destroy the list5898 returns an error5899 when the user has permission5900 when given id is not for a list5901 returns an error5902 when list does not exist5903 returns a top level error5904 when everything is ok5905 destroys the list5906 returns an empty list5907 when the list is not destroyable5908 behaves like does not destroy the list and returns an error5909 does not destroy the list5910 returns an error and not nil list5911Admin::RunnersController5912 #index5913 renders index template5914 #show5915 shows a runner show page5916 #edit5917 shows a runner edit page5918 shows 404 for unknown runner5919 avoids N+1 queries5920 #update5921 with update succeeding5922 updates the runner and ticks the queue5923 with update failing5924 does not update runner or tick the queue5925 #destroy5926 destroys the runner5927 #resume5928 marks the runner as active and ticks the queue5929 #pause5930 marks the runner as inactive and ticks the queue5931 GET #runner_setup_scripts5932 renders the setup scripts5933 renders errors if they occur5934Restoring Todos5935 restores a single todo5936 when todo is already marked pending5937 has the expected response5938 when todo does not belong to requesting user5939 results in the correct todo states5940 behaves like a mutation that returns a top-level access error5941 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"5942 when using an invalid gid5943 contains the expected error5944Projects::Pipelines::StagesController5945 POST #play_manual.json5946 when user does not have access5947 returns not authorized5948 when user has access5949 when the stage does not exists5950 fails to play all manual5951 when the stage exists5952 starts all manual jobs5953Projects::Import::JiraController5954 GET #show5955 behaves like users without permissions5956 with anonymous user5957 redirects to new user page5958 when loged user is a developer5959 behaves like redirect with error5960 redirects to project issues path5961 renders a correct error5962 jira integration configuration5963 when Jira service is not enabled for the project5964 does not query Jira service5965 behaves like template with no message5966 does not set any message5967 renders show template5968 when Jira service is not configured correctly for the project5969 behaves like template with no message5970 does not set any message5971 renders show template5972AbuseReportsController5973 GET new5974 when the user has already been deleted5975 redirects the reporter to root_path5976 when the user has already been blocked5977 redirects the reporter to the user's profile5978 POST create5979 with valid attributes5980 saves the abuse report5981 calls notify5982 redirects back to root5983 with invalid attributes5984 redirects back to root5985Moving an issue5986 when the user is not allowed to read source project5987 returns an error5988 when the user is not allowed to move issue to target project5989 returns an error5990 when the user is allowed to move issue5991 moves the issue5992getting Alert Management Alert Assignees5993 returns the correct assignees5994 applies appropriate filters for non-visible users5995 performance5996 can limit results5997 can include all results5998 avoids N+1 queries5999RepositoryCheckMailer6000 .notify6001 emails all admins6002 omits blocked admins6003 mentions the number of failed checks6004 with footer and header6005 behaves like appearance header and footer enabled6006 contains header and footer6007 behaves like appearance header and footer not enabled6008 does not contain header and footer6009Admin::RunnerProjectsController6010 #create6011 assigning runner to same project6012 redirects to the admin runner edit page6013 assigning runner to another project6014 redirects to the admin runner edit page6015 for unknown project6016 shows 404 for unknown project6017 #destroy6018 unassigning runner from project6019 redirects to the admin runner edit page6020 for unknown project runner relationship6021 shows 404 for unknown project runner relationship6022Groups::Settings::ApplicationsController6023 sets `oauth_applications_created` session key to `true`6024 GET #show6025 renders template6026 when application is viewed after being created6027 sets `@created` instance variable to `true`6028 when application is reviewed6029 sets `@created` instance variable to `false`6030Projects::LearnGitlabController6031 GET #index6032 unauthenticated user6033 is expected to respond with numeric status code redirect6034 authenticated user6035DEPRECATION WARNING: publish_to_database is deprecated and should not be used for reporting anymore (called from block in enable_invite_for_help_continuous_onboarding_experiment at /builds/gitlab-org/gitlab/app/controllers/projects/learn_gitlab_controller.rb:26)6036 is expected to render template index6037 learn_gitlab experiment not enabled6038 is expected to respond with numeric status code not_found6039 behaves like tracks assignment and records the subject6040DEPRECATION WARNING: publish_to_database is deprecated and should not be used for reporting anymore (called from block in enable_invite_for_help_continuous_onboarding_experiment at /builds/gitlab-org/gitlab/app/controllers/projects/learn_gitlab_controller.rb:26)6041 tracks the assignment6042DEPRECATION WARNING: publish_to_database is deprecated and should not be used for reporting anymore (called from block in enable_invite_for_help_continuous_onboarding_experiment at /builds/gitlab-org/gitlab/app/controllers/projects/learn_gitlab_controller.rb:26)6043 records the subject6044Profiles::PreferencesController6045 GET show6046 renders6047 assigns user6048 PATCH update6049 on successful update6050 responds with success6051 changes the user's preferences6052 on failed update6053 responds with error6054 on invalid dashboard setting6055 responds with error6056 on invalid diffs colors setting6057 responds with error for diffs_deletion_color6058 responds with error for diffs_addition_color6059API::Internal::Lfs6060 GET /internal/lfs6061 with invalid auth6062 returns 4016063 with valid auth6064 LFS in local storage6065 sends the file6066 delegates sending to Web server6067 retuns 404 for unknown file6068 returns 404 if LFS object does not belong to project6069 LFS in object storage6070 notifies Workhorse to send the file6071Projects::ErrorTracking::ProjectsController6072 GET #index6073 with insufficient permissions6074 returns 4046075 with an anonymous user6076 redirects to sign-in page6077 with authorized user6078 when service result is successful6079 returns a list of projects6080 with service result is erroneous6081 without http_status6082 returns 400 with message6083 with explicit http_status6084 returns http_status with message6085Admin::ApplicationsController6086 sets `oauth_applications_created` session key to `true`6087 GET #show6088 renders template6089 when application is viewed after being created6090 sets `@created` instance variable to `true`6091 when application is reviewed6092 sets `@created` instance variable to `false`6093PagerDuty webhook6094 POST /incidents/pagerduty6095 calls PagerDuty webhook processor with correct parameters6096 responds with 202 Accepted6097Getting Ci Cd Setting6098 without permissions6099 is expected to equal nil6100 behaves like a working graphql query6101 returns a successful response6102 with project permissions6103 fetches the settings data6104 behaves like a working graphql query6105 returns a successful response6106Create a todo6107 the user is not allowed to create todo6108 behaves like a mutation that returns a top-level access error6109 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"6110 when user has permissions to create todo6111 creates todo6112Admin::IntegrationsController6113 GET #overrides6114 format html6115 renders6116 format json6117 returns the project overrides data6118Multiplexed queries6119 returns responses for multiple queries6120 returns error and data combinations6121Projects::WebIdeSchemasController6122 GET show6123 when branch is invalid6124 returns 4226125 when a valid schema exists6126 returns the schema6127 when an error occurs parsing the schema6128 returns 422 with the error6129JiraConnect::BranchesController6130 #new6131 when logged in6132 assigns the suggested branch name6133 ignores missing summary6134 does not set a branch name if key is not passed6135 when not logged in6136 redirects to the login page6137Updating the dependency proxy group settings6138 post graphql mutation6139 without permission6140 returns no response6141 with permission6142 returns the updated dependency proxy settings6143Deletes a release asset link6144 deletes the release asset link and returns the deleted link6145getting a repository in a project6146 behaves like a working graphql query6147 returns a successful response6148SpammableActions::CaptchaCheck::JsonFormatActionsSupport6149 #with_captcha_check_json_format6150 when spammable.render_recaptcha? is true6151 renders json containing spam_action_response_fields6152 when spammable.render_recaptcha? is false6153 yields to block6154Every controller6155 feature categories6156 has feature categories6157 completed controllers don't get new routes without categories6158 recognizes the feature categories6159 doesn't define or exclude categories on removed actions6160Admin::GitalyServersController6161 #index6162 shows the gitaly servers page6163RunnerSetupController6164 GET /-/runner_setup/platforms6165 renders the platforms6166Knapsack report was generated. Preview:6167{6168 "spec/requests/git_http_spec.rb": 318.28406482300034,6169 "spec/requests/api/maven_packages_spec.rb": 234.92415316400002,6170 "spec/requests/api/users_spec.rb": 102.21935832799954,6171 "spec/requests/api/branches_spec.rb": 144.75281930999972,6172 "spec/controllers/projects/clusters_controller_spec.rb": 122.6264885290002,6173 "spec/controllers/projects/branches_controller_spec.rb": 95.40685051800028,6174 "spec/requests/api/ci/triggers_spec.rb": 88.78511037699991,6175 "spec/controllers/admin/instance_review_controller_spec.rb": 89.59733709600005,6176 "spec/controllers/groups/children_controller_spec.rb": 58.767914592000125,6177 "spec/requests/api/issues/post_projects_issues_spec.rb": 44.88754077500016,6178 "spec/controllers/ldap/omniauth_callbacks_controller_spec.rb": 69.30240759999924,6179 "spec/controllers/admin/users_controller_spec.rb": 31.54590204899978,6180 "spec/controllers/omniauth_callbacks_controller_spec.rb": 23.592513674000656,6181 "spec/controllers/projects/feature_flags_controller_spec.rb": 17.99505831499937,6182 "spec/requests/api/project_import_spec.rb": 29.23278882899922,6183 "spec/requests/api/project_milestones_spec.rb": 21.2964655400001,6184 "spec/requests/api/graphql/project/merge_request_spec.rb": 23.282477429999744,6185 "spec/controllers/dashboard/todos_controller_spec.rb": 22.19935195800008,6186 "spec/controllers/groups/registry/repositories_controller_spec.rb": 25.01604667599986,6187 "spec/requests/api/unleash_spec.rb": 9.577491576999819,6188 "spec/requests/api/package_files_spec.rb": 17.371081369999956,6189 "spec/controllers/projects/tags_controller_spec.rb": 15.375545416000023,6190 "spec/requests/api/issue_links_spec.rb": 18.561086232999514,6191 "spec/requests/api/project_hooks_spec.rb": 7.939094751000084,6192 "spec/requests/api/group_import_spec.rb": 15.591927489998852,6193 "spec/requests/projects/clusters/integrations_controller_spec.rb": 15.743080985001143,6194 "spec/requests/api/markdown_golden_master_spec.rb": 10.118410496001161,6195 "spec/requests/api/graphql/project/pipeline_spec.rb": 12.194030218999615,6196 "spec/requests/api/system_hooks_spec.rb": 5.946188353998878,6197 "spec/requests/api/clusters/agents_spec.rb": 9.536562643999787,6198 "spec/controllers/concerns/metrics_dashboard_spec.rb": 6.984870341000715,6199 "spec/requests/api/graphql/mutations/award_emojis/add_spec.rb": 9.775251093000406,6200 "spec/controllers/projects/todos_controller_spec.rb": 5.912751589999971,6201 "spec/controllers/projects/performance_monitoring/dashboards_controller_spec.rb": 8.637962263999725,6202 "spec/requests/api/graphql/mutations/issues/set_crm_contacts_spec.rb": 7.467358920001061,6203 "spec/mailers/emails/pipelines_spec.rb": 6.042205328998534,6204 "spec/requests/api/applications_spec.rb": 5.299330532001477,6205 "spec/requests/api/graphql/packages/composer_spec.rb": 7.901249397000356,6206 "spec/controllers/projects/alerting/notifications_controller_spec.rb": 3.5336293389991624,6207 "spec/requests/api/container_repositories_spec.rb": 6.178264525999111,6208 "spec/requests/api/graphql/work_item_spec.rb": 7.270154073999947,6209 "spec/controllers/import/bulk_imports_controller_spec.rb": 3.1400139039997157,6210 "spec/requests/api/graphql/mutations/packages/cleanup/policy/update_spec.rb": 4.457024713999999,6211 "spec/requests/api/graphql/mutations/issues/update_spec.rb": 6.812797759999739,6212 "spec/requests/api/ci/runner/runners_post_spec.rb": 1.1021527360007894,6213 "spec/controllers/concerns/sourcegraph_decorator_spec.rb": 3.6321476430002804,6214 "spec/requests/api/graphql/mutations/merge_requests/update_reviewer_state_spec.rb": 4.534964469999977,6215 "spec/requests/api/graphql/mutations/labels/create_spec.rb": 3.301848876999429,6216 "spec/requests/api/graphql/mutations/work_items/create_from_task_spec.rb": 5.9161623100008,6217 "spec/requests/api/graphql/mutations/design_management/move_spec.rb": 3.098653531000309,6218 "spec/requests/api/graphql/mutations/todos/mark_done_spec.rb": 3.376962124999409,6219 "spec/requests/api/bulk_imports_spec.rb": 1.533977393000896,6220 "spec/requests/api/graphql/mutations/boards/lists/destroy_spec.rb": 4.38661701500132,6221 "spec/controllers/admin/runners_controller_spec.rb": 4.459203704998799,6222 "spec/requests/api/graphql/mutations/todos/restore_spec.rb": 3.5758293319995573,6223 "spec/controllers/projects/pipelines/stages_controller_spec.rb": 5.296153912999216,6224 "spec/controllers/projects/import/jira_controller_spec.rb": 2.661017874999743,6225 "spec/requests/abuse_reports_controller_spec.rb": 2.3272129809993203,6226 "spec/requests/api/graphql/mutations/issues/move_spec.rb": 3.031656612000006,6227 "spec/requests/api/graphql/project/alert_management/alert/assignees_spec.rb": 2.799561931000426,6228 "spec/mailers/repository_check_mailer_spec.rb": 1.3469699950001086,6229 "spec/controllers/admin/runner_projects_controller_spec.rb": 2.0533230059991183,6230 "spec/requests/groups/settings/applications_controller_spec.rb": 3.9540328580005735,6231 "spec/controllers/projects/learn_gitlab_controller_spec.rb": 2.289544475999719,6232 "spec/controllers/profiles/preferences_controller_spec.rb": 1.9820580079995125,6233 "spec/requests/api/internal/lfs_spec.rb": 1.3735206699984701,6234 "spec/controllers/projects/error_tracking/projects_controller_spec.rb": 1.621145699000408,6235 "spec/requests/admin/applications_controller_spec.rb": 1.6585522029999993,6236 "spec/requests/projects/incident_management/pagerduty_incidents_spec.rb": 0.8774834129999363,6237 "spec/requests/api/graphql/ci/ci_cd_setting_spec.rb": 1.9480749440008367,6238 "spec/requests/api/graphql/mutations/todos/create_spec.rb": 1.756641097001193,6239 "spec/requests/admin/integrations_controller_spec.rb": 1.5435264419993473,6240 "spec/requests/api/graphql/multiplexed_queries_spec.rb": 0.18582282900024438,6241 "spec/controllers/projects/web_ide_schemas_controller_spec.rb": 0.7926649979999638,6242 "spec/controllers/jira_connect/branches_controller_spec.rb": 0.6025261399990995,6243 "spec/requests/api/graphql/mutations/dependency_proxy/group_settings/update_spec.rb": 1.201849488001244,6244 "spec/requests/api/graphql/mutations/release_asset_links/delete_spec.rb": 1.2786158560011245,6245 "spec/requests/api/graphql/project/container_expiration_policy_spec.rb": 0.6757988269982889,6246 "spec/controllers/concerns/spammable_actions/captcha_check/json_format_actions_support_spec.rb": 0.5284779710000294,6247 "spec/controllers/every_controller_spec.rb": 0.28710059200057003,6248 "spec/controllers/admin/gitaly_servers_controller_spec.rb": 0.3500826210001833,6249 "spec/requests/runner_setup_controller_spec.rb": 0.253420156999709436250}6251Knapsack global time execution for tests: 31m 14s6252Pending: (Failures listed here are expected and do not affect your suite's status)6253 1) getting merge request information nested in a project behaves like when requesting information about MR interactions scalability when selecting all fields behaves like scalable query for interaction fields does not suffer from N+16255 Failure/Error: expect { post_graphql(query) }.not_to exceed_query_limit(baseline)6256 Expected a maximum of 18 queries, got 24:6257 Query Diff:6258 -----------6259 SELECT MAX("project_authorizations"."access_level") AS maximum_access_level, "project_authorizations"."user_id" AS project_authorizations_user_id FROM "project_authorizations"...6260 -- (expected: 0, got: 1)6261 WHERE "project_authorizations"."project_id" = 885 AND "project_authorizations"."user_id" = 2087 GROUP BY "project_authorizations"."user_id"6262 -- (expected: 0, got: 1)6263 WHERE "project_authorizations"."project_id" = 885 AND "project_authorizations"."user_id" = 2086 GROUP BY "project_authorizations"."user_id"6264 -- (expected: 0, got: 1)6265 WHERE "project_authorizations"."project_id" = 885 AND "project_authorizations"."user_id" = 2085 GROUP BY "project_authorizations"."user_id"6266 SELECT 1 AS one FROM "users"...6267 -- (expected: 0, got: 1)6268 INNER JOIN "merge_request_assignees" ON "users"."id" = "merge_request_assignees"."user_id" WHERE "merge_request_assignees"."merge_request_id" = 20 AND "users"."id" = 2087 LIMIT 16269 -- (expected: 0, got: 1)6270 INNER JOIN "merge_request_assignees" ON "users"."id" = "merge_request_assignees"."user_id" WHERE "merge_request_assignees"."merge_request_id" = 20 AND "users"."id" = 2086 LIMIT 16271 -- (expected: 0, got: 1)6272 INNER JOIN "merge_request_assignees" ON "users"."id" = "merge_request_assignees"."user_id" WHERE "merge_request_assignees"."merge_request_id" = 20 AND "users"."id" = 2085 LIMIT 16273 Shared Example Group: "scalable query for interaction fields" called from ./spec/requests/api/graphql/project/merge_request_spec.rb:4586274 Shared Example Group: "when requesting information about MR interactions" called from ./spec/requests/api/graphql/project/merge_request_spec.rb:4636275 # ./spec/requests/api/graphql/project/merge_request_spec.rb:431:in `block (5 levels) in <top (required)>'6276 # ./spec/spec_helper.rb:405:in `block (3 levels) in <top (required)>'6277 # ./spec/support/sidekiq_middleware.rb:9:in `with_sidekiq_server_middleware'6278 # ./spec/spec_helper.rb:396:in `block (2 levels) in <top (required)>'6279 # ./spec/spec_helper.rb:392:in `block (3 levels) in <top (required)>'6280 # ./lib/gitlab/application_context.rb:52:in `with_raw_context'6281 # ./spec/spec_helper.rb:392:in `block (2 levels) in <top (required)>'6282 # ./spec/spec_helper.rb:261:in `block (2 levels) in <top (required)>'6283 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'6284 # ./spec/support/flaky_tests.rb:27:in `block (2 levels) in <top (required)>'6285 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'6286 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'6287 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'6288 2) getting merge request information nested in a project behaves like when requesting information about MR interactions scalability when selecting all fields behaves like scalable query for interaction fields does not suffer from N+16290 Failure/Error: expect { post_graphql(query) }.not_to exceed_query_limit(baseline)6291 Expected a maximum of 18 queries, got 24:6292 Query Diff:6293 -----------6294 SELECT MAX("project_authorizations"."access_level") AS maximum_access_level, "project_authorizations"."user_id" AS project_authorizations_user_id FROM "project_authorizations"...6295 -- (expected: 0, got: 1)6296 WHERE "project_authorizations"."project_id" = 885 AND "project_authorizations"."user_id" = 2091 GROUP BY "project_authorizations"."user_id"6297 -- (expected: 0, got: 1)6298 WHERE "project_authorizations"."project_id" = 885 AND "project_authorizations"."user_id" = 2090 GROUP BY "project_authorizations"."user_id"6299 -- (expected: 0, got: 1)6300 WHERE "project_authorizations"."project_id" = 885 AND "project_authorizations"."user_id" = 2089 GROUP BY "project_authorizations"."user_id"6301 SELECT 1 AS one FROM "users"...6302 -- (expected: 0, got: 1)6303 INNER JOIN "merge_request_assignees" ON "users"."id" = "merge_request_assignees"."user_id" WHERE "merge_request_assignees"."merge_request_id" = 20 AND "users"."id" = 2091 LIMIT 16304 -- (expected: 0, got: 1)6305 INNER JOIN "merge_request_assignees" ON "users"."id" = "merge_request_assignees"."user_id" WHERE "merge_request_assignees"."merge_request_id" = 20 AND "users"."id" = 2090 LIMIT 16306 -- (expected: 0, got: 1)6307 INNER JOIN "merge_request_assignees" ON "users"."id" = "merge_request_assignees"."user_id" WHERE "merge_request_assignees"."merge_request_id" = 20 AND "users"."id" = 2089 LIMIT 16308 Shared Example Group: "scalable query for interaction fields" called from ./spec/requests/api/graphql/project/merge_request_spec.rb:4586309 Shared Example Group: "when requesting information about MR interactions" called from ./spec/requests/api/graphql/project/merge_request_spec.rb:4736310 # ./spec/requests/api/graphql/project/merge_request_spec.rb:431:in `block (5 levels) in <top (required)>'6311 # ./spec/spec_helper.rb:405:in `block (3 levels) in <top (required)>'6312 # ./spec/support/sidekiq_middleware.rb:9:in `with_sidekiq_server_middleware'6313 # ./spec/spec_helper.rb:396:in `block (2 levels) in <top (required)>'6314 # ./spec/spec_helper.rb:392:in `block (3 levels) in <top (required)>'6315 # ./lib/gitlab/application_context.rb:52:in `with_raw_context'6316 # ./spec/spec_helper.rb:392:in `block (2 levels) in <top (required)>'6317 # ./spec/spec_helper.rb:261:in `block (2 levels) in <top (required)>'6318 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'6319 # ./spec/support/flaky_tests.rb:27:in `block (2 levels) in <top (required)>'6320 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'6321 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'6322 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'6323 3) API::PackageFiles GET /projects/:id/packages/:package_id/package_files without the need for a license with pagination params when viewing the first page returns first 2 packages6324 # around hook at ./spec/support/flaky_tests.rb:21 did not execute the example6325 # ./spec/requests/api/package_files_spec.rb:646326 4) API::Markdown Golden Master for footnotes verifies conversion of GFM to HTML6328 Failure/Error: expect(normalized_response_html).to eq(normalized_example_html)6329 expected: "<p data-sourcepos=\"1:1-1:46\" dir=\"auto\">A footnote reference tag looks like this: <sup class=\"footnote-ref\"><a href=\"REF\" id=\"ID\" data-footnote-ref=\"\">1</a></sup></p>\n<p data-sourcepos=\"3:1-3:56\" dir=\"auto\">This reference tag is a mix of letters and numbers. <sup class=\"footnote-ref\"><a href=\"REF\" id=\"ID\" data-footnote-ref=\"\">2</a></sup></p>\n<section class=\"footnotes\" data-footnotes><ol>\n<li id=\"ID\">\n<p data-sourcepos=\"5:7-5:41\">This is the text inside a footnote. <a href=\"REF\" aria-label=\"Back to content\" class=\"footnote-backref\" data-footnote-backref=\"\"><gl-emoji title=\"leftwards arrow with hook\" data-name=\"leftwards_arrow_with_hook\" data-unicode-version=\"1.1\">↩</gl-emoji></a></p>\n</li>\n<li id=\"ID\">\n<p data-sourcepos=\"6:7-6:31\">This is another footnote. <a href=\"REF\" aria-label=\"Back to content\" class=\"footnote-backref\" data-footnote-backref=\"\"><gl-emoji title=\"leftwards arrow with hook\" data-name=\"leftwards_arrow_with_hook\" data-unicode-version=\"1.1\">↩</gl-emoji></a></p>\n</li>\n</ol></section>"6330 got: "<p data-sourcepos=\"1:1-1:46\" dir=\"auto\">A footnote reference tag looks like this: <sup class=\"footnote-ref\"><a href=\"REF\" id=\"ID\" data-footnote-ref>1</a></sup></p>\n<p data-sourcepos=\"3:1-3:63\" dir=\"auto\">This reference tag is a mix of letters and numbers. <sup class=\"footnote-ref\"><a href=\"REF\" id=\"ID\" data-footnote-ref>2</a></sup></p>\n<section data-footnotes class=\"footnotes\">\n<ol>\n<li id=\"ID\">\n<p data-sourcepos=\"5:7-5:41\">This is the text inside a footnote. <a href=\"REF\" data-footnote-backref aria-label=\"Back to content\" class=\"footnote-backref\"><gl-emoji title=\"leftwards arrow with hook\" data-name=\"leftwards_arrow_with_hook\" data-unicode-version=\"1.1\">↩</gl-emoji></a></p>\n</li>\n<li id=\"ID\">\n<p data-sourcepos=\"7:14-7:38\">This is another footnote. <a href=\"REF\" data-footnote-backref aria-label=\"Back to content\" class=\"footnote-backref\"><gl-emoji title=\"leftwards arrow with hook\" data-name=\"leftwards_arrow_with_hook\" data-unicode-version=\"1.1\">↩</gl-emoji></a></p>\n</li>\n</ol>\n</section>"6331 (compared using ==)6332 Diff:6333 @@ -1,11 +1,13 @@6334 -<p data-sourcepos="1:1-1:46" dir="auto">A footnote reference tag looks like this: <sup class="footnote-ref"><a href="REF" id="ID" data-footnote-ref="">1</a></sup></p>6335 -<p data-sourcepos="3:1-3:56" dir="auto">This reference tag is a mix of letters and numbers. <sup class="footnote-ref"><a href="REF" id="ID" data-footnote-ref="">2</a></sup></p>6336 -<section class="footnotes" data-footnotes><ol>6337 +<p data-sourcepos="1:1-1:46" dir="auto">A footnote reference tag looks like this: <sup class="footnote-ref"><a href="REF" id="ID" data-footnote-ref>1</a></sup></p>6338 +<p data-sourcepos="3:1-3:63" dir="auto">This reference tag is a mix of letters and numbers. <sup class="footnote-ref"><a href="REF" id="ID" data-footnote-ref>2</a></sup></p>6339 +<section data-footnotes class="footnotes">6340 +<ol>6341 <li id="ID">6342 -<p data-sourcepos="5:7-5:41">This is the text inside a footnote. <a href="REF" aria-label="Back to content" class="footnote-backref" data-footnote-backref=""><gl-emoji title="leftwards arrow with hook" data-name="leftwards_arrow_with_hook" data-unicode-version="1.1">↩</gl-emoji></a></p>6343 +<p data-sourcepos="5:7-5:41">This is the text inside a footnote. <a href="REF" data-footnote-backref aria-label="Back to content" class="footnote-backref"><gl-emoji title="leftwards arrow with hook" data-name="leftwards_arrow_with_hook" data-unicode-version="1.1">↩</gl-emoji></a></p>6344 </li>6345 <li id="ID">6346 -<p data-sourcepos="6:7-6:31">This is another footnote. <a href="REF" aria-label="Back to content" class="footnote-backref" data-footnote-backref=""><gl-emoji title="leftwards arrow with hook" data-name="leftwards_arrow_with_hook" data-unicode-version="1.1">↩</gl-emoji></a></p>6347 +<p data-sourcepos="7:14-7:38">This is another footnote. <a href="REF" data-footnote-backref aria-label="Back to content" class="footnote-backref"><gl-emoji title="leftwards arrow with hook" data-name="leftwards_arrow_with_hook" data-unicode-version="1.1">↩</gl-emoji></a></p>6348 </li>6349 -</ol></section>6350 +</ol>6351 +</section>6352 Shared Example Group: "API::Markdown Golden Master shared context" called from ./spec/requests/api/markdown_golden_master_spec.rb:86353 # ./spec/support/shared_contexts/markdown_golden_master_shared_examples.rb:83:in `block (4 levels) in <top (required)>'6354 # ./spec/spec_helper.rb:405:in `block (3 levels) in <top (required)>'6355 # ./spec/support/sidekiq_middleware.rb:9:in `with_sidekiq_server_middleware'6356 # ./spec/spec_helper.rb:396:in `block (2 levels) in <top (required)>'6357 # ./spec/spec_helper.rb:392:in `block (3 levels) in <top (required)>'6358 # ./lib/gitlab/application_context.rb:52:in `with_raw_context'6359 # ./spec/spec_helper.rb:392:in `block (2 levels) in <top (required)>'6360 # ./spec/spec_helper.rb:261:in `block (2 levels) in <top (required)>'6361 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'6362 # ./spec/support/flaky_tests.rb:27:in `block (2 levels) in <top (required)>'6363 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'6364 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'6365 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'6366Finished in 31 minutes 19 seconds (files took 1 minute 15.73 seconds to load)63672729 examples, 0 failures, 4 pending6368RSpec exited with 0.6369No examples to retry, congrats!6371Not uploading cache ruby-gems-debian-bullseye-ruby-2.7-10 due to policy6372Not uploading cache gitaly-ruby-gems-debian-bullseye-ruby-2.7-10 due to policy6374Uploading artifacts...6375coverage/: found 5 matching files and directories 6376crystalball/: found 2 matching files and directories 6377deprecations/: found 7 matching files and directories 6378knapsack/: found 3 matching files and directories 6379rspec/: found 9 matching files and directories 6380WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory 6381log/*.log: found 17 matching files and directories 6382WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/2658553452/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com6383WARNING: Retrying... context=artifacts-uploader error=request redirected6384Uploading artifacts as "archive" to coordinator... 201 Created id=2658553452 responseStatus=201 Created token=NtmVaxDm6385Uploading artifacts...6386rspec/junit_rspec.xml: found 1 matching files and directories 6387WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/2658553452/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com6388WARNING: Retrying... context=artifacts-uploader error=request redirected6389Uploading artifacts as "junit" to coordinator... 201 Created id=2658553452 responseStatus=201 Created token=NtmVaxDm6391Job succeeded