rspec integration pg12 single-db 8/10
Passed Started
by
@leetickett

Lee Tickett
1Running with gitlab-runner 15.1.0~beta.20.g62206bb2 (62206bb2)2 on blue-4.shared-gitlab-org.runners-manager.gitlab.com/default 8cwZ3F433 feature flags: FF_USE_FASTZIP:true6Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-101-yarn-1.22-graphicsmagick-1.3.36 ...7Starting service postgres:12 ...8Pulling docker image postgres:12 ...9Using docker image sha256:ac3b8cd6a8b42e839456256bc514d6230b5a2538c738b3d522e1384a2a172b96 for postgres:12 with digest postgres@sha256:e6ffad42c91a4d5a29257a27ac4e160c3ae7196696b37bf2e80410024ed95951 ...10Starting service redis:6.0-alpine ...11Pulling docker image redis:6.0-alpine ...12Using docker image sha256:09401fed2a421bf0019f96dcec70c85f82ec7b76beb1ae589547b0dc302d6b76 for redis:6.0-alpine with digest redis@sha256:217a9db40a914cc3f6206a143a4d750da0607500cc013a147a4979e08e40beff ...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:642191311550aaa03aba1d11d8d921042ead8ee5afeb833fc7e4e3f933b7ed04 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-101-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12@sha256:f0990c59018be757dd56365bb2cc6791d65f3f4bf99a431c3b26e3df08260f6a ...18Running on runner-8cwz3f43-project-278964-concurrent-0 via runner-8cwz3f43-shared-gitlab-org-1656907448-e4df18af...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: 115982, done. 25remote: Counting objects: 100% (115982/115982), done. 26remote: Compressing objects: 100% (81018/81018), done. 27remote: Total 115982 (delta 48513), reused 75495 (delta 30560), pack-reused 0 28Receiving objects: 100% (115982/115982), 108.44 MiB | 31.69 MiB/s, done.29Resolving deltas: 100% (48513/48513), done.31 * [new ref] refs/pipelines/579176392 -> refs/pipelines/57917639232Checking out 204b4379 as refs/merge-requests/91556/merge...33Skipping Git submodules setup34$ git remote set-url origin "${CI_REPOSITORY_URL}"36Checking cache for ruby-gems-debian-bullseye-ruby-2.7-10...37Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/ruby-gems-debian-bullseye-ruby-2.7-10 38Successfully extracted cache39Checking cache for gitaly-ruby-gems-debian-bullseye-ruby-2.7-10...40Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/gitaly-ruby-gems-debian-bullseye-ruby-2.7-10 41Successfully extracted cache43Downloading artifacts for compile-test-assets (2673336706)...44Downloading artifacts from coordinator... ok id=2673336706 responseStatus=200 OK token=2cdQ9xqr45Downloading artifacts for detect-tests (2673336715)...46Downloading artifacts from coordinator... ok id=2673336715 responseStatus=200 OK token=2cdQ9xqr47Downloading artifacts for retrieve-tests-metadata (2673336722)...48Downloading artifacts from coordinator... ok id=2673336722 responseStatus=200 OK token=2cdQ9xqr49Downloading artifacts for setup-test-env (2673336712)...50Downloading artifacts from coordinator... ok id=2673336712 responseStatus=200 OK token=2cdQ9xqr52Using docker image sha256:642191311550aaa03aba1d11d8d921042ead8ee5afeb833fc7e4e3f933b7ed04 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-101-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12@sha256:f0990c59018be757dd56365bb2cc6791d65f3f4bf99a431c3b26e3df08260f6a ...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 10 seconds.84$ setup_db_user_only85CREATE ROLE86GRANT87==> 'setup_db_user_only' succeeded in 0 seconds.88$ bundle exec rake db:drop db:create db:schema:load db:migrate89Dropped database 'gitlabhq_test'90Dropped database 'gitlabhq_geo_test'91Created database 'gitlabhq_test'92Created database 'gitlabhq_geo_test'93==> 'bundle exec rake db:drop db:create db:schema:load db:migrate' succeeded in 31 seconds.94$ setup_db_praefect95SELECT pg_catalog.set_config('search_path', '', false);96CREATE DATABASE praefect_test ENCODING 'UTF8';97==> 'setup_db_praefect' succeeded in 0 seconds.98$ run_timed_command "gem install knapsack --no-document"99$ gem install knapsack --no-document100Successfully installed knapsack-4.0.01011 gem installed102==> 'gem install knapsack --no-document' succeeded in 1 seconds.103$ run_timed_command "scripts/gitaly-test-spawn"104$ scripts/gitaly-test-spawn105find: ‘/builds/gitlab-org/gitlab/tmp/tests/gitaly/cmd’: No such file or directory106Don't run Bundler as root. Bundler can ask for sudo if it is needed, and107installing your bundle as root will break this application for all non-root108users on this machine.109Using abstract_type 0.0.7110Using concurrent-ruby 1.1.10111Using i18n 1.10.0112Using minitest 5.15.0113Using tzinfo 2.0.4114Using zeitwerk 2.5.4115Using activesupport 6.1.4.7116Using builder 3.2.4117Using erubi 1.10.0118Using mini_portile2 2.8.0119Using racc 1.6.0120Using nokogiri 1.13.6 (x86_64-linux)121Using rails-dom-testing 2.0.3122Using crass 1.0.6123Using loofah 2.16.0124Using rails-html-sanitizer 1.4.2125Using actionview 6.1.4.7126Using rack 2.2.3127Using rack-test 1.1.0128Using actionpack 6.1.4.7129Using ice_nine 0.11.2130Using thread_safe 0.3.6131Using memoizable 0.4.2132Using adamantium 0.2.0133Using public_suffix 4.0.6134Using addressable 2.7.0135Using ast 2.4.2136Using binding_ninja 0.2.3137Using bundler 2.3.15138Using charlock_holmes 0.7.7139Using coderay 1.1.2140Using equalizer 0.0.11141Using concord 0.1.5142Using diff-lcs 1.3143Using dotenv 2.7.6144Using escape_utils 1.2.1145Using factory_bot 5.0.2146Using multipart-post 2.1.1147Using faraday 1.0.1148Using ffi 1.15.3149Using json 2.5.1150Using gemojione 3.3.0151Using mini_mime 1.0.2152Using rugged 1.2.0153Using github-linguist 7.12.1154Using github-markup 1.7.0155Using mime-types-data 3.2020.1104156Using mime-types 3.3.1157Using gitlab-gollum-rugged_adapter 0.4.4.4.gitlab.1158Using rouge 3.27.0159Using sanitize 6.0.0160Using stringex 2.8.5161Using gitlab-gollum-lib 4.2.7.10.gitlab.2162Using google-protobuf 3.19.1 (x86_64-linux)163Using googleapis-common-protos-types 1.3.0164Using grpc 1.42.0 (x86_64-linux)165Using opentracing 0.5.0166Using thrift 0.15.0167Using jaeger-client 1.1.0168Using pg_query 2.1.1169Using redis 4.4.0170Using gitlab-labkit 0.23.0171Using rubyzip 2.3.2172Using thor 1.1.0173Using tomlrb 2.0.1174Using with_env 1.1.0175Using rexml 3.2.5176Using xml-simple 1.1.9177Using gitlab-license_finder 6.14.2.1178Using gitlab-markup 1.7.1179Using grpc-tools 1.42.0180Using sawyer 0.8.2181Using octokit 4.20.0182Using reverse_markdown 1.4.0183Using licensee 9.14.1184Using method_source 0.9.2185Using msgpack 1.3.3186Using optimist 3.0.1187Using parallel 1.19.2188Using parser 3.0.3.2189Using procto 0.0.3190Using unparser 0.4.7191Using proc_to_ast 0.1.0192Using pry 0.12.2193Using rainbow 3.0.0194Using rbtrace 0.4.14195Using rdoc 6.3.2196Using regexp_parser 1.8.1197Using rspec-support 3.8.0198Using rspec-core 3.8.0199Using rspec-expectations 3.8.3200Using rspec-mocks 3.8.0201Using rspec 3.8.0202Using rspec-parameterized 0.4.2203Using rubocop-ast 0.2.0204Using ruby-progressbar 1.10.1205Using unicode-display_width 1.7.0206Using rubocop 0.86.0207Using sentry-raven 3.0.4208Using timecop 0.9.1209Bundle complete! 22 Gemfile dependencies, 100 gems now installed.210Gems in the groups 'production' and 'development' were not installed.211Bundled gems are installed into `/builds/gitlab-org/gitlab/vendor/gitaly-ruby`212Checking gitaly-ruby Gemfile...213Checking gitaly-ruby bundle...214The Gemfile's dependencies are satisfied215Trying to connect to gitaly: ........................................... OK216Trying to connect to gitaly2: ......................................................................... OK217Starting Praefect with in-memory election strategyTrying to connect to praefect: ........ OK218==> 'scripts/gitaly-test-spawn' succeeded in 14 seconds.219$ source ./scripts/rspec_helpers.sh220$ rspec_paralellized_job "--tag ~quarantine --tag ~level:migration"221SKIP_FLAKY_TESTS_AUTOMATICALLY: true222RETRY_FAILED_TESTS_IN_NEW_PROCESS: true223KNAPSACK_GENERATE_REPORT: true224FLAKY_RSPEC_GENERATE_REPORT: true225KNAPSACK_TEST_FILE_PATTERN: spec/{commands,controllers,mailers,requests}{,/**/}*_spec.rb226KNAPSACK_LOG_LEVEL: debug227KNAPSACK_REPORT_PATH: knapsack/rspec_integration_pg12_single-db_8_10_report.json228FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json229FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_integration_pg12_single-db_8_10_report.json230NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_integration_pg12_single-db_8_10_report.json231SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec_integration_pg12_single-db_8_10_report.txt232RETRIED_TESTS_REPORT_PATH: rspec/flaky/retried_tests_rspec_integration_pg12_single-db_8_10_report.txt233CRYSTALBALL: 234Knapsack node specs:235spec/requests/git_http_spec.rb236spec/requests/api/repositories_spec.rb237spec/controllers/admin/application_settings_controller_spec.rb238spec/requests/api/issues/get_project_issues_spec.rb239spec/requests/api/files_spec.rb240spec/controllers/boards/issues_controller_spec.rb241spec/requests/api/issues/issues_spec.rb242spec/controllers/groups/milestones_controller_spec.rb243spec/requests/api/ci/jobs_spec.rb244spec/controllers/import/github_controller_spec.rb245spec/requests/api/deployments_spec.rb246spec/controllers/import/gitea_controller_spec.rb247spec/requests/openid_connect_spec.rb248spec/requests/api/terraform/state_version_spec.rb249spec/requests/api/pages/public_access_spec.rb250spec/requests/api/group_milestones_spec.rb251spec/controllers/projects/starrers_controller_spec.rb252spec/requests/health_controller_spec.rb253spec/controllers/admin/integrations_controller_spec.rb254spec/requests/api/graphql/mutations/notes/create/diff_note_spec.rb255spec/requests/api/graphql/packages/maven_spec.rb256spec/requests/api/features_spec.rb257spec/controllers/import/bitbucket_controller_spec.rb258spec/requests/api/resource_milestone_events_spec.rb259spec/controllers/projects/imports_controller_spec.rb260spec/requests/api/project_templates_spec.rb261spec/requests/api/ci/secure_files_spec.rb262spec/controllers/oauth/applications_controller_spec.rb263spec/controllers/projects/releases/evidences_controller_spec.rb264spec/requests/api/graphql/group/dependency_proxy_manifests_spec.rb265spec/controllers/projects/merge_requests/content_controller_spec.rb266spec/requests/import/gitlab_groups_controller_spec.rb267spec/requests/groups/crm/contacts_controller_spec.rb268spec/requests/lfs_locks_api_spec.rb269spec/requests/api/internal/kubernetes_spec.rb270spec/controllers/projects/analytics/cycle_analytics/stages_controller_spec.rb271spec/requests/api/graphql/project/issue_spec.rb272spec/requests/api/doorkeeper_access_spec.rb273spec/requests/api/graphql/group/dependency_proxy_blobs_spec.rb274spec/controllers/admin/runners_controller_spec.rb275spec/requests/api/graphql/mutations/merge_requests/set_locked_spec.rb276spec/controllers/jira_connect/subscriptions_controller_spec.rb277spec/requests/api/error_tracking/client_keys_spec.rb278spec/controllers/concerns/product_analytics_tracking_spec.rb279spec/requests/projects/google_cloud_controller_spec.rb280spec/requests/api/graphql/mutations/merge_requests/set_milestone_spec.rb281spec/requests/api/version_spec.rb282spec/controllers/google_api/authorizations_controller_spec.rb283spec/requests/api/graphql/mutations/boards/lists/destroy_spec.rb284spec/mailers/emails/admin_notification_spec.rb285spec/requests/api/graphql/mutations/design_management/move_spec.rb286spec/requests/api/graphql/ci/config_spec.rb287spec/controllers/root_controller_spec.rb288spec/controllers/projects/blame_controller_spec.rb289spec/requests/boards/lists_controller_spec.rb290spec/requests/api/graphql/project/work_item_types_spec.rb291spec/requests/api/graphql/mutations/alert_management/http_integration/create_spec.rb292spec/controllers/admin/dashboard_controller_spec.rb293spec/controllers/groups/settings/repository_controller_spec.rb294spec/mailers/abuse_report_mailer_spec.rb295spec/requests/api/ci/runner/runners_verify_post_spec.rb296spec/requests/api/graphql/ci/group_variables_spec.rb297spec/requests/jira_connect/installations_controller_spec.rb298spec/requests/api/graphql/current_user_todos_spec.rb299spec/requests/api/performance_bar_spec.rb300spec/requests/api/graphql/mutations/clusters/agents/delete_spec.rb301spec/requests/api/graphql/mutations/discussions/toggle_resolve_spec.rb302spec/controllers/projects/grafana_api_controller_spec.rb303spec/requests/api/bulk_imports_spec.rb304spec/requests/jira_connect/oauth_application_ids_controller_spec.rb305spec/controllers/projects/product_analytics_controller_spec.rb306spec/requests/api/ci/runner/runners_delete_spec.rb307spec/requests/api/graphql/mutations/incident_management/timeline_event/destroy_spec.rb308spec/requests/product_analytics/collector_app_spec.rb309spec/controllers/oauth/authorized_applications_controller_spec.rb310spec/requests/api/graphql/namespace/package_settings_spec.rb311spec/requests/api/graphql/user/group_member_query_spec.rb312spec/requests/api/container_registry_event_spec.rb313spec/controllers/profiles/keys_controller_spec.rb314spec/requests/projects/incident_management/pagerduty_incidents_spec.rb315spec/controllers/admin/plan_limits_controller_spec.rb316spec/controllers/oauth/tokens_controller_spec.rb317Filter specs:318Running specs:319Running all node tests without filter320spec/requests/git_http_spec.rb321spec/requests/api/repositories_spec.rb322spec/controllers/admin/application_settings_controller_spec.rb323spec/requests/api/issues/get_project_issues_spec.rb324spec/requests/api/files_spec.rb325spec/controllers/boards/issues_controller_spec.rb326spec/requests/api/issues/issues_spec.rb327spec/controllers/groups/milestones_controller_spec.rb328spec/requests/api/ci/jobs_spec.rb329spec/controllers/import/github_controller_spec.rb330spec/requests/api/deployments_spec.rb331spec/controllers/import/gitea_controller_spec.rb332spec/requests/openid_connect_spec.rb333spec/requests/api/terraform/state_version_spec.rb334spec/requests/api/pages/public_access_spec.rb335spec/requests/api/group_milestones_spec.rb336spec/controllers/projects/starrers_controller_spec.rb337spec/requests/health_controller_spec.rb338spec/controllers/admin/integrations_controller_spec.rb339spec/requests/api/graphql/mutations/notes/create/diff_note_spec.rb340spec/requests/api/graphql/packages/maven_spec.rb341spec/requests/api/features_spec.rb342spec/controllers/import/bitbucket_controller_spec.rb343spec/requests/api/resource_milestone_events_spec.rb344spec/controllers/projects/imports_controller_spec.rb345spec/requests/api/project_templates_spec.rb346spec/requests/api/ci/secure_files_spec.rb347spec/controllers/oauth/applications_controller_spec.rb348spec/controllers/projects/releases/evidences_controller_spec.rb349spec/requests/api/graphql/group/dependency_proxy_manifests_spec.rb350spec/controllers/projects/merge_requests/content_controller_spec.rb351spec/requests/import/gitlab_groups_controller_spec.rb352spec/requests/groups/crm/contacts_controller_spec.rb353spec/requests/lfs_locks_api_spec.rb354spec/requests/api/internal/kubernetes_spec.rb355spec/controllers/projects/analytics/cycle_analytics/stages_controller_spec.rb356spec/requests/api/graphql/project/issue_spec.rb357spec/requests/api/doorkeeper_access_spec.rb358spec/requests/api/graphql/group/dependency_proxy_blobs_spec.rb359spec/controllers/admin/runners_controller_spec.rb360spec/requests/api/graphql/mutations/merge_requests/set_locked_spec.rb361spec/controllers/jira_connect/subscriptions_controller_spec.rb362spec/requests/api/error_tracking/client_keys_spec.rb363spec/controllers/concerns/product_analytics_tracking_spec.rb364spec/requests/projects/google_cloud_controller_spec.rb365spec/requests/api/graphql/mutations/merge_requests/set_milestone_spec.rb366spec/requests/api/version_spec.rb367spec/controllers/google_api/authorizations_controller_spec.rb368spec/requests/api/graphql/mutations/boards/lists/destroy_spec.rb369spec/mailers/emails/admin_notification_spec.rb370spec/requests/api/graphql/mutations/design_management/move_spec.rb371spec/requests/api/graphql/ci/config_spec.rb372spec/controllers/root_controller_spec.rb373spec/controllers/projects/blame_controller_spec.rb374spec/requests/boards/lists_controller_spec.rb375spec/requests/api/graphql/project/work_item_types_spec.rb376spec/requests/api/graphql/mutations/alert_management/http_integration/create_spec.rb377spec/controllers/admin/dashboard_controller_spec.rb378spec/controllers/groups/settings/repository_controller_spec.rb379spec/mailers/abuse_report_mailer_spec.rb380spec/requests/api/ci/runner/runners_verify_post_spec.rb381spec/requests/api/graphql/ci/group_variables_spec.rb382spec/requests/jira_connect/installations_controller_spec.rb383spec/requests/api/graphql/current_user_todos_spec.rb384spec/requests/api/performance_bar_spec.rb385spec/requests/api/graphql/mutations/clusters/agents/delete_spec.rb386spec/requests/api/graphql/mutations/discussions/toggle_resolve_spec.rb387spec/controllers/projects/grafana_api_controller_spec.rb388spec/requests/api/bulk_imports_spec.rb389spec/requests/jira_connect/oauth_application_ids_controller_spec.rb390spec/controllers/projects/product_analytics_controller_spec.rbKnapsack report generator started!391DEPRECATION 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 call392/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 here393 (called from new_client at /builds/gitlab-org/gitlab/config/initializers/00_connection_logger.rb:21)394Run options: exclude {:quarantine=>true, :level=>"migration"}395Test environment set up in 0.676886198 seconds396Git HTTP requests397 User with no identities398 when the project doesn't exist399 when namespace doesn't exist400 behaves like pulls require Basic HTTP Authentication401 when no credentials are provided402 responds to downloads with status 401 Unauthorized (no project existence information leak)403 when only username is provided404 responds to downloads with status 401 Unauthorized405 when username and password are provided406 when authentication fails407 responds to downloads with status 401 Unauthorized408 when user is blocked409 responds to downloads with status 401 Unauthorized410 when authentication succeeds411 does not respond to downloads with status 401 Unauthorized412 behaves like pushes require Basic HTTP Authentication413 when no credentials are provided414 responds to uploads with status 401 Unauthorized (no project existence information leak)415 when only username is provided416 responds to uploads with status 401 Unauthorized417 when username and password are provided418 when authentication fails419 responds to uploads with status 401 Unauthorized420 when authentication succeeds421 does not respond to uploads with status 401 Unauthorized422 behaves like operations are not allowed with expired password423 when password is expired424 responds to downloads with status 401 Unauthorized425 responds to uploads with status 401 Unauthorized426 when authenticated427 rejects downloads and uploads with 404 Not Found428 when namespace exists429 when authenticated430 creates a new project under the existing namespace431 rejects push with 422 Unprocessable Entity when project is invalid432 when project name is missing433 does not redirect to the incorrect path434 behaves like project path without .git suffix435 GET info/refs436 when no params are added437 redirects to the .git suffix version438 when the upload-pack service is requested439 redirects to the .git suffix version440 when the receive-pack service is requested441 redirects to the .git suffix version442 when the params are anything else443 redirects to the sign-in page444 POST git-upload-pack445 fails to find a route446 POST git-receive-pack447 fails to find a route448 when requesting the Wiki449 when the project is public450 behaves like pushes require Basic HTTP Authentication451 when no credentials are provided452 responds to uploads with status 401 Unauthorized (no project existence information leak)453 when only username is provided454 responds to uploads with status 401 Unauthorized455 when username and password are provided456 when authentication fails457 responds to uploads with status 401 Unauthorized458 when authentication succeeds459 does not respond to uploads with status 401 Unauthorized460 when unauthenticated461 responds to pulls with the wiki's repo462 behaves like pulls are allowed463 allows pulls464 when authenticated465 and as a developer on the team466 but the repo is disabled467 behaves like pulls are allowed468 allows pulls469 behaves like pushes are allowed470 allows pushes471 and not on the team472 rejects pushes with 403 Forbidden473 behaves like pulls are allowed474 allows pulls475 when the project is private476 behaves like pulls require Basic HTTP Authentication477 when no credentials are provided478 responds to downloads with status 401 Unauthorized (no project existence information leak)479 when only username is provided480 responds to downloads with status 401 Unauthorized481 when username and password are provided482 when authentication fails483 responds to downloads with status 401 Unauthorized484 when user is blocked485 responds to downloads with status 401 Unauthorized486 when authentication succeeds487 does not respond to downloads with status 401 Unauthorized488 behaves like pushes require Basic HTTP Authentication489 when no credentials are provided490 responds to uploads with status 401 Unauthorized (no project existence information leak)491 when only username is provided492 responds to uploads with status 401 Unauthorized493 when username and password are provided494 when authentication fails495 responds to uploads with status 401 Unauthorized496 when authentication succeeds497 does not respond to uploads with status 401 Unauthorized498 behaves like operations are not allowed with expired password499 when password is expired500 responds to downloads with status 401 Unauthorized501 responds to uploads with status 401 Unauthorized502 when authenticated503 and as a developer on the team504 when user is using credentials with special characters505 with password with special characters506 allows clones507 but the repo is disabled508 allows clones509 pushes are allowed510 and not on the team511 rejects clones with 404 Not Found512 rejects pushes with 404 Not Found513 when the project exists514 when the project is public515 behaves like pushes require Basic HTTP Authentication516 when no credentials are provided517 responds to uploads with status 401 Unauthorized (no project existence information leak)518 when only username is provided519 responds to uploads with status 401 Unauthorized520 when username and password are provided521 when authentication fails522 responds to uploads with status 401 Unauthorized523 when authentication succeeds524 does not respond to uploads with status 401 Unauthorized525 when not authenticated526 behaves like pulls are allowed527 allows pulls528 when authenticated529 as a developer on the team530 behaves like pulls are allowed531 allows pulls532 behaves like pushes are allowed533 allows pushes534 but git-receive-pack over HTTP is disabled in config535 rejects pushes with 403 Forbidden536 but git-upload-pack over HTTP is disabled in config537 rejects pushes with 403 Forbidden538 but the service parameter is missing539 rejects clones with 403 Forbidden540 and not a member of the team541 rejects pushes with 403 Forbidden542 behaves like pulls are allowed543 allows pulls544 when merge requests are open that allow maintainer access545 behaves like pushes are allowed546 allows pushes547 but the service parameter is missing548 rejects clones with 401 Unauthorized549 when the request is not from gitlab-workhorse550 raises an exception551 when the repo is public552 but the repo is disabled553 behaves like pulls require Basic HTTP Authentication554 when no credentials are provided555 responds to downloads with status 401 Unauthorized (no project existence information leak)556 when only username is provided557 responds to downloads with status 401 Unauthorized558 when username and password are provided559 when authentication fails560 responds to downloads with status 401 Unauthorized561 when user is blocked562 responds to downloads with status 401 Unauthorized563 when authentication succeeds564 does not respond to downloads with status 401 Unauthorized565 behaves like pushes require Basic HTTP Authentication566 when no credentials are provided567 responds to uploads with status 401 Unauthorized (no project existence information leak)568 when only username is provided569 responds to uploads with status 401 Unauthorized570 when username and password are provided571 when authentication fails572 responds to uploads with status 401 Unauthorized573 when authentication succeeds574 does not respond to uploads with status 401 Unauthorized575 behaves like operations are not allowed with expired password576 when password is expired577 responds to downloads with status 401 Unauthorized578 responds to uploads with status 401 Unauthorized579 but the repo is enabled580 behaves like pulls are allowed581 allows pulls582 but only project members are allowed583 behaves like pulls require Basic HTTP Authentication584 when no credentials are provided585 responds to downloads with status 401 Unauthorized (no project existence information leak)586 when only username is provided587 responds to downloads with status 401 Unauthorized588 when username and password are provided589 when authentication fails590 responds to downloads with status 401 Unauthorized591 when user is blocked592 responds to downloads with status 401 Unauthorized593 when authentication succeeds594 does not respond to downloads with status 401 Unauthorized595 behaves like pushes require Basic HTTP Authentication596 when no credentials are provided597 responds to uploads with status 401 Unauthorized (no project existence information leak)598 when only username is provided599 responds to uploads with status 401 Unauthorized600 when username and password are provided601 when authentication fails602 responds to uploads with status 401 Unauthorized603 when authentication succeeds604 does not respond to uploads with status 401 Unauthorized605 behaves like operations are not allowed with expired password606 when password is expired607 responds to downloads with status 401 Unauthorized608 responds to uploads with status 401 Unauthorized609 and the user requests a redirected path610 downloads get status 200 for redirects611 when the project is private612 behaves like pulls require Basic HTTP Authentication613 when no credentials are provided614 responds to downloads with status 401 Unauthorized (no project existence information leak)615 when only username is provided616 responds to downloads with status 401 Unauthorized617 when username and password are provided618 when authentication fails619 responds to downloads with status 401 Unauthorized620 when user is blocked621 responds to downloads with status 401 Unauthorized622 when authentication succeeds623 does not respond to downloads with status 401 Unauthorized624 behaves like pushes require Basic HTTP Authentication625 when no credentials are provided626 responds to uploads with status 401 Unauthorized (no project existence information leak)627 when only username is provided628 responds to uploads with status 401 Unauthorized629 when username and password are provided630 when authentication fails631 responds to uploads with status 401 Unauthorized632 when authentication succeeds633 does not respond to uploads with status 401 Unauthorized634 behaves like operations are not allowed with expired password635 when password is expired636 responds to downloads with status 401 Unauthorized637 responds to uploads with status 401 Unauthorized638 when username and password are provided639 when authentication fails640 when the user is IP banned641 responds with status 403642 when authentication succeeds643 when the user has access to the project644 when the user is blocked645 rejects pulls with 401 Unauthorized646 rejects pulls with 401 Unauthorized for unknown projects (no project existence information leak)647 when the user isn't blocked648 resets the IP in Rack Attack on download649 resets the IP in Rack Attack on upload650 updates the user last activity651 when an oauth token is provided652 behaves like pulls are allowed653 allows pulls654 behaves like pushes are allowed655 allows pushes656 when password is expired657 responds to downloads with status 401 unauthorized658 when user has 2FA enabled659 when username and password are provided660 rejects pulls with personal access token error message661 rejects the push attempt with personal access token error message662 when username and personal access token are provided663 rejects the push attempt for read_repository scope664 accepts the push attempt for write_repository scope665 accepts the pull attempt for read_repository scope666 accepts the pull attempt for api scope667 accepts the push attempt for api scope668 behaves like pulls are allowed669 allows pulls670 behaves like pushes are allowed671 allows pushes672 when password is expired673 responds to uploads with status 401 unauthorized674 when token is impersonated675 when impersonation is off676 responds to uploads with status 401 unauthorized677 when impersonation is on678 responds to uploads with status 200679 when internal auth is disabled680 rejects pulls with personal access token error message681 rejects pushes with personal access token error message682 when LDAP is configured683 does not display the personal access token error message684 when blank password attempts follow a valid login685 repeated attempts followed by successful attempt686 and the user requests a redirected path687 downloads get status 200688 uploads get status 404 with "project was moved" message689 when the user doesn't have access to the project690 pulls get status 404691 uploads get status 404692 when the user is admin693 when admin mode is enabled694 behaves like pulls are allowed695 allows pulls696 behaves like pushes are allowed697 allows pushes698 when admin mode is disabled699 behaves like pulls are allowed700 allows pulls701 behaves like pushes are allowed702 allows pushes703 when a gitlab ci token is provided704 when build created by system is authenticated705 rejects pushes with 403 Forbidden706 rejects pulls for other project with 404 Not Found707 behaves like pulls are allowed708 allows pulls709 and build created by710 administrator711 when admin mode is enabled712 downloads from other project get status 403713 behaves like can download code only714 rejects pushes with 403 Forbidden715 behaves like pulls are allowed716 allows pulls717 when the repo does not exist718 rejects pulls with 404 Not Found719 when admin mode is disabled720 downloads from other project get status 403721 behaves like can download code only722 rejects pushes with 403 Forbidden723 behaves like pulls are allowed724 allows pulls725 when the repo does not exist726 rejects pulls with 404 Not Found727 regular user728 downloads from other project get status 404729 behaves like can download code only730 rejects pushes with 403 Forbidden731 behaves like pulls are allowed732 allows pulls733 when the repo does not exist734 rejects pulls with 404 Not Found735 when users password is expired736 rejects pulls with 401 unauthorized737 behaves like project path without .git suffix738 GET info/refs739 when no params are added740 redirects to the .git suffix version741 when the upload-pack service is requested742 redirects to the .git suffix version743 when the receive-pack service is requested744 redirects to the .git suffix version745 when the params are anything else746 redirects to the sign-in page747 POST git-upload-pack748 fails to find a route749 POST git-receive-pack750 fails to find a route751 retrieving an info/refs file752 when the file exists753 returns the file754 when the file does not exist755 redirects756 when the project path ends with a dot757 when the project is public758 behaves like pushes require Basic HTTP Authentication759 when no credentials are provided760 responds to uploads with status 401 Unauthorized (no project existence information leak)761 when only username is provided762 responds to uploads with status 401 Unauthorized763 when username and password are provided764 when authentication fails765 responds to uploads with status 401 Unauthorized766 when authentication succeeds767 does not respond to uploads with status 401 Unauthorized768 when not authenticated769 behaves like pulls are allowed770 allows pulls771 when authenticated772 as a developer on the team773 behaves like pulls are allowed774 allows pulls775 behaves like pushes are allowed776 allows pushes777 but git-receive-pack over HTTP is disabled in config778 rejects pushes with 403 Forbidden779 but git-upload-pack over HTTP is disabled in config780 rejects pushes with 403 Forbidden781 but the service parameter is missing782 rejects clones with 403 Forbidden783 and not a member of the team784 rejects pushes with 403 Forbidden785 behaves like pulls are allowed786 allows pulls787 when merge requests are open that allow maintainer access788 behaves like pushes are allowed789 allows pushes790 but the service parameter is missing791 rejects clones with 401 Unauthorized792 when the request is not from gitlab-workhorse793 raises an exception794 when the repo is public795 but the repo is disabled796 behaves like pulls require Basic HTTP Authentication797 when no credentials are provided798 responds to downloads with status 401 Unauthorized (no project existence information leak)799 when only username is provided800 responds to downloads with status 401 Unauthorized801 when username and password are provided802 when authentication fails803 responds to downloads with status 401 Unauthorized804 when user is blocked805 responds to downloads with status 401 Unauthorized806 when authentication succeeds807 does not respond to downloads with status 401 Unauthorized808 behaves like pushes require Basic HTTP Authentication809 when no credentials are provided810 responds to uploads with status 401 Unauthorized (no project existence information leak)811 when only username is provided812 responds to uploads with status 401 Unauthorized813 when username and password are provided814 when authentication fails815 responds to uploads with status 401 Unauthorized816 when authentication succeeds817 does not respond to uploads with status 401 Unauthorized818 behaves like operations are not allowed with expired password819 when password is expired820 responds to downloads with status 401 Unauthorized821 responds to uploads with status 401 Unauthorized822 but the repo is enabled823 behaves like pulls are allowed824 allows pulls825 but only project members are allowed826 behaves like pulls require Basic HTTP Authentication827 when no credentials are provided828 responds to downloads with status 401 Unauthorized (no project existence information leak)829 when only username is provided830 responds to downloads with status 401 Unauthorized831 when username and password are provided832 when authentication fails833 responds to downloads with status 401 Unauthorized834 when user is blocked835 responds to downloads with status 401 Unauthorized836 when authentication succeeds837 does not respond to downloads with status 401 Unauthorized838 behaves like pushes require Basic HTTP Authentication839 when no credentials are provided840 responds to uploads with status 401 Unauthorized (no project existence information leak)841 when only username is provided842 responds to uploads with status 401 Unauthorized843 when username and password are provided844 when authentication fails845 responds to uploads with status 401 Unauthorized846 when authentication succeeds847 does not respond to uploads with status 401 Unauthorized848 behaves like operations are not allowed with expired password849 when password is expired850 responds to downloads with status 401 Unauthorized851 responds to uploads with status 401 Unauthorized852 and the user requests a redirected path853 downloads get status 200 for redirects854 when the project is private855 behaves like pulls require Basic HTTP Authentication856 when no credentials are provided857 responds to downloads with status 401 Unauthorized (no project existence information leak)858 when only username is provided859 responds to downloads with status 401 Unauthorized860 when username and password are provided861 when authentication fails862 responds to downloads with status 401 Unauthorized863 when user is blocked864 responds to downloads with status 401 Unauthorized865 when authentication succeeds866 does not respond to downloads with status 401 Unauthorized867 behaves like pushes require Basic HTTP Authentication868 when no credentials are provided869 responds to uploads with status 401 Unauthorized (no project existence information leak)870 when only username is provided871 responds to uploads with status 401 Unauthorized872 when username and password are provided873 when authentication fails874 responds to uploads with status 401 Unauthorized875 when authentication succeeds876 does not respond to uploads with status 401 Unauthorized877 behaves like operations are not allowed with expired password878 when password is expired879 responds to downloads with status 401 Unauthorized880 responds to uploads with status 401 Unauthorized881 when username and password are provided882 when authentication fails883 when the user is IP banned884 responds with status 403885 when authentication succeeds886 when the user has access to the project887 when the user is blocked888 rejects pulls with 401 Unauthorized889 rejects pulls with 401 Unauthorized for unknown projects (no project existence information leak)890 when the user isn't blocked891 resets the IP in Rack Attack on download892 resets the IP in Rack Attack on upload893 updates the user last activity894 when an oauth token is provided895 behaves like pulls are allowed896 allows pulls897 behaves like pushes are allowed898 allows pushes899 when password is expired900 responds to downloads with status 401 unauthorized901 when user has 2FA enabled902 when username and password are provided903 rejects pulls with personal access token error message904 rejects the push attempt with personal access token error message905 when username and personal access token are provided906 rejects the push attempt for read_repository scope907 accepts the push attempt for write_repository scope908 accepts the pull attempt for read_repository scope909 accepts the pull attempt for api scope910 accepts the push attempt for api scope911 behaves like pulls are allowed912 allows pulls913 behaves like pushes are allowed914 allows pushes915 when password is expired916 responds to uploads with status 401 unauthorized917 when internal auth is disabled918 rejects pulls with personal access token error message919 rejects pushes with personal access token error message920 when LDAP is configured921 does not display the personal access token error message922 when blank password attempts follow a valid login923 repeated attempts followed by successful attempt924 and the user requests a redirected path925 downloads get status 200926 uploads get status 404 with "project was moved" message927 when the user doesn't have access to the project928 pulls get status 404929 uploads get status 404930 when a gitlab ci token is provided931 when build created by system is authenticated932 rejects pushes with 403 Forbidden933 rejects pulls for other project with 404 Not Found934 behaves like pulls are allowed935 allows pulls936 and build created by937 administrator938 when admin mode is enabled939 downloads from other project get status 403940 behaves like can download code only941 rejects pushes with 403 Forbidden942 behaves like pulls are allowed943 allows pulls944 when the repo does not exist945 rejects pulls with 404 Not Found946 when admin mode is disabled947 downloads from other project get status 403948 behaves like can download code only949 rejects pushes with 403 Forbidden950 behaves like pulls are allowed951 allows pulls952 when the repo does not exist953 rejects pulls with 404 Not Found954 regular user955 downloads from other project get status 404956 behaves like can download code only957 rejects pushes with 403 Forbidden958 behaves like pulls are allowed959 allows pulls960 when the repo does not exist961 rejects pulls with 404 Not Found962 when users password is expired963 rejects pulls with 401 unauthorized964 behaves like project path without .git suffix965 GET info/refs966 when no params are added967 redirects to the .git suffix version968 when the upload-pack service is requested969 redirects to the .git suffix version970 when the receive-pack service is requested971 redirects to the .git suffix version972 when the params are anything else973 redirects to the sign-in page974 POST git-upload-pack975 fails to find a route976 POST git-receive-pack977 fails to find a route978 retrieving an info/refs file979 when the file exists980 returns the file981 when the file does not exist982 redirects983 when the Wiki path ends with a dot984 when the project is public985 behaves like pushes require Basic HTTP Authentication986 when no credentials are provided987 responds to uploads with status 401 Unauthorized (no project existence information leak)988 when only username is provided989 responds to uploads with status 401 Unauthorized990 when username and password are provided991 when authentication fails992 responds to uploads with status 401 Unauthorized993 when authentication succeeds994 does not respond to uploads with status 401 Unauthorized995 when unauthenticated996 responds to pulls with the wiki's repo997 behaves like pulls are allowed998 allows pulls999 when authenticated1000 and as a developer on the team1001 but the repo is disabled1002 behaves like pulls are allowed1003 allows pulls1004 behaves like pushes are allowed1005 allows pushes1006 and not on the team1007 rejects pushes with 403 Forbidden1008 behaves like pulls are allowed1009 allows pulls1010 when the project is private1011 behaves like pulls require Basic HTTP Authentication1012 when no credentials are provided1013 responds to downloads with status 401 Unauthorized (no project existence information leak)1014 when only username is provided1015 responds to downloads with status 401 Unauthorized1016 when username and password are provided1017 when authentication fails1018 responds to downloads with status 401 Unauthorized1019 when user is blocked1020 responds to downloads with status 401 Unauthorized1021 when authentication succeeds1022 does not respond to downloads with status 401 Unauthorized1023 behaves like pushes require Basic HTTP Authentication1024 when no credentials are provided1025 responds to uploads with status 401 Unauthorized (no project existence information leak)1026 when only username is provided1027 responds to uploads with status 401 Unauthorized1028 when username and password are provided1029 when authentication fails1030 responds to uploads with status 401 Unauthorized1031 when authentication succeeds1032 does not respond to uploads with status 401 Unauthorized1033 behaves like operations are not allowed with expired password1034 when password is expired1035 responds to downloads with status 401 Unauthorized1036 responds to uploads with status 401 Unauthorized1037 when authenticated1038 and as a developer on the team1039 when user is using credentials with special characters1040 with password with special characters1041 allows clones1042 but the repo is disabled1043 allows clones1044 pushes are allowed1045 and not on the team1046 rejects clones with 404 Not Found1047 rejects pushes with 404 Not Found1048 User with LDAP identity1049 behaves like pulls require Basic HTTP Authentication1050 when no credentials are provided1051 responds to downloads with status 401 Unauthorized (no project existence information leak)1052 when only username is provided1053 responds to downloads with status 401 Unauthorized1054 when username and password are provided1055 when authentication fails1056 responds to downloads with status 401 Unauthorized1057 when user is blocked1058 responds to downloads with status 401 Unauthorized1059 when authentication succeeds1060 does not respond to downloads with status 401 Unauthorized1061 behaves like pushes require Basic HTTP Authentication1062 when no credentials are provided1063 responds to uploads with status 401 Unauthorized (no project existence information leak)1064 when only username is provided1065 responds to uploads with status 401 Unauthorized1066 when username and password are provided1067 when authentication fails1068 responds to uploads with status 401 Unauthorized1069 when authentication succeeds1070 does not respond to uploads with status 401 Unauthorized1071 when authentication succeeds1072 when the project doesn't exist1073 responds with status 404 Not Found1074 when the project exists1075 and the user is on the team1076 responds with status 2001077 behaves like pulls are allowed1078 allows pulls1079 behaves like pushes are allowed1080 allows pushes1081 when password is expired1082 responds to downloads with status 2001083 responds to uploads with status 2001084 when terms are enforced1085 blocks git access when the user did not accept terms1086 when the user accepted the terms1087 allows clones1088 behaves like pulls are allowed1089 allows pulls1090 behaves like pushes are allowed1091 allows pushes1092 from CI1093 behaves like pulls are allowed1094 allows pulls1095API::Repositories1096 GET /projects/:id/repository/tree1097 when unauthenticated and project is public1098 behaves like repository tree1099 returns the repository tree1100 when ref does not exist1101 behaves like 404 response1102 returns 4041103 when repository is disabled1104 behaves like 403 response1105 returns 4031106 with recursive=11107 returns recursive project paths tree1108 when repository is disabled1109 behaves like 403 response1110 returns 4031111 when ref does not exist1112 behaves like 404 response1113 returns 4041114 keyset pagination mode1115 paginates using keysets1116 when unauthenticated and project is private1117 behaves like 404 response1118 returns 4041119 when authenticated as a developer1120 behaves like repository tree1121 returns the repository tree1122 when ref does not exist1123 behaves like 404 response1124 returns 4041125 when repository is disabled1126 behaves like 403 response1127 returns 4031128 with recursive=11129 returns recursive project paths tree1130 when repository is disabled1131 behaves like 403 response1132 returns 4031133 when ref does not exist1134 behaves like 404 response1135 returns 4041136 keyset pagination mode1137 paginates using keysets1138 when authenticated as a guest1139 behaves like 403 response1140 returns 4031141 GET /projects/:id/repository/blobs/:sha1142 when unauthenticated and project is public1143 behaves like repository blob1144 returns blob attributes as json1145 when sha does not exist1146 behaves like 404 response1147 returns 4041148 when repository is disabled1149 behaves like 403 response1150 returns 4031151 when unauthenticated and project is private1152 behaves like 404 response1153 returns 4041154 when authenticated as a developer1155 behaves like repository blob1156 returns blob attributes as json1157 when sha does not exist1158 behaves like 404 response1159 returns 4041160 when repository is disabled1161 behaves like 403 response1162 returns 4031163 when authenticated as a guest1164 behaves like 403 response1165 returns 4031166 GET /projects/:id/repository/blobs/:sha/raw1167 when unauthenticated and project is public1168 behaves like repository raw blob1169 returns the repository raw blob1170 sets inline content disposition by default1171 defines an uncached header response1172 when sha does not exist1173 behaves like 404 response1174 returns 4041175 when repository is disabled1176 behaves like 403 response1177 returns 4031178 when unauthenticated and project is private1179 behaves like 404 response1180 returns 4041181 when authenticated as a developer1182 behaves like repository raw blob1183 returns the repository raw blob1184 sets inline content disposition by default1185 defines an uncached header response1186 when sha does not exist1187 behaves like 404 response1188 returns 4041189 when repository is disabled1190 behaves like 403 response1191 returns 4031192 when authenticated as a guest1193 behaves like 403 response1194 returns 4031195 GET /projects/:id/repository/archive(.:format)?:sha1196 when unauthenticated and project is public1197 behaves like repository archive1198 returns the repository archive1199 returns the repository archive archive.zip1200 returns the repository archive archive.tar.bz21201 returns only a part of the repository with path set1202 rate limits user when thresholds hit1203 when sha does not exist1204 behaves like 404 response1205 returns 4041206 when hotlinking detection is enabled1207 behaves like hotlink interceptor1208 DDOS prevention1209 hotlinked as media1210 response_status: :ok, accept_header: "*/*"1211 renders the response1212 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"1213 renders the response1214 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"1215 renders the response1216 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"1217 renders the response1218 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"1219 renders the response1220 response_status: :ok, accept_header: "image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/msword, */*"1221 renders the response1222 response_status: :ok, accept_header: "text/html, application/xhtml+xml, image/jxr, */*"1223 renders the response1224 response_status: :ok, accept_header: "text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1"1225 renders the response1226 response_status: :not_acceptable, accept_header: "image/webp,*/*"1227 renders the response1228 response_status: :not_acceptable, accept_header: "image/png,image/*;q=0.8,*/*;q=0.5"1229 renders the response1230 response_status: :not_acceptable, accept_header: "image/webp,image/apng,image/*,*/*;q=0.8"1231 renders the response1232 response_status: :not_acceptable, accept_header: "image/png,image/svg+xml,image/*;q=0.8, */*;q=0.5"1233 renders the response1234 response_status: :not_acceptable, accept_header: "video/webm,video/ogg,video/*;q=0.9,application/ogg;q=0.7,audio/*;q=0.6,*/*;q=0.5"1235 renders the response1236 response_status: :not_acceptable, accept_header: "audio/webm,audio/ogg,audio/wav,audio/*;q=0.9,application/ogg;q=0.7,video/*;q=0.6,*/*;q=0.5"1237 renders the response1238 response_status: :not_acceptable, accept_header: "text/css,*/*;q=0.1"1239 renders the response1240 response_status: :not_acceptable, accept_header: "text/css"1241 renders the response1242 response_status: :not_acceptable, accept_header: "text/css,*/*;q=0.1"1243 renders the response1244 hotlinked as a script1245 response_status: :ok, fetch_mode: "navigate"1246 renders the response1247 response_status: :ok, fetch_mode: "nested-navigate"1248 renders the response1249 response_status: :ok, fetch_mode: "same-origin"1250 renders the response1251 response_status: :not_acceptable, fetch_mode: "cors"1252 renders the response1253 response_status: :not_acceptable, fetch_mode: "no-cors"1254 renders the response1255 response_status: :not_acceptable, fetch_mode: "websocket"1256 renders the response1257 when unauthenticated and project path has dots1258 behaves like repository archive1259 returns the repository archive1260 returns the repository archive archive.zip1261 returns the repository archive archive.tar.bz21262 returns only a part of the repository with path set1263 rate limits user when thresholds hit1264 when sha does not exist1265 behaves like 404 response1266 returns 4041267 when hotlinking detection is enabled1268 behaves like hotlink interceptor1269 DDOS prevention1270 hotlinked as media1271 response_status: :ok, accept_header: "*/*"1272 renders the response1273 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"1274 renders the response1275 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"1276 renders the response1277 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"1278 renders the response1279 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"1280 renders the response1281 response_status: :ok, accept_header: "image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/msword, */*"1282 renders the response1283 response_status: :ok, accept_header: "text/html, application/xhtml+xml, image/jxr, */*"1284 renders the response1285 response_status: :ok, accept_header: "text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1"1286 renders the response1287 response_status: :not_acceptable, accept_header: "image/webp,*/*"1288 renders the response1289 response_status: :not_acceptable, accept_header: "image/png,image/*;q=0.8,*/*;q=0.5"1290 renders the response1291 response_status: :not_acceptable, accept_header: "image/webp,image/apng,image/*,*/*;q=0.8"1292 renders the response1293 response_status: :not_acceptable, accept_header: "image/png,image/svg+xml,image/*;q=0.8, */*;q=0.5"1294 renders the response1295 response_status: :not_acceptable, accept_header: "video/webm,video/ogg,video/*;q=0.9,application/ogg;q=0.7,audio/*;q=0.6,*/*;q=0.5"1296 renders the response1297 response_status: :not_acceptable, accept_header: "audio/webm,audio/ogg,audio/wav,audio/*;q=0.9,application/ogg;q=0.7,video/*;q=0.6,*/*;q=0.5"1298 renders the response1299 response_status: :not_acceptable, accept_header: "text/css,*/*;q=0.1"1300 renders the response1301 response_status: :not_acceptable, accept_header: "text/css"1302 renders the response1303 response_status: :not_acceptable, accept_header: "text/css,*/*;q=0.1"1304 renders the response1305 hotlinked as a script1306 response_status: :ok, fetch_mode: "navigate"1307 renders the response1308 response_status: :ok, fetch_mode: "nested-navigate"1309 renders the response1310 response_status: :ok, fetch_mode: "same-origin"1311 renders the response1312 response_status: :not_acceptable, fetch_mode: "cors"1313 renders the response1314 response_status: :not_acceptable, fetch_mode: "no-cors"1315 renders the response1316 response_status: :not_acceptable, fetch_mode: "websocket"1317 renders the response1318 when unauthenticated and project is private1319 behaves like 404 response1320 returns 4041321 when authenticated as a developer1322 behaves like repository archive1323 returns the repository archive1324 returns the repository archive archive.zip1325 returns the repository archive archive.tar.bz21326 returns only a part of the repository with path set1327 rate limits user when thresholds hit1328 when sha does not exist1329 behaves like 404 response1330 returns 4041331 when hotlinking detection is enabled1332 behaves like hotlink interceptor1333 DDOS prevention1334 hotlinked as media1335 response_status: :ok, accept_header: "*/*"1336 renders the response1337 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"1338 renders the response1339 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"1340 renders the response1341 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"1342 renders the response1343 response_status: :ok, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"1344 renders the response1345 response_status: :ok, accept_header: "image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/msword, */*"1346 renders the response1347 response_status: :ok, accept_header: "text/html, application/xhtml+xml, image/jxr, */*"1348 renders the response1349 response_status: :ok, accept_header: "text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1"1350 renders the response1351 response_status: :not_acceptable, accept_header: "image/webp,*/*"1352 renders the response1353 response_status: :not_acceptable, accept_header: "image/png,image/*;q=0.8,*/*;q=0.5"1354 renders the response1355 response_status: :not_acceptable, accept_header: "image/webp,image/apng,image/*,*/*;q=0.8"1356 renders the response1357 response_status: :not_acceptable, accept_header: "image/png,image/svg+xml,image/*;q=0.8, */*;q=0.5"1358 renders the response1359 response_status: :not_acceptable, accept_header: "video/webm,video/ogg,video/*;q=0.9,application/ogg;q=0.7,audio/*;q=0.6,*/*;q=0.5"1360 renders the response1361 response_status: :not_acceptable, accept_header: "audio/webm,audio/ogg,audio/wav,audio/*;q=0.9,application/ogg;q=0.7,video/*;q=0.6,*/*;q=0.5"1362 renders the response1363 response_status: :not_acceptable, accept_header: "text/css,*/*;q=0.1"1364 renders the response1365 response_status: :not_acceptable, accept_header: "text/css"1366 renders the response1367 response_status: :not_acceptable, accept_header: "text/css,*/*;q=0.1"1368 renders the response1369 hotlinked as a script1370 response_status: :ok, fetch_mode: "navigate"1371 renders the response1372 response_status: :ok, fetch_mode: "nested-navigate"1373 renders the response1374 response_status: :ok, fetch_mode: "same-origin"1375 renders the response1376 response_status: :not_acceptable, fetch_mode: "cors"1377 renders the response1378 response_status: :not_acceptable, fetch_mode: "no-cors"1379 renders the response1380 response_status: :not_acceptable, fetch_mode: "websocket"1381 renders the response1382 when authenticated as a guest1383 behaves like 403 response1384 returns 4031385 GET /projects/:id/repository/compare1386 when unauthenticated and project is public1387 behaves like repository compare1388 compares branches1389 compares branches with explicit merge-base mode1390 compares branches with explicit straight mode1391 compares tags1392 compares commits1393 compares commits in reverse order1394 compare commits between different projects with non-forked relation1395 compare commits between different projects1396 compares same refs1397 returns an empty string when the diff overflows1398 returns a 404 when from ref is unknown1399 returns a 404 when to ref is unknown1400 returns a newly created commit1401 when unauthenticated and project is private1402 behaves like 404 response1403 returns 4041404 when authenticated as a developer1405 behaves like repository compare1406 compares branches1407 compares branches with explicit merge-base mode1408 compares branches with explicit straight mode1409 compares tags1410 compares commits1411 compares commits in reverse order1412 compare commits between different projects with non-forked relation1413 compare commits between different projects1414 compares same refs1415 returns an empty string when the diff overflows1416 returns a 404 when from ref is unknown1417 returns a 404 when to ref is unknown1418 returns a newly created commit1419 when authenticated as a guest1420 behaves like 403 response1421 returns 4031422 GET /projects/:id/repository/contributors1423 when unauthenticated and project is public1424 behaves like repository contributors1425 returns valid data1426 using sorting1427 by commits desc1428 returns the repository contribuors sorted by commits desc1429 by name desc1430 returns the repository contribuors sorted by name asc case insensitive1431 when unauthenticated and project is private1432 behaves like 404 response1433 returns 4041434 when authenticated as a developer1435 behaves like repository contributors1436 returns valid data1437 using sorting1438 by commits desc1439 returns the repository contribuors sorted by commits desc1440 by name desc1441 returns the repository contribuors sorted by name asc case insensitive1442 when authenticated as a guest1443 behaves like 403 response1444 returns 4031445 Links header contains working URLs when no `order_by` nor `sort` is given1446 returns `Link` header that includes URLs with default value for `order_by` & `sort`1447 GET :id/repository/merge_base1448 when unauthenticated and project is public1449 behaves like merge base1450 returns the common ancestor1451 when unauthenticated and project is private1452 behaves like 404 response1453 returns 4041454 when authenticated as a developer1455 behaves like merge base1456 returns the common ancestor1457 when authenticated as a guest1458 behaves like 403 response1459 returns 4031460 when passing refs that do not exist1461 behaves like 400 response1462 returns 4001463 when passing refs that do not have a merge base1464 behaves like 404 response1465 returns 4041466 when not enough refs are passed1467 renders a bad request error1468 GET /projects/:id/repository/changelog1469 generates the changelog for a version1470 supports leaving out the from and to attribute1471 when previous tag version does not exist1472 behaves like 422 response1473 returns 4221474 POST /projects/:id/repository/changelog1475 generates the changelog for a version1476 supports leaving out the from and to attribute1477 produces an error when generating the changelog fails1478Admin::ApplicationSettingsController1479 GET #integrations1480 when GitLab.com1481 returns 4041482 when not GitLab.com1483 renders correct template1484 GET #usage_data with no access1485 returns 4041486 GET #usage_data1487 returns HTML data1488/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_MATCH1489/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 here1490 returns JSON data1491 when there are recent ServicePing reports1492 attempts to use prerecorded data1493 when there are NO recent ServicePing reports1494/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_MATCH1495/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 here1496 calculates data on the fly1497 usage data counter1498/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_MATCH1499/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 here1500 incremented when json generated1501/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_MATCH1502/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 here1503 not incremented when html format requested1504 PUT #update1505 updates the require_admin_approval_after_user_signup setting1506 updates the password_authentication_enabled_for_git setting1507 updates the default_project_visibility for string value1508 update the restricted levels for string values1509 updates the restricted_visibility_levels when empty array is passed1510 updates the receive_max_input_size setting1511 updates the default_project_creation for string value1512 updates minimum_password_length setting1513 updates repository_storages_weighted setting1514 updates kroki_formats setting1515 updates default_branch_name setting1516 updates admin_mode setting1517 updates valid_runner_registrars setting1518 personal access token prefix settings1519 with valid prefix1520 updates personal_access_token_prefix setting1521 with blank prefix1522 updates personal_access_token_prefix setting1523 with too long prefix1524 does not update personal_access_token_prefix setting1525 with invalid characters prefix1526 does not update personal_access_token_prefix setting1527 external policy classification settings1528 updates settings when the feature is available1529 verify panel actions1530 behaves like renders correct panels1531 renders correct action on error1532 redirects to same panel on success1533 behaves like renders correct panels1534 renders correct action on error1535 redirects to same panel on success1536 behaves like renders correct panels1537 renders correct action on error1538 redirects to same panel on success1539 behaves like renders correct panels1540 renders correct action on error1541 redirects to same panel on success1542 behaves like renders correct panels1543 renders correct action on error1544 redirects to same panel on success1545 behaves like renders correct panels1546 renders correct action on error1547 redirects to same panel on success1548 behaves like renders correct panels1549 renders correct action on error1550 redirects to same panel on success1551 EKS integration1552 updates EKS settings1553 secret access key is blank1554 does not update the secret key1555 user_email_lookup_limit aliasing1556 when search_rate_limit is specified1557 updates search_rate_limit with correct value1558 when search_rate_limit is not specified1559 applies user_email_lookup_limit value to search_rate_limit1560 pipeline creation rate limiting1561 updates pipeline_limit_per_project_user_sha setting1562 PUT #reset_registration_token1563 resets runner registration token1564 redirects the user to admin runners page1565 GET #lets_encrypt_terms_of_service1566 redirects the user to the terms of service page1567 GET #service_usage_data1568 assigns truthy value if there are recent ServicePing reports in database1569 assigns truthy value if there are recent ServicePing reports in cache1570 assigns falsey value if there are NO recent ServicePing reports1571API::Issues1572 GET /projects/:id/issues1573 avoids N+1 queries1574 returns 404 when project does not exist1575 returns 404 on private projects for other users1576 returns no issues when user has access to project but not issues1577 returns project issues without confidential issues for non project members1578 returns project issues without confidential issues for project members with guest role1579 returns project confidential issues for author1580 returns only confidential issues1581 returns only public issues1582 returns project confidential issues for assignee1583 returns project issues with confidential issues for project members1584 returns project confidential issues for admin1585 returns an array of labeled project issues1586 returns an array of labeled project issues with labels param as array1587 returns issues matching given search string for title1588 returns issues matching given search string for description1589 returns an array of issues found by iids1590 returns an empty array if iid does not exist1591 returns an empty array if not all labels matches1592 returns an array of project issues with any label1593 returns an array of project issues with any label with labels param as array1594 returns an array of project issues with no label1595 returns an array of project issues with no label with labels param as array1596 returns an empty array if no project issue matches labels1597 returns an empty array if no issue matches milestone1598 returns an empty array if milestone does not exist1599 returns an array of issues in given milestone1600 returns an array of issues matching state in milestone1601 returns an array of issues with no milestone1602 returns an array of issues with any milestone1603 sorts ascending when requested1604 sorts by updated_at descending when requested1605 sorts by updated_at ascending when requested1606 exposes known attributes1607 when unauthenticated1608 returns public project issues1609 issues_statistics1610 no state is treated as all state1611 behaves like project issues statistics1612 returns project issues statistics1613 statistics when all state is passed1614 behaves like project issues statistics1615 returns project issues statistics1616 closed state is treated as all state1617 behaves like project issues statistics1618 returns project issues statistics1619 opened state is treated as all state1620 behaves like project issues statistics1621 returns project issues statistics1622 when filtering by milestone and no state treated as all state1623 behaves like project issues statistics1624 returns project issues statistics1625 when filtering by milestone and all state1626 behaves like project issues statistics1627 returns project issues statistics1628 when filtering by milestone and closed state treated as all state1629 behaves like project issues statistics1630 returns project issues statistics1631 when filtering by milestone and opened state treated as all state1632 behaves like project issues statistics1633 returns project issues statistics1634 sort does not affect statistics1635 behaves like project issues statistics1636 returns project issues statistics1637 behaves like accessible merge requests count1638 returns anonymous accessible merge requests count1639 returns guest accessible merge requests count1640 returns reporter accessible merge requests count1641 returns admin accessible merge requests count1642 with labeled issues1643 behaves like labeled issues with labels and label_name params1644 array of labeled issues when all labels match1645 behaves like returns label names1646 returns label names1647 array of labeled issues when all labels match with labels param as array1648 behaves like returns label names1649 returns label names1650 negation1651 array of labeled issues when all labels match with negation1652 behaves like returns negated label names1653 returns label names1654 array of labeled issues when all labels match with negation with label params as array1655 behaves like returns negated label names1656 returns label names1657 when with_labels_details provided1658 array of labeled issues when all labels match1659 behaves like returns basic label entity1660 returns basic label entity1661 array of labeled issues when all labels match with labels param as array1662 behaves like returns basic label entity1663 returns basic label entity1664 with_labels_details1665 avoids N+1 queries1666 without sort params1667 sorts by created_at descending by default1668 with 2 issues with same created_at1669 page breaks first page correctly1670 page breaks second page correctly1671 issues_statistics1672 no state is treated as all state1673 behaves like project issues statistics1674 returns project issues statistics1675 statistics when all state is passed1676 behaves like project issues statistics1677 returns project issues statistics1678 closed state is treated as all state1679 behaves like project issues statistics1680 returns project issues statistics1681 opened state is treated as all state1682 behaves like project issues statistics1683 returns project issues statistics1684 when filtering by milestone and no state treated as all state1685 behaves like project issues statistics1686 returns project issues statistics1687 when filtering by milestone and all state1688 behaves like project issues statistics1689 returns project issues statistics1690 when filtering by milestone and closed state treated as all state1691 behaves like project issues statistics1692 returns project issues statistics1693 when filtering by milestone and opened state treated as all state1694 behaves like project issues statistics1695 returns project issues statistics1696 sort does not affect statistics1697 behaves like project issues statistics1698 returns project issues statistics1699 filtering by assignee_username1700 returns issues by assignee_username1701 returns issues by assignee_username as string1702 returns error when multiple assignees are passed1703 returns error when assignee_username and assignee_id are passed together1704 GET /projects/:id/issues/:issue_iid1705 exposes known attributes1706 exposes the closed_at attribute1707 returns a project issue by internal id1708 returns 404 if issue id not found1709 returns 404 if the issue ID is used1710 when unauthenticated1711 returns public issues1712 moved_to_id1713 returns null when not moved1714 returns issue id when moved1715 links exposure1716 exposes related resources full URIs1717 confidential issues1718 returns 404 for non project members1719 returns 404 for project members with guest role1720 returns confidential issue for project members1721 returns confidential issue for author1722 returns confidential issue for assignee1723 returns confidential issue for admin1724 behaves like accessible merge requests count1725 returns anonymous accessible merge requests count1726 returns guest accessible merge requests count1727 returns reporter accessible merge requests count1728 returns admin accessible merge requests count1729 GET :id/issues/:issue_iid/closed_by1730 returns merge requests that will close issue on merge1731 returns 404 when issue doesn't exists1732 when unauthenticated1733 return public project issues1734 when no merge requests will close issue1735 returns empty array1736 GET :id/issues/:issue_iid/related_merge_requests1737 returns merge requests that mentioned a issue1738 returns merge requests cross-project wide1739 does not generate references to projects with no access1740 returns 404 when issue doesn't exists1741 when unauthenticated1742 return list of referenced merge requests from issue1743 renders 404 if project is not visible1744 no merge request mentioned a issue1745 returns empty array1746 GET /projects/:id/issues/:issue_iid/user_agent_detail1747 exposes known attributes1748 returns unauthorized for non-admin users1749 when unauthenticated1750 returns unauthorized1751 GET projects/:id/issues/:issue_iid/participants1752 returns 404 if the issue is confidential1753 behaves like issuable participants endpoint1754 returns participants1755 returns a 404 when iid does not exist1756 returns a 404 when id is used instead of iid1757 with a confidential note1758 returns a full list of participants1759 when user cannot see a confidential note1760 returns a limited list of participants1761API::Files1762 http headers1763 converts value into string1764 raises exception if value is an Enumerable1765 HEAD /projects/:id/repository/files/:file_path1766 when unauthenticated and project is public1767 behaves like repository files1768 returns 400 when file path is invalid1769 returns file attributes in headers1770 caches sha256 of the content1771 returns file by commit sha1772 behaves like when path is absolute1773 returns 400 when file path is absolute1774 when mandatory params are not given1775 responds with a 400 status1776 when file_path does not exist1777 responds with a 404 status1778 when file_path does not exist1779 responds with a 403 status1780 when unauthenticated and project is private1781 responds with a 404 status1782 when PATs are used1783 behaves like repository files1784 returns 400 when file path is invalid1785 returns file attributes in headers1786 caches sha256 of the content1787 returns file by commit sha1788 behaves like when path is absolute1789 returns 400 when file path is absolute1790 when mandatory params are not given1791 responds with a 400 status1792 when file_path does not exist1793 responds with a 404 status1794 when file_path does not exist1795 responds with a 403 status1796 when authenticated as a developer1797 behaves like repository files1798 returns 400 when file path is invalid1799 returns file attributes in headers1800 caches sha256 of the content1801 returns file by commit sha1802 behaves like when path is absolute1803 returns 400 when file path is absolute1804 when mandatory params are not given1805 responds with a 400 status1806 when file_path does not exist1807 responds with a 404 status1808 when file_path does not exist1809 responds with a 403 status1810 when authenticated as a guest1811 behaves like 403 response1812 returns 4031813 GET /projects/:id/repository/files/:file_path1814 when unauthenticated and project is public1815 behaves like repository files1816 returns 400 for invalid file path1817 returns file attributes as json1818 returns json when file has txt extension1819 returns file by commit sha1820 returns raw file info1821 returns blame file info1822 sets inline content disposition by default1823 behaves like when path is absolute1824 returns 400 when file path is absolute1825 for executable file1826 returns file attributes as json1827 with filename with pathspec characters1828 returns JSON wth commit SHA1829 when mandatory params are not given1830 behaves like 400 response1831 returns 4001832 when file_path does not exist1833 behaves like 404 response1834 returns 4041835 when repository is disabled1836 behaves like 403 response1837 returns 4031838 when PATs are used1839 behaves like repository files1840 returns 400 for invalid file path1841 returns file attributes as json1842 returns json when file has txt extension1843 returns file by commit sha1844 returns raw file info1845 returns blame file info1846 sets inline content disposition by default1847 behaves like when path is absolute1848 returns 400 when file path is absolute1849 for executable file1850 returns file attributes as json1851 with filename with pathspec characters1852 returns JSON wth commit SHA1853 when mandatory params are not given1854 behaves like 400 response1855 returns 4001856 when file_path does not exist1857 behaves like 404 response1858 returns 4041859 when repository is disabled1860 behaves like 403 response1861 returns 4031862 when unauthenticated and project is private1863 behaves like 404 response1864 returns 4041865 when authenticated as a developer1866 behaves like repository files1867 returns 400 for invalid file path1868 returns file attributes as json1869 returns json when file has txt extension1870 returns file by commit sha1871 returns raw file info1872 returns blame file info1873 sets inline content disposition by default1874 behaves like when path is absolute1875 returns 400 when file path is absolute1876 for executable file1877 returns file attributes as json1878 with filename with pathspec characters1879 returns JSON wth commit SHA1880 when mandatory params are not given1881 behaves like 400 response1882 returns 4001883 when file_path does not exist1884 behaves like 404 response1885 returns 4041886 when repository is disabled1887 behaves like 403 response1888 returns 4031889 when authenticated as a guest1890 behaves like 403 response1891 returns 4031892 GET /projects/:id/repository/files/:file_path/blame1893 when unauthenticated and project is public1894 behaves like repository blame files1895 returns file attributes in headers1896 returns 400 when file path is invalid1897 returns blame file attributes as json1898 returns blame file info for files with dots1899 returns file by commit sha1900 for executable file1901 returns file attributes in headers1902 behaves like when path is absolute1903 returns 400 when file path is absolute1904 with a range parameter1905 returns file blame attributes as json for the range1906 when start > end1907 returns 400 error1908 when range is incomplete1909 returns 400 error1910 when range contains negative integers1911 returns 400 error1912 when range is missing1913 returns 400 error1914 when mandatory params are not given1915 behaves like 400 response1916 returns 4001917 when file_path does not exist1918 behaves like 404 response1919 returns 4041920 when commit does not exist1921 behaves like 404 response1922 returns 4041923 when repository is disabled1924 behaves like 403 response1925 returns 4031926 when unauthenticated and project is private1927 behaves like 404 response1928 returns 4041929 when authenticated as a developer1930 behaves like repository blame files1931 returns file attributes in headers1932 returns 400 when file path is invalid1933 returns blame file attributes as json1934 returns blame file info for files with dots1935 returns file by commit sha1936 for executable file1937 returns file attributes in headers1938 behaves like when path is absolute1939 returns 400 when file path is absolute1940 with a range parameter1941 returns file blame attributes as json for the range1942 when start > end1943 returns 400 error1944 when range is incomplete1945 returns 400 error1946 when range contains negative integers1947 returns 400 error1948 when range is missing1949 returns 400 error1950 when mandatory params are not given1951 behaves like 400 response1952 returns 4001953 when file_path does not exist1954 behaves like 404 response1955 returns 4041956 when commit does not exist1957 behaves like 404 response1958 returns 4041959 when repository is disabled1960 behaves like 403 response1961 returns 4031962 when authenticated as a guest1963 behaves like 403 response1964 returns 4031965 when PATs are used1966 returns blame file by commit sha1967 GET /projects/:id/repository/files/:file_path/raw1968 when unauthenticated and project is public1969 behaves like repository raw files1970 returns 400 when file path is invalid1971 returns raw file info1972 returns raw file info for files with dots1973 returns file by commit sha1974 sets no-cache headers1975 behaves like when path is absolute1976 returns 400 when file path is absolute1977 when ref is not provided1978 returns response :ok1979 when mandatory params are not given1980 behaves like 400 response1981 returns 4001982 when file_path does not exist1983 behaves like 404 response1984 returns 4041985 when repository is disabled1986 behaves like 403 response1987 returns 4031988 when unauthenticated and project is private1989 behaves like 404 response1990 returns 4041991 when authenticated as a developer1992 behaves like repository raw files1993 returns 400 when file path is invalid1994 returns raw file info1995 returns raw file info for files with dots1996 returns file by commit sha1997 sets no-cache headers1998 behaves like when path is absolute1999 returns 400 when file path is absolute2000 when ref is not provided2001 returns response :ok2002 when mandatory params are not given2003 behaves like 400 response2004 returns 4002005 when file_path does not exist2006 behaves like 404 response2007 returns 4042008 when repository is disabled2009 behaves like 403 response2010 returns 4032011 when authenticated as a guest2012 behaves like 403 response2013 returns 4032014 when PATs are used2015 returns file by commit sha2016 POST /projects/:id/repository/files/:file_path2017 returns 400 when file path is invalid2018 creates a new file in project repo2019 creates a new executable file in project repo2020 returns a 400 bad request if no mandatory params given2021 returns a 400 bad request if the commit message is empty2022 returns a 400 if editor fails to create file2023 behaves like when path is absolute2024 returns 400 when file path is absolute2025 with PATs2026 returns 403 with `read_repository` scope2027 returns 201 with `api` scope2028 when specifying an author2029 creates a new file with the specified author2030 when the repo is empty2031 creates a new file in project repo2032 PUT /projects/:id/repository/files2033 updates existing file in project repo2034 returns a 400 bad request if the commit message is empty2035 returns a 400 bad request if update existing file with stale last commit id2036 updates existing file in project repo with accepts correct last commit id2037 returns 400 when file path is invalid2038 returns a 400 bad request if no params given2039 behaves like when path is absolute2040 returns 400 when file path is absolute2041 when specifying an author2042 updates a file with the specified author2043 when specifying the execute_filemode2044 updates to executable file mode2045 updates to non-executable file mode2046 DELETE /projects/:id/repository/files2047 returns 400 when file path is invalid2048 deletes existing file in project repo2049 returns a 400 bad request if no params given2050 returns a 400 bad request if the commit message is empty2051 returns a 400 if fails to delete file2052 behaves like when path is absolute2053 returns 400 when file path is absolute2054 when specifying an author2055 removes a file with the specified author2056 POST /projects/:id/repository/files with binary file2057 remains unchanged2058Boards::IssuesController2059 GET index2060 with invalid board id2061 returns a not found 404 response2062 when list id is present2063 with valid list id2064 returns issues that have the list label applied2065 returns issues by closed_at in descending order in closed list2066 avoids N+1 database queries2067 avoids N+1 database queries when adding a project2068 avoids N+1 database queries when adding a subgroup, project, and issue2069 does not query issues table more than once2070 when block_issue_repositioning feature flag is enabled2071 does not reposition issues with null position2072 with invalid list id2073 returns a not found 404 response2074 when list id is missing2075 returns opened issues without board labels applied2076 with unauthorized user2077 returns a forbidden 403 response2078 with external authorization2079 returns a 403 for group boards2080 is successful for project boards2081 PUT bulk_move2082 when items are moved to another list2083 behaves like move issues endpoint provider2084 responds as expected2085 moves issues as expected2086 when moving just one issue2087 behaves like move issues endpoint provider2088 responds as expected2089 moves issues as expected2090 when user is not allowed to move issue2091 behaves like move issues endpoint provider2092 responds as expected2093 moves issues as expected2094 when issues should be moved visually above existing issue in list2095 behaves like move issues endpoint provider2096 responds as expected2097 moves issues as expected2098 when destination list is empty2099 behaves like move issues endpoint provider2100 responds as expected2101 moves issues as expected2102 when no position arguments are given2103 behaves like move issues endpoint provider2104 responds as expected2105 moves issues as expected2106 when move_before_id and move_after_id are given2107 behaves like move issues endpoint provider2108 responds as expected2109 moves issues as expected2110 when request contains too many issues2111 behaves like move issues endpoint provider2112 responds as expected2113 moves issues as expected2114 when request is malformed2115 behaves like move issues endpoint provider2116 responds as expected2117 moves issues as expected2118 POST create2119 with valid params2120 returns a successful 200 response2121 returns the created issue2122 sets the default work_item_type2123 with invalid params2124 when title is nil2125 returns an unprocessable entity 422 response2126 when list does not belongs to project board2127 returns a not found 404 response2128 with invalid board id2129 returns a not found 404 response2130 with invalid list id2131 returns a not found 404 response2132 with guest user2133 in open list2134 returns a successful 200 response2135 in label list2136 returns a forbidden 403 response2137 PATCH update2138 with valid params2139 returns a successful 200 response2140 moves issue to the desired list2141 with invalid params2142 returns a unprocessable entity 422 response for invalid lists2143 returns a not found 404 response for invalid board id2144 returns a not found 404 response for invalid issue id2145 with unauthorized user2146 returns a forbidden 403 response2147API::Issues2148 GET /issues/:id2149 when unauthorized2150 returns unauthorized2151 when authorized2152 as a normal user2153 returns forbidden2154 as an admin2155 when issue exists2156 returns the issue2157 when issue does not exist2158 returns 4042159 GET /issues2160 when unauthenticated2161 returns an array of all issues2162 returns authentication error without any scope2163 returns authentication error when scope is assigned-to-me2164 returns authentication error when scope is created-by-me2165 returns an array of issues matching state in milestone2166 returns an array of issues matching state in milestone2167 responds with a 401 instead of the specified issue2168 behaves like issuable anonymous search2169 with anonymous user2170 with disable_anonymous_search disabled2171 returns issuables matching given search string for title2172 returns issuables matching given search string for description2173 with disable_anonymous_search enabled2174 returns 422 error2175 issues_statistics2176 returns authentication error without any scope2177 returns authentication error when scope is assigned_to_me2178 returns authentication error when scope is created_by_me2179 no state is treated as all state2180 behaves like issues statistics2181 returns issues statistics2182 statistics when all state is passed2183 behaves like issues statistics2184 returns issues statistics2185 closed state is treated as all state2186 behaves like issues statistics2187 returns issues statistics2188 opened state is treated as all state2189 behaves like issues statistics2190 returns issues statistics2191 when filtering by milestone and no state treated as all state2192 behaves like issues statistics2193 returns issues statistics2194 when filtering by milestone and all state2195 behaves like issues statistics2196 returns issues statistics2197 when filtering by milestone and closed state treated as all state2198 behaves like issues statistics2199 returns issues statistics2200 when filtering by milestone and opened state treated as all state2201 behaves like issues statistics2202 returns issues statistics2203 sort does not affect statistics2204 behaves like issues statistics2205 returns issues statistics2206 with search param2207 behaves like issues statistics2208 returns issues statistics2209 with anonymous user2210 with disable_anonymous_search disabled2211 behaves like issues statistics2212 returns issues statistics2213 with disable_anonymous_search enabled2214 returns a unprocessable entity 4222215 when authenticated2216 returns an array of issues2217 returns an array of closed issues2218 returns an array of opened issues2219 returns an array of all issues2220 returns issues assigned to me2221 returns issues assigned to me (kebab-case)2222 returns issues authored by the given author id2223 returns issues assigned to the given assignee id2224 returns issues authored by the given author id and assigned to the given assignee id2225 returns issues with no assignee2226 returns issues with any assignee2227 returns only confidential issues2228 returns only public issues2229 returns issues reacted by the authenticated user2230 returns issues not reacted by the authenticated user2231 returns issues with a given issue_type2232 returns issues matching given search string for title2233 returns issues matching given search string for title and scoped in title2234 returns an empty array if no issue matches given search string for title and scoped in description2235 returns issues matching given search string for description2236 returns an array of issues found by iids2237 returns an empty array if iid does not exist2238 sorts ascending when requested2239 sorts by updated_at descending when requested2240 sorts by updated_at ascending when requested2241 sorts by title asc when requested2242 sorts by title desc when requested2243 matches V4 response schema2244 returns a related merge request count of 0 if there are no related merge requests2245 returns a related merge request count > 0 if there are related merge requests2246 filtering before a specific date2247 returns issues created before a specific date2248 returns issues updated before a specific date2249 filtering after a specific date2250 returns issues created after a specific date2251 returns issues updated after a specific date2252 filtering by due date2253 returns them all when argument is empty2254 returns issues with due date2255 returns issues without due date2256 returns issues due for this week2257 returns issues due for this month2258 returns issues that are due previous two weeks and next month2259 returns issues that are due today2260 returns issues that are due tomorrow2261 returns issues that are overdue2262 with incident issues2263 avoids N+1 queries2264 with issues closed as duplicates2265 avoids N+1 queries2266 filter by labels or label_name param2267 returns an array of labeled issues2268 returns an array of labeled issues with labels param as array2269 returns an empty array if no issue matches labels2270 returns an empty array if no issue matches labels with labels param as array2271 returns an array of labeled issues matching given state2272 returns an array of labeled issues matching given state with labels param as array2273 returns an empty array if no issue matches labels and state filters2274 returns an array of issues with any label2275 returns an array of issues with any label with labels param as array2276 returns an array of issues with no label2277 returns an array of issues with no label with labels param as array2278 N+12279 tests N+12280 with labeled issues2281 behaves like labeled issues with labels and label_name params2282 array of labeled issues when all labels match2283 behaves like returns label names2284 returns label names2285 array of labeled issues when all labels match with labels param as array2286 behaves like returns label names2287 returns label names2288 negation2289 array of labeled issues when all labels match with negation2290 behaves like returns negated label names2291 returns label names2292 array of labeled issues when all labels match with negation with label params as array2293 behaves like returns negated label names2294 returns label names2295 when with_labels_details provided2296 array of labeled issues when all labels match2297 behaves like returns basic label entity2298 returns basic label entity2299 array of labeled issues when all labels match with labels param as array2300 behaves like returns basic label entity2301 returns basic label entity2302 filter by milestone2303 returns an empty array if no issue matches milestone2304 returns an empty array if milestone does not exist2305 returns an array of issues in given milestone2306 returns an array of issues in given milestone_title param2307 returns an array of issues matching state in milestone2308 returns an array of issues with no milestone2309 returns an array of issues with no milestone using milestone_title param2310 negated2311 returns all issues if milestone does not exist2312 returns all issues that do not belong to a milestone but have a milestone2313 returns an array of issues with any milestone2314 returns an array of issues matching state not in milestone2315 filtering by milestone_id2316 milestone_id: wildcard_none, not_milestone: nil, expected_issues: lazy { [issue_none.id] }2317 returns correct issues when filtering with 'milestone_id' and optionally negated 'milestone'2318 milestone_id: wildcard_any, not_milestone: nil, expected_issues: lazy { [issue_future.id, issue_started.id, issue_upcoming.id, issue.id, closed_issue.id] }2319 returns correct issues when filtering with 'milestone_id' and optionally negated 'milestone'2320 milestone_id: wildcard_started, not_milestone: nil, expected_issues: lazy { [issue_started.id, issue_upcoming.id] }2321 returns correct issues when filtering with 'milestone_id' and optionally negated 'milestone'2322 milestone_id: wildcard_upcoming, not_milestone: nil, expected_issues: lazy { [issue_upcoming.id] }2323 returns correct issues when filtering with 'milestone_id' and optionally negated 'milestone'2324 milestone_id: wildcard_any, not_milestone: "upcoming milestone", expected_issues: lazy { [issue_future.id, issue_started.id, issue.id, closed_issue.id] }2325 returns correct issues when filtering with 'milestone_id' and optionally negated 'milestone'2326 milestone_id: wildcard_upcoming, not_milestone: "upcoming milestone", expected_issues: []2327 returns correct issues when filtering with 'milestone_id' and optionally negated 'milestone'2328 negated filtering2329 not_milestone_id: wildcard_started, expected_issues: lazy { [issue_future.id] }2330 returns correct issues when filtering with negated 'milestone_id'2331 not_milestone_id: wildcard_upcoming, expected_issues: lazy { [issue_started.id] }2332 returns correct issues when filtering with negated 'milestone_id'2333 when mutually exclusive params are passed2334 params: lazy { { milestone: "foo", milestone_id: wildcard_any } }2335 raises an error2336 params: lazy { { not: { milestone: "foo", milestone_id: wildcard_any } } }2337 raises an error2338 without sort params2339 sorts by created_at descending by default2340 with 2 issues with same created_at2341 page breaks first page correctly2342 page breaks second page correctly2343 with issues list sort options2344 accepts only predefined order by params2345 fails to sort with non predefined options2346 issues_statistics2347 no state is treated as all state2348 behaves like issues statistics2349 returns issues statistics2350 statistics when all state is passed2351 behaves like issues statistics2352 returns issues statistics2353 closed state is treated as all state2354 behaves like issues statistics2355 returns issues statistics2356 opened state is treated as all state2357 behaves like issues statistics2358 returns issues statistics2359 when filtering by milestone and no state treated as all state2360 behaves like issues statistics2361 returns issues statistics2362 when filtering by milestone and all state2363 behaves like issues statistics2364 returns issues statistics2365 when filtering by milestone and closed state treated as all state2366 behaves like issues statistics2367 returns issues statistics2368 when filtering by milestone and opened state treated as all state2369 behaves like issues statistics2370 returns issues statistics2371 sort does not affect statistics2372 behaves like issues statistics2373 returns issues statistics2374 filtering by assignee_username2375 returns issues with by assignee_username2376 returns issues by assignee_username as string2377 returns error when multiple assignees are passed2378 returns error when assignee_username and assignee_id are passed together2379 filtering by non_archived2380 returns issues from non archived projects by default2381 returns issues from archived project with non_archived set as false2382 when returns issue merge_requests_count for different access levels2383 behaves like accessible merge requests count2384 returns anonymous accessible merge requests count2385 returns guest accessible merge requests count2386 returns reporter accessible merge requests count2387 returns admin accessible merge requests count2388 GET /projects/:id/issues/:issue_iid2389 exposes full reference path2390 when issue is closed as duplicate2391 user does not have permission to view new issue2392 does not return the issue as closed_as_duplicate_of2393 when user has access to new issue2394 returns the issue as closed_as_duplicate_of2395 POST /projects/:id/issues2396 creates a new project issue2397 PUT /projects/:id/issues/:issue_iid2398 behaves like issuable update endpoint2399 PUT /projects/:id/issues/:issue_iid2400 clears labels when labels param is nil2401 updates the issuable with labels param as array2402 updated_at param2403 allows admins to set the timestamp2404 does not allow other users to set the timestamp2405 issue_type param2406 allows issue type to be converted2407 DELETE /projects/:id/issues/:issue_iid2408 rejects a non member from deleting an issue2409 rejects a developer from deleting an issue2410 returns 404 when using the issue ID instead of IID2411 when the user is project owner2412 deletes the issue if an admin requests it2413 behaves like 412 response2414 for a modified ressource2415 returns 412 with a JSON error2416 for an unmodified ressource2417 returns 204 with an empty body2418 when issue does not exist2419 returns 404 when trying to delete an issue2420 time tracking endpoints2421 POST /projects/:id/issues/:issue_id/time_estimate2422 sets the time estimate for issue2423 with an unauthorized user2424 behaves like an unauthorized API user2425 is expected to eq 4032426 behaves like API user with insufficient permissions2427 with non member that is the author2428 behaves like an unauthorized API user2429 is expected to eq 4032430 updating the current estimate2431 when duration has a bad format2432 does not modify the original estimate2433 with a valid duration2434 updates the estimate2435 POST /projects/:id/issues/:issue_id/reset_time_estimate2436 resets the time estimate for issue2437 with an unauthorized user2438 behaves like an unauthorized API user2439 is expected to eq 4032440 behaves like API user with insufficient permissions2441 with non member that is the author2442 behaves like an unauthorized API user2443 is expected to eq 4032444 POST /projects/:id/issues/:issue_id/add_spent_time2445 add spent time for issue2446 calls update service without :use_specialized_service param2447 with an unauthorized user2448 behaves like an unauthorized API user2449 is expected to eq 4032450 behaves like API user with insufficient permissions2451 with non member that is the author2452 behaves like an unauthorized API user2453 is expected to eq 4032454 when subtracting time2455 subtracts time of the total spent time2456 when time to subtract is greater than the total spent time2457 does not modify the total time spent2458 POST /projects/:id/issues/:issue_id/reset_spent_time2459 resets spent time for issue2460 with an unauthorized user2461 behaves like an unauthorized API user2462 is expected to eq 4032463 behaves like API user with insufficient permissions2464 with non member that is the author2465 behaves like an unauthorized API user2466 is expected to eq 4032467 GET /projects/:id/issues/:issue_id/time_stats2468 returns the time stats for issue2469 PUT /projects/:id/issues/:issue_iid/reorder2470 when user has access2471 with valid params2472 reorders issues and returns a successful 200 response2473 with invalid params2474 returns a unprocessable entity 422 response for invalid move ids2475 returns a not found 404 response for invalid issue id2476 with issue in different project2477 reorders issues and returns a successful 200 response2478 with unauthorized user2479 responds with 403 forbidden2480Groups::MilestonesController2481 behaves like milestone tabs2482 #issues2483 as html2484 redirects to milestone#show2485 as json2486 renders the issues tab template to a string2487 #merge_requests2488 as html2489 redirects to milestone#show2490 as json2491 renders the merge requests tab template to a string2492 #participants2493 as html2494 redirects to milestone#show2495 as json2496 renders the participants tab template to a string2497 #labels2498 as html2499 redirects to milestone#show2500 as json2501 renders the labels tab template to a string2502 #index2503 as HTML2504 shows group milestones page2505 searches legacy milestones by title when search_title is given2506 searches group milestones by title when search_title is given2507 when anonymous user2508 shows group milestones page2509 when issues and merge requests are disabled in public project2510 when anonymous user2511 behaves like milestone not accessible2512 does not return milestone2513 when non project or group member user2514 behaves like milestone not accessible2515 does not return milestone2516 when group member user2517 returns the milestone2518 when subgroup milestones are present2519 shows subgroup milestones that user has access to2520 when user has no access to subgroups2521 does not show subgroup milestones2522 as JSON2523 lists project and group milestones2524 with subgroup milestones2525 lists descendants group milestones2526 for a subgroup2527 includes ancestor group milestones2528 external authorization2529 behaves like disabled when using an external authorization service2530 works when the feature is not enabled2531 renders a 404 with a message when the feature is enabled2532 #show2533 renders for a group milestone2534 #create2535 creates group milestone with Chinese title2536 #update2537 updates group milestone2538 #destroy2539 removes milestone2540 #ensure_canonical_path2541 for a GET request2542 when requesting the canonical path2543 non-show path2544 with exactly matching casing2545 does not redirect2546 with different casing2547 redirects to the correct casing2548 show path2549 with exactly matching casing2550 does not redirect2551 with different casing2552 redirects to the correct casing2553 when requesting a redirected path2554 redirects to the canonical path2555 with an AJAX request2556 redirects to the canonical path but does not set flash message2557 with JSON format2558 redirects to the canonical path but does not set flash message2559 when the old group path is a substring of the scheme or host2560 does not modify the requested host2561 when the old group path is substring of groups2562 does not modify the /groups part of the path2563 when the old group path is substring of groups plus the new path2564 does not modify the /groups part of the path2565 for a non-GET request2566 when requesting the canonical path with different casing2567 does not 4042568 does not redirect to the correct casing2569 when requesting a redirected path2570 returns not found2571API::Ci::Jobs2572 GET /job2573 when token is valid but not CI_JOB_TOKEN2574 returns not found2575 with job token authentication header2576 returns specific job data2577 behaves like returns common job data2578 returns common job data2579 behaves like returns common pipeline data2580 returns common pipeline data2581 with job token authentication params2582 returns specific job data2583 behaves like returns common job data2584 returns common job data2585 behaves like returns common pipeline data2586 returns common pipeline data2587 with non running job2588 behaves like returns unauthorized2589 returns unauthorized2590 with basic auth header2591 does not return a job2592 without authentication2593 behaves like returns unauthorized2594 returns unauthorized2595 GET /job/allowed_agents2596 when token is valid and user is authorized2597 behaves like valid allowed_agents request2598 returns agent info2599 when deployment2600 includes environment slug2601 when non-deployment environment action2602 includes environment slug2603 when passing the token as params2604 behaves like valid allowed_agents request2605 returns agent info2606 when user is anonymous2607 returns unauthorized2608 when token is invalid because job has finished2609 returns unauthorized2610 when token is invalid2611 returns unauthorized2612 when token is valid but not CI_JOB_TOKEN2613 returns not found2614 GET /projects/:id/jobs2615 authorized user2616 returns project jobs2617 returns correct values2618 returns pipeline data2619 avoids N+1 queries2620 without artifacts and trace2621 returns no artifacts nor trace data2622 behaves like a job with artifacts and trace2623 with artifacts and trace2624 returns artifacts and trace data2625 filter project with one scope element2626 is expected to be a kind of Array2627 filter project with array of scope elements2628 is expected to be a kind of Array2629 respond 400 when scope contains invalid state2630 is expected to respond with numeric status code bad_request2631 unauthorized user2632 when user is not logged in2633 does not return project jobs2634 when user is guest2635 does not return project jobs2636 GET /projects/:id/jobs/:job_id2637 authorized user2638 returns specific job data2639 behaves like returns common job data2640 returns common job data2641 behaves like a job with artifacts and trace2642 with artifacts and trace2643 returns artifacts and trace data2644 behaves like returns common pipeline data2645 returns common pipeline data2646 unauthorized user2647 does not return specific job data2648 when job succeeded2649 does not return failure_reason2650 when job failed2651 returns failure_reason2652 when trace artifact record exists with no stored file2653 returns no artifacts nor trace data2654 GET /projects/:id/jobs/:job_id/trace2655 authorized user2656 when log is in ObjectStorage2657 returns specific job logs2658 when log is artifact2659 returns specific job log2660 when incremental logging and uploadless log artifact2661 returns specific job log2662 when log is incremental2663 returns specific job log2664 when no log2665 returns empty log2666 when log artifact record exists with no stored file2667 returns empty trace2668 unauthorized user2669 does not return specific job log2670 when ci_debug_trace is set to true2671 public_builds: true, user_project_role: "developer", expected_status: :ok2672 renders trace to authorized users2673 public_builds: true, user_project_role: "guest", expected_status: :forbidden2674 renders trace to authorized users2675 public_builds: false, user_project_role: "developer", expected_status: :ok2676 renders trace to authorized users2677 public_builds: false, user_project_role: "guest", expected_status: :forbidden2678 renders trace to authorized users2679 POST /projects/:id/jobs/:job_id/cancel2680 authorized user2681 user with :update_build persmission2682 cancels running or pending job2683 user without :update_build permission2684 does not cancel job2685 unauthorized user2686 does not cancel job2687 POST /projects/:id/jobs/:job_id/retry2688 authorized user2689 user with :update_build permission2690 retries non-running job2691 when a build is not retryable2692 responds with unprocessable entity2693 user without :update_build permission2694 does not retry job2695 unauthorized user2696 does not retry job2697 POST /projects/:id/jobs/:job_id/erase2698 when project is not undergoing stats refresh2699 job is erasable2700 updates job2701 behaves like erases job2702 erases job content2703 when job has an unarchived trace artifact2704 behaves like erases job2705 erases job content2706 job is not erasable2707 responds with forbidden2708 when a developer erases a build2709 when the build was created by the developer2710 is expected to respond with numeric status code created2711 when the build was created by another user2712 is expected to respond with numeric status code forbidden2713 when project is undergoing stats refresh2714 behaves like preventing request because of ongoing project stats refresh2715 logs about the rejected request2716 returns 409 error2717 does not delete artifacts2718 POST /projects/:id/jobs/:job_id/play2719 on a playable job2720 when user is authorized to trigger a manual action2721 that is a bridge2722 plays the job2723 that is a build2724 plays the job2725 when the user provides valid custom variables2726 applies the variables to the job2727 when the user provides a variable without a key2728 reports that the key is missing2729 when the user provides a variable without a value2730 reports that the value is missing2731 when the user provides both valid and invalid variables2732 reports the invalid variables and does not run the job2733 when user is not authorized to trigger a manual action2734 when user does not have access to the project2735 does not trigger a manual action2736 when user is not allowed to trigger the manual action2737 does not trigger a manual action2738 on a non-playable job2739 returns a status code 400, Bad Request2740Import::GithubController2741 GET new2742 redirects to GitHub for an access token if logged in with GitHub2743 prompts for an access token if GitHub not configured2744 behaves like a GitHub-ish import controller: GET new2745 redirects to status if we already have a token2746 renders the :new page if no token is present in session2747 when importing a CI/CD project2748 always prompts for an access token2749 GET callback2750 when auth state param is missing from session2751 reports an error2752 when auth state param is present in session2753 updates access token if state param is valid2754 reports an error if state param is invalid2755 includes namespace_id from query params if it is present2756 POST personal_access_token2757 behaves like a GitHub-ish import controller: POST personal_access_token2758 updates access token2759 strips access token with spaces2760 passes namespace_id param as query param if it was present2761 GET status2762 when using OAuth2763 when OAuth config is missing2764 returns missing config error2765 when feature remove_legacy_github_client is disabled2766 uses Gitlab::LegacyGitHubImport::Client2767 fetches repos using legacy client2768 gets authorization url using legacy client2769 behaves like a GitHub-ish import controller: GET status2770 returns variables for json request2771 touches the etag cache store2772 handles an invalid access token2773 does not produce N+1 database queries2774 when filtering2775 filters list of repositories by name2776 filters the list, ignoring the case of the name2777 when user input contains html2778 sanitizes user input2779 when the client returns a non-string name2780 does not raise an error2781 when namespace_id query param is provided2782 when user is allowed to create projects in this namespace2783 provides namespace to the template2784 when user is not allowed to create projects in this namespace2785 renders 4042786 when feature remove_legacy_github_client is enabled2787 uses Gitlab::GithubImport::Client2788 fetches repos using latest github client2789 gets authorization url using oauth client2790 behaves like a GitHub-ish import controller: GET status2791 returns variables for json request2792 touches the etag cache store2793 handles an invalid access token2794 does not produce N+1 database queries2795 when filtering2796 filters list of repositories by name2797 filters the list, ignoring the case of the name2798 when user input contains html2799 sanitizes user input2800 when the client returns a non-string name2801 does not raise an error2802 when namespace_id query param is provided2803 when user is allowed to create projects in this namespace2804 provides namespace to the template2805 when user is not allowed to create projects in this namespace2806 renders 4042807 pagination2808 when no page is specified2809 requests first page2810 when page is specified2811 requests repos with specified page2812 when filtering2813 makes request to github search api2814 pagination2815 when no page is specified2816 requests first page2817 when page is specified2818 requests repos with specified page2819 when user input contains colons and spaces2820 sanitizes user input2821 when rate limit threshold is exceeded2822 returns 4292823 POST create2824 behaves like a GitHub-ish import controller: POST create2825 returns 200 response when the project is imported successfully2826 returns 422 response with the base error when the project could not be imported2827 touches the etag cache store2828 when the repository owner is the provider user2829 when the provider user and GitLab user's usernames match2830 takes the current user's namespace2831 when the provider user and GitLab user's usernames don't match2832 takes the current user's namespace2833 when the repository owner is not the provider user2834 when a namespace with the provider user's username already exists2835 when the namespace is owned by the GitLab user2836 takes the existing namespace2837 when the namespace is not owned by the GitLab user2838 creates a project using user's namespace2839 when a namespace with the provider user's username doesn't exist2840 when current user can create namespaces2841 creates the namespace2842 takes the new namespace2843 when current user can't create namespaces2844 doesn't create the namespace2845 takes the current user's namespace2846 user has chosen a namespace and name for the project2847 takes the selected namespace and name2848 takes the selected name and default namespace2849 user has chosen an existing nested namespace and name for the project2850 takes the selected namespace and name2851 user has chosen a non-existent nested namespaces and name for the project2852 takes the selected namespace and name2853 creates the namespaces2854 new namespace has the right parent2855 user has chosen existent and non-existent nested namespaces and name for the project2856 takes the selected namespace and name2857 creates the namespaces2858 does not create a new namespace under the user namespace2859 user cannot create a subgroup inside a group is not a member of2860 does not take the selected namespace and name2861 does not create the namespaces2862 user can use a group without having permissions to create a group2863 takes the selected namespace and name2864 when user can not create projects in the chosen namespace2865 returns 422 response2866 behaves like project import rate limiter2867 when limit exceeds2868 notifies and redirects user2869 GET realtime_changes2870 includes stats in response2871 behaves like a GitHub-ish import controller: GET realtime_changes2872 sets a Poll-Interval header2873API::Deployments2874 GET /projects/:id/deployments2875 as member of the project2876 returns projects deployments sorted by id asc2877 returns multiple deployments without N + 12878 with updated_at filters specified2879 returns projects deployments with last update in specified datetime range2880 when forbidden order_by is specified2881 returns projects deployments with last update in specified datetime range2882 with the environment filter specifed2883 returns deployments for the environment2884 ordering2885 returns ordered deployments2886 with invalid order_by2887 returns error2888 with invalid sorting2889 returns error2890 as non member2891 returns a 404 status code2892 GET /projects/:id/deployments/:deployment_id2893 as a member of the project2894 returns the projects deployment2895 as non member2896 returns a 404 status code2897 POST /projects/:id/deployments2898 as a maintainer2899 creates a new deployment2900 errors when creating a deployment with an invalid name2901 links any merged merge requests to the deployment2902 as a developer2903 creates a new deployment2904 links any merged merge requests to the deployment2905 links any picked merge requests to the deployment2906 as non member2907 returns a 404 status code2908 PUT /projects/:id/deployments/:deployment_id2909 as a maintainer2910 returns a 403 when updating a deployment with a build2911 updates a deployment without an associated build2912 returns an error when an invalid status transition is detected2913 links merge requests when the deployment status changes to success2914 as a developer2915 returns a 403 when updating a deployment with a build2916 updates a deployment without an associated build2917 as non member2918 returns a 404 status code2919 GET /projects/:id/deployments/:deployment_id/merge_requests2920 when a user is not a member of the deployment project2921 returns a 404 status code2922 when a user member of the deployment project2923 returns the relevant merge requests linked to a deployment for a project2924 when a deployment is not associated to any existing merge requests2925 returns an empty array2926 prevent N + 1 queries2927 when the endpoint returns multiple records2928 succeeds2929 with 10 more records2930 does not increase the query count2931Import::GiteaController2932 GET new2933 behaves like a GitHub-ish import controller: GET new2934 redirects to status if we already have a token2935 renders the :new page if no token is present in session2936 POST personal_access_token2937 behaves like a GitHub-ish import controller: POST personal_access_token2938 updates access token2939 strips access token with spaces2940 passes namespace_id param as query param if it was present2941 GET status2942 behaves like a GitHub-ish import controller: GET status2943 returns variables for json request2944 touches the etag cache store2945 handles an invalid access token2946 does not produce N+1 database queries2947 requests provider repos list2948 when filtering2949 filters list of repositories by name2950 filters the list, ignoring the case of the name2951 when user input contains html2952 sanitizes user input2953 when the client returns a non-string name2954 does not raise an error2955 when namespace_id query param is provided2956 when user is allowed to create projects in this namespace2957 provides namespace to the template2958 when user is not allowed to create projects in this namespace2959 renders 4042960 when host url is local or not http2961 denies network request2962 denies network request2963 denies network request2964 when DNS Rebinding protection is enabled2965 when provided host url is using https2966 uses unchanged host url to send request to Gitea2967 when provided host url is using http2968 uses changed host url to send request to Gitea2969 POST create2970 behaves like a GitHub-ish import controller: POST create2971 returns 200 response when the project is imported successfully2972 returns 422 response with the base error when the project could not be imported2973 touches the etag cache store2974 when the repository owner is the provider user2975 when the provider user and GitLab user's usernames match2976 takes the current user's namespace2977 when the provider user and GitLab user's usernames don't match2978 takes the current user's namespace2979 when the repository owner is not the provider user2980 when a namespace with the provider user's username already exists2981 when the namespace is owned by the GitLab user2982 takes the existing namespace2983 when the namespace is not owned by the GitLab user2984 creates a project using user's namespace2985 when a namespace with the provider user's username doesn't exist2986 when current user can create namespaces2987 creates the namespace2988 takes the new namespace2989 when current user can't create namespaces2990 doesn't create the namespace2991 takes the current user's namespace2992 user has chosen a namespace and name for the project2993 takes the selected namespace and name2994 takes the selected name and default namespace2995 user has chosen an existing nested namespace and name for the project2996 takes the selected namespace and name2997 user has chosen a non-existent nested namespaces and name for the project2998 takes the selected namespace and name2999 creates the namespaces3000 new namespace has the right parent3001 user has chosen existent and non-existent nested namespaces and name for the project3002 takes the selected namespace and name3003 creates the namespaces3004 does not create a new namespace under the user namespace3005 user cannot create a subgroup inside a group is not a member of3006 does not take the selected namespace and name3007 does not create the namespaces3008 user can use a group without having permissions to create a group3009 takes the selected namespace and name3010 when user can not create projects in the chosen namespace3011 returns 422 response3012 behaves like project import rate limiter3013 when limit exceeds3014 notifies and redirects user3015 GET realtime_changes3016 behaves like a GitHub-ish import controller: GET realtime_changes3017 sets a Poll-Interval header3018OpenID Connect requests3019 Application without OpenID scope3020 token response does not include an ID token3021 userinfo response is unauthorized3022 Application with OpenID scope3023 token response includes an ID token3024 UserInfo payload3025 includes all user information and group memberships3026 does not include any unknown claims3027 includes email and email_verified claims3028 has public email in email claim3029 has false in email_verified claim3030 ID token payload3031 includes the subject claims3032 includes the GitLab root URL3033 includes the time of the last authentication3034 has public email in email claim3035 has true in email_verified claim3036 does not include any unknown properties3037 does include groups3038 when user is blocked3039 redirects to login page3040 when user is ldap_blocked3041 redirects to login page3042 OpenID Discovery keys3043 with a cross-origin request3044 returns data3045 behaves like cross-origin GET request3046 allows cross-origin request3047 with a cross-origin preflight OPTIONS request3048 behaves like cross-origin GET request3049 allows cross-origin request3050 OpenID WebFinger endpoint3051 with a cross-origin request3052 returns data3053 behaves like cross-origin GET request3054 allows cross-origin request3055 with a cross-origin preflight OPTIONS request3056 behaves like cross-origin GET request3057 allows cross-origin request3058 OpenID configuration information3059 correctly returns the configuration3060 with a cross-origin request3061 behaves like cross-origin GET request3062 allows cross-origin request3063 with a cross-origin preflight OPTIONS request3064 behaves like cross-origin GET request3065 allows cross-origin request3066 Application with OpenID and email scopes3067 token response includes an ID token3068 UserInfo payload3069 includes the email and email_verified claims3070 has private email in email claim3071 has true in email_verified claim3072 with a cross-origin request3073 behaves like cross-origin GET and POST request3074 allows cross-origin request3075 with a cross-origin POST request3076 behaves like cross-origin GET and POST request3077 allows cross-origin request3078 with a cross-origin preflight OPTIONS request3079 behaves like cross-origin GET and POST request3080 allows cross-origin request3081 ID token payload3082 has private email in email claim3083 has true in email_verified claim3084 does include groups3085API::Terraform::StateVersion3086 GET /projects/:id/terraform/state/:name/versions/:serial3087 with invalid authentication3088 returns unauthorized status3089 with no authentication3090 returns unauthorized status3091 personal acceess token authentication3092 with maintainer permissions3093 returns the state contents at the given version3094 for a project that does not exist3095 returns not found status3096 with developer permissions3097 returns the state contents at the given version3098 with no permissions3099 returns not found status3100 job token authentication3101 with maintainer permissions3102 returns the state contents at the given version3103 returns unauthorized status if the the job is not running3104 for a project that does not exist3105 returns not found status3106 with developer permissions3107 returns the state contents at the given version3108 with no permissions3109 returns not found status3110 DELETE /projects/:id/terraform/state/:name/versions/:serial3111 with invalid authentication3112 returns unauthorized status3113 with no authentication3114 returns unauthorized status3115 with maintainer permissions3116 deletes the version3117 version does not exist3118 does not delete a version3119 with developer permissions3120 returns forbidden status3121 with no permissions3122 returns not found status3123Public Project Pages Access3124 Project should be public3125 #public?3126 is expected to be truthy3127 GET /projects/:id/pages_access3128 access depends on the level3129 pages_access_level: 0, with_user: "admin", expected_result: 4033130 correct return value3131 pages_access_level: 0, with_user: "owner", expected_result: 4033132 correct return value3133 pages_access_level: 0, with_user: "master", expected_result: 4033134 correct return value3135 pages_access_level: 0, with_user: "developer", expected_result: 4033136 correct return value3137 pages_access_level: 0, with_user: "reporter", expected_result: 4033138 correct return value3139 pages_access_level: 0, with_user: "guest", expected_result: 4033140 correct return value3141 pages_access_level: 0, with_user: "user", expected_result: 4033142 correct return value3143 pages_access_level: 0, with_user: nil, expected_result: 4033144 correct return value3145 pages_access_level: 30, with_user: "admin", expected_result: 2003146 correct return value3147 pages_access_level: 30, with_user: "owner", expected_result: 2003148 correct return value3149 pages_access_level: 30, with_user: "master", expected_result: 2003150 correct return value3151 pages_access_level: 30, with_user: "developer", expected_result: 2003152 correct return value3153 pages_access_level: 30, with_user: "reporter", expected_result: 2003154 correct return value3155 pages_access_level: 30, with_user: "guest", expected_result: 2003156 correct return value3157 pages_access_level: 30, with_user: "user", expected_result: 2003158 correct return value3159 pages_access_level: 30, with_user: nil, expected_result: 2003160 correct return value3161 pages_access_level: 20, with_user: "admin", expected_result: 2003162 correct return value3163 pages_access_level: 20, with_user: "owner", expected_result: 2003164 correct return value3165 pages_access_level: 20, with_user: "master", expected_result: 2003166 correct return value3167 pages_access_level: 20, with_user: "developer", expected_result: 2003168 correct return value3169 pages_access_level: 20, with_user: "reporter", expected_result: 2003170 correct return value3171 pages_access_level: 20, with_user: "guest", expected_result: 2003172 correct return value3173 pages_access_level: 20, with_user: "user", expected_result: 2003174 correct return value3175 pages_access_level: 20, with_user: nil, expected_result: 2003176 correct return value3177 pages_access_level: 10, with_user: "admin", expected_result: 2003178 correct return value3179 pages_access_level: 10, with_user: "owner", expected_result: 2003180 correct return value3181 pages_access_level: 10, with_user: "master", expected_result: 2003182 correct return value3183 pages_access_level: 10, with_user: "developer", expected_result: 2003184 correct return value3185 pages_access_level: 10, with_user: "reporter", expected_result: 2003186 correct return value3187 pages_access_level: 10, with_user: "guest", expected_result: 2003188 correct return value3189 pages_access_level: 10, with_user: "user", expected_result: 4033190 correct return value3191 pages_access_level: 10, with_user: nil, expected_result: 4033192 correct return value3193API::GroupMilestones3194 behaves like group and project milestones3195 GET /groups/:id/milestones3196 returns milestones list3197 returns a 401 error if user not authenticated3198 returns an array of active milestones3199 returns an array of closed milestones3200 returns an array of milestones specified by iids3201 does not return any milestone if none found3202 returns a milestone by iids array3203 returns a milestone by title3204 returns a milestone by searching for title3205 returns a milestones by searching for description3206 GET /groups/:id/milestones/:milestone_id3207 returns a milestone by id3208 returns 401 error if user not authenticated3209 returns a 404 error if milestone id not found3210 POST /groups/:id/milestones3211 creates a new milestone3212 creates a new milestone with description and dates3213 returns a 400 error if title is missing3214 returns a 400 error if params are invalid (duplicate title)3215 creates a new milestone with reserved html characters3216 PUT /groups/:id/milestones/:milestone_id3217 updates a milestone3218 removes a due date if nil is passed3219 returns a 404 error if milestone id not found3220 closes milestone3221 updates milestone with only start date3222 DELETE /groups/:id/milestones/:milestone_id3223 rejects a member with guest access from deleting a milestone3224 deletes the milestone when the user has reporter access to the project3225 GET /groups/:id/milestones/:milestone_id/issues3226 returns issues for a particular milestone3227 returns issues sorted by label priority3228 matches V4 response schema for a list of issues3229 returns a 401 error if user not authenticated3230 confidential issues3231 returns confidential issues to team members3232 does not return confidential issues to team members with guest role3233 does not return confidential issues to regular users3234 returns issues ordered by label priority3235 GET /groups/:id/milestones/:milestone_id/merge_requests3236 returns merge_requests for a particular milestone3237 returns merge_requests sorted by label priority3238 returns a 404 error if milestone id not found3239 returns a 404 if the user has no access to the milestone3240 returns a 401 error if user not authenticated3241 returns merge_requests ordered by position asc3242 GET /groups/:id/milestones3243 when include_parent_milestones is true3244 when user has access to ancestor groups3245 behaves like listing all milestones3246 returns correct list of milestones3247 when iids param is present3248 behaves like listing all milestones3249 returns correct list of milestones3250 when user has no access to ancestor groups3251 behaves like listing all milestones3252 returns correct list of milestones3253 GET /groups/:id/milestones/:milestone_id/issues3254 returns multiple issues without performing N + 13255Projects::StarrersController3256 GET index3257 N+1 queries3258 avoids N+1s loading users3259 when project is public3260 when no user is logged in3261 with no searching3262 only users with public profiles are visible3263 starrers counts are correct3264 when searching by user3265 only users with public profiles are visible3266 starrers counts are correct3267 when public user is logged in3268 with no searching3269 their star is also visible3270 starrers counts are correct3271 when searching by user3272 only users with public profiles are visible3273 starrers counts are correct3274 when private user is logged in3275 with no searching3276 their star is also visible3277 starrers counts are correct3278 when searching by user3279 only users with public profiles are visible3280 starrers counts are correct3281 when admin is logged in3282 with no searching3283 all users are visible3284 starrers counts are correct3285 when searching by user3286 public and private starrers are visible3287 starrers counts are correct3288 when project is private3289 starrers are not visible for non logged in users3290 when user is logged in3291 only users with public profiles are visible3292 starrers counts are correct3293HealthController3294 GET /-/health3295 accessed from whitelisted ip3296 behaves like endpoint responding with health data3297 responds with health checks data3298 behaves like endpoint not querying database3299 does not query database3300 accessed from not whitelisted ip3301 behaves like endpoint not querying database3302 does not query database3303 behaves like endpoint not found3304 responds with resource not found3305 GET /-/readiness3306 accessed from whitelisted ip3307 behaves like endpoint not querying database3308 does not query database3309 behaves like endpoint responding with readiness data3310 when requesting instance-checks3311 when Puma runs in Clustered mode3312 responds with readiness checks data3313 responds with readiness checks data when a failure happens3314 when Puma runs in Single mode3315 does not invoke MasterCheck, succeedes3316 when requesting all checks3317 when Puma runs in Clustered mode3318 behaves like endpoint responding with readiness data for all checks3319 responds with readiness checks data3320 responds with readiness checks data when a failure happens3321 when DB is not accessible and connection raises an exception3322 responds with 500 including the exception info3323 when any exception happens during the probing3324 responds with 500 including the exception info3325 when Puma runs in Single mode3326 behaves like endpoint responding with readiness data for all checks3327 responds with readiness checks data3328 responds with readiness checks data when a failure happens3329 when DB is not accessible and connection raises an exception3330 responds with 500 including the exception info3331 when any exception happens during the probing3332 responds with 500 including the exception info3333 when requesting all checks3334 behaves like endpoint querying database3335 does query database3336 accessed from not whitelisted ip3337 behaves like endpoint not querying database3338 does not query database3339 behaves like endpoint not found3340 responds with resource not found3341 accessed with valid token3342 token passed in request header3343 behaves like endpoint responding with readiness data3344 when requesting instance-checks3345 when Puma runs in Clustered mode3346 responds with readiness checks data3347 responds with readiness checks data when a failure happens3348 when Puma runs in Single mode3349 does not invoke MasterCheck, succeedes3350 when requesting all checks3351 when Puma runs in Clustered mode3352 behaves like endpoint responding with readiness data for all checks3353 responds with readiness checks data3354 responds with readiness checks data when a failure happens3355 when DB is not accessible and connection raises an exception3356 responds with 500 including the exception info3357 when any exception happens during the probing3358 responds with 500 including the exception info3359 when Puma runs in Single mode3360 behaves like endpoint responding with readiness data for all checks3361 responds with readiness checks data3362 responds with readiness checks data when a failure happens3363 when DB is not accessible and connection raises an exception3364 responds with 500 including the exception info3365 when any exception happens during the probing3366 responds with 500 including the exception info3367 behaves like endpoint querying database3368 does query database3369 token passed as URL param3370 behaves like endpoint responding with readiness data3371 when requesting instance-checks3372 when Puma runs in Clustered mode3373 responds with readiness checks data3374 responds with readiness checks data when a failure happens3375 when Puma runs in Single mode3376 does not invoke MasterCheck, succeedes3377 when requesting all checks3378 when Puma runs in Clustered mode3379 behaves like endpoint responding with readiness data for all checks3380 responds with readiness checks data3381 responds with readiness checks data when a failure happens3382 when DB is not accessible and connection raises an exception3383 responds with 500 including the exception info3384 when any exception happens during the probing3385 responds with 500 including the exception info3386 when Puma runs in Single mode3387 behaves like endpoint responding with readiness data for all checks3388 responds with readiness checks data3389 responds with readiness checks data when a failure happens3390 when DB is not accessible and connection raises an exception3391 responds with 500 including the exception info3392 when any exception happens during the probing3393 responds with 500 including the exception info3394 behaves like endpoint querying database3395 does query database3396 GET /-/liveness3397 accessed from whitelisted ip3398 behaves like endpoint not querying database3399 does not query database3400 behaves like endpoint responding with liveness data3401 responds with liveness checks data3402 accessed from not whitelisted ip3403 behaves like endpoint not querying database3404 does not query database3405 behaves like endpoint not found3406 responds with resource not found3407 accessed with valid token3408 token passed in request header3409 behaves like endpoint responding with liveness data3410 responds with liveness checks data3411 behaves like endpoint querying database3412 does query database3413 token passed as URL param3414 behaves like endpoint responding with liveness data3415 responds with liveness checks data3416 behaves like endpoint querying database3417 does query database3418Admin::IntegrationsController3419 behaves like Integrations::Actions3420 GET #edit3421 assigns the integration3422 PUT #update3423 updates the integration with the provided params and redirects to the form3424 when sending a password field3425 updates the integration with the password and other params3426 when sending a blank password field3427 ignores the password field and saves the other params3428 #edit3429 asana3430 successfully displays the template3431 assembla3432 successfully displays the template3433 bamboo3434 successfully displays the template3435 bugzilla3436 successfully displays the template3437 buildkite3438 successfully displays the template3439 campfire3440 successfully displays the template3441 confluence3442 successfully displays the template3443 custom_issue_tracker3444 successfully displays the template3445 datadog3446 successfully displays the template3447 discord3448 successfully displays the template3449 drone_ci3450 successfully displays the template3451 emails_on_push3452 successfully displays the template3453 ewm3454 successfully displays the template3455 external_wiki3456 successfully displays the template3457 flowdock3458 successfully displays the template3459 github3460 successfully displays the template3461 gitlab_slack_application3462 successfully displays the template3463 hangouts_chat3464 successfully displays the template3465 harbor3466 successfully displays the template3467 irker3468 successfully displays the template3469 jenkins3470 successfully displays the template3471 jira3472 successfully displays the template3473 mattermost3474 successfully displays the template3475 mattermost_slash_commands3476 successfully displays the template3477 microsoft_teams3478 successfully displays the template3479 mock_ci3480 successfully displays the template3481 mock_monitoring3482 successfully displays the template3483 packagist3484 successfully displays the template3485 pipelines_email3486 successfully displays the template3487 pivotaltracker3488 successfully displays the template3489 prometheus3490 successfully displays the template3491 pushover3492 successfully displays the template3493 redmine3494 successfully displays the template3495 shimo3496 successfully displays the template3497 slack3498 successfully displays the template3499 slack_slash_commands3500 successfully displays the template3501 teamcity3502 successfully displays the template3503 unify_circuit3504 successfully displays the template3505 webex_teams3506 successfully displays the template3507 youtrack3508 successfully displays the template3509 zentao3510 successfully displays the template3511 when GitLab.com3512 returns 4043513 #update3514 valid params3515 updates the integration3516 calls to PropagateIntegrationWorker3517 invalid params3518 does not update the integration3519 does not call to PropagateIntegrationWorker3520 #reset3521 returns 200 OK3522 deletes the integration and all inheriting integrations3523Adding a DiffNote3524 behaves like a Note mutation when the user does not have permission3525 behaves like a Note mutation that does not create a Note3526 is expected not to change `Note.count`3527 behaves like a mutation that returns top-level errors3528 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"3529 when the user has permission3530DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3531DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3532 returns the note with the correct position3533 behaves like a Note mutation that creates a Note3534DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3535DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3536 is expected to change `Note.count` by 13537 add comment to old line3538 behaves like a Note mutation that creates a Note3539DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3540DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3541 is expected to change `Note.count` by 13542 add a comment with a position without lines3543 behaves like a Note mutation that does not create a Note3544 is expected not to change `Note.count`3545 behaves like a Note mutation when there are active record validation errors3546 returns an empty Note3547 behaves like a Note mutation that does not create a Note3548 is expected not to change `Note.count`3549 behaves like a mutation that returns errors in the response3550 is expected to contain exactly "Error 1" and "Error 2"3551 behaves like a Note mutation when there are rate limit validation errors3552 with rate limiter3553 behaves like a Note mutation that does not create a Note3554DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3555DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3556DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3557DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3558DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3559DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3560 is expected not to change `Note.count`3561 behaves like a mutation that returns top-level errors3562DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3563DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3564DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3565DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3566DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3567DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3568 is expected to contain exactly "This endpoint has been requested too many times. Try again later."3569 when the user is in the allowlist3570 behaves like a Note mutation that creates a Note3571DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3572DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3573DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3574DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3575DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3576DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3577DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3578DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3579 is expected to change `Note.count` by 13581 behaves like a Note mutation when the given resource id is not for a Noteable3582 behaves like a Note mutation that does not create a Note3583 is expected not to change `Note.count`3584 behaves like a mutation that returns top-level errors3585 is expected to include / does not represent an instance of Noteable/3586maven package details3587 a maven package with version3588 behaves like a package detail3589 behaves like a working graphql query3590DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3591DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3592 returns a successful response3593 behaves like matching the package details schema3594DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3595DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3596 matches the JSON schema3597 with pipelines3598 behaves like a working graphql query3599DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3600DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3601 returns a successful response3602 behaves like matching the package details schema3603DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3604DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3605 matches the JSON schema3606 behaves like correct maven metadata3607DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3608DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3609 has the correct metadata3610 behaves like a package with files3611DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3612DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3613 has the right amount of files3614DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3615DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3616 has the basic package files data3617 with package files pending destruction3618DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3619DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3620 does not return them3621 a versionless maven package3622DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3623DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3624 has an empty version3625 behaves like a package detail3626 behaves like a working graphql query3627DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3628DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3629 returns a successful response3630 behaves like matching the package details schema3631DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3632DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3633 matches the JSON schema3634 with pipelines3635 behaves like a working graphql query3636DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3637DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3638 returns a successful response3639 behaves like matching the package details schema3640DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3641DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3642 matches the JSON schema3643 behaves like correct maven metadata3644DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3645DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3646 has the correct metadata3647 behaves like a package with files3648DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3649DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3650 has the right amount of files3651DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3652DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3653 has the basic package files data3654 with package files pending destruction3655DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3656DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.3657 does not return them3658API::Features3659 GET /features3660 returns a 401 for anonymous users3661 returns a 403 for users3662 returns the feature list for admins3663 POST /feature3664 when the feature does not exist3665 returns a 401 for anonymous users3666 returns a 403 for users3667 creates a feature with the given percentage of time if passed an integer3668 creates a feature with the given percentage of time if passed a float3669 creates a feature with the given percentage of actors if passed an integer3670 creates a feature with the given percentage of actors if passed a float3671 when passed value=true3672 creates an enabled feature3673 logs the event3674 creates an enabled feature for the given Flipper group when passed feature_group=perf_team3675 creates an enabled feature for the given user when passed user=username3676 creates an enabled feature for the given user and feature group when passed user=username and feature_group=perf_team3677 when enabling for a project by path3678 when the project exists3679 behaves like enables the flag for the actor3680 sets the feature gate3681 when the project does not exist3682 behaves like does not enable the flag3683 returns the current state of the flag without changes3684 when enabling for a group by path3685 when the group exists3686 behaves like enables the flag for the actor3687 sets the feature gate3688 when the group does not exist3689 behaves like does not enable the flag3690 returns the current state of the flag without changes3691 when enabling for a namespace by path3692 when the user namespace exists3693 behaves like enables the flag for the actor3694 sets the feature gate3695 when the group namespace exists3696 behaves like enables the flag for the actor3697 sets the feature gate3698 when the user namespace does not exist3699 behaves like does not enable the flag3700 returns the current state of the flag without changes3701 when a project namespace exists3702 behaves like does not enable the flag3703 returns the current state of the flag without changes3704 with multiple users3705 behaves like creates an enabled feature for the specified entries3706 is expected to contain exactly {"key"=>"boolean", "value"=>false} and {"key"=>"actors", "value"=>array_including(User:2523, User:2524, User:2525)}3707 when empty value exists between comma3708 behaves like creates an enabled feature for the specified entries3709 is expected to contain exactly {"key"=>"boolean", "value"=>false} and {"key"=>"actors", "value"=>array_including(User:2523)}3710 when one of the users does not exist3711 behaves like does not enable the flag3712 returns the current state of the flag without changes3713 with multiple projects3714 behaves like creates an enabled feature for the specified entries3715 is expected to contain exactly {"key"=>"boolean", "value"=>false} and {"key"=>"actors", "value"=>array_including(Project:1222, Project:1223, Project:1224)}3716 when empty value exists between comma3717 behaves like creates an enabled feature for the specified entries3718 is expected to contain exactly {"key"=>"boolean", "value"=>false} and {"key"=>"actors", "value"=>array_including(Project:1222)}3719 when one of the projects does not exist3720 behaves like does not enable the flag3721 returns the current state of the flag without changes3722 with multiple groups3723 behaves like creates an enabled feature for the specified entries3724 is expected to contain exactly {"key"=>"boolean", "value"=>false} and {"key"=>"actors", "value"=>array_including(Group:4007, Group:4008, Group:4009)}3725 when empty value exists between comma3726 behaves like creates an enabled feature for the specified entries3727 is expected to contain exactly {"key"=>"boolean", "value"=>false} and {"key"=>"actors", "value"=>array_including(Group:4007)}3728 when one of the groups does not exist3729 behaves like does not enable the flag3730 returns the current state of the flag without changes3731 with multiple namespaces3732 behaves like creates an enabled feature for the specified entries3733 is expected to contain exactly {"key"=>"boolean", "value"=>false} and {"key"=>"actors", "value"=>array_including(Namespaces::UserNamespace:4010, Namespaces::UserNamespace:4011, Namespaces::UserNamespace:4012)}3734 when empty value exists between comma3735 behaves like creates an enabled feature for the specified entries3736 is expected to contain exactly {"key"=>"boolean", "value"=>false} and {"key"=>"actors", "value"=>array_including(Namespaces::UserNamespace:4010)}3737 when one of the namespaces does not exist3738 behaves like does not enable the flag3739 returns the current state of the flag without changes3740 mutually exclusive parameters3741 when key and feature_group are provided3742 behaves like fails to set the feature flag3743 returns an error3744 when key and user are provided3745 behaves like fails to set the feature flag3746 returns an error3747 when key and group are provided3748 behaves like fails to set the feature flag3749 returns an error3750 when key and namespace are provided3751 behaves like fails to set the feature flag3752 returns an error3753 when key and project are provided3754 behaves like fails to set the feature flag3755 returns an error3756 when the feature exists3757 when passed value=true3758 enables the feature3759 enables the feature for the given Flipper group when passed feature_group=perf_team3760 enables the feature for the given user when passed user=username3761 when feature is enabled and value=false is passed3762 disables the feature3763 disables the feature for the given Flipper group when passed feature_group=perf_team3764 disables the feature for the given user when passed user=username3765 with a pre-existing percentage of time value3766 updates the percentage of time if passed an integer3767 with a pre-existing percentage of actors value3768 updates the percentage of actors if passed an integer3769 DELETE /feature/:name3770 when the user has no access3771 returns a 401 for anonymous users3772 returns a 403 for users3773 when the user has access3774 returns 204 when the value is not set3775 when the gate value was set3776 deletes an enabled feature3777 logs the event3778Import::BitbucketController3779 GET callback3780 when auth state param is invalid3781 redirects to external auth url3782 when auth state param is valid3783 updates access token3784 passes namespace_id query param to status if provided3785 GET status3786 when token does not exists3787 redirects to authorize url with state included3788 when token is valid3789 returns invalid repos3790 behaves like import controller status3791 returns variables for json request3792 when filtering3793 passes sanitized filter param to bitbucket client3794 POST create3795 returns 200 response when the project is imported successfully3796 returns 422 response when the project could not be imported3797 behaves like project import rate limiter3798 when limit exceeds3799 notifies and redirects user3800 when the repository owner is the Bitbucket user3801 when the Bitbucket user and GitLab user's usernames match3802 takes the current user's namespace3803 when the Bitbucket user and GitLab user's usernames don't match3804 takes the current user's namespace3805 when the Bitbucket user is unauthorized3806 returns unauthorized3807 when the repository owner is not the Bitbucket user3808 when a namespace with the Bitbucket user's username already exists3809 when the namespace is owned by the GitLab user3810 takes the existing namespace3811 when the namespace is not owned by the GitLab user3812 doesn't create a project3813 when a namespace with the Bitbucket user's username doesn't exist3814 when current user can create namespaces3815 creates the namespace3816 takes the new namespace3817 when current user can't create namespaces3818 doesn't create the namespace3819 takes the current user's namespace3820 when exceptions occur3821 for OAuth2 errors3822 behaves like handles exceptions3823 logs an exception3824 for Bitbucket errors3825 behaves like handles exceptions3826 logs an exception3827 user has chosen an existing nested namespace and name for the project3828 takes the selected namespace and name3829 user has chosen a non-existent nested namespaces and name for the project3830 takes the selected namespace and name3831 creates the namespaces3832 new namespace has the right parent3833 user has chosen existent and non-existent nested namespaces and name for the project3834 takes the selected namespace and name3835 creates the namespaces3836 when user can not create projects in the chosen namespace3837 returns 422 response3838API::ResourceMilestoneEvents3839 when eventable is an Issue3840 behaves like resource_milestone_events API3841 GET /projects/:id/issues/:noteable_id/resource_milestone_events3842 returns an array of resource milestone events3843 returns a 404 error when eventable id not found3844 returns 404 when not authorized3845 when there is an event with a milestone which is not visible for requesting user3846 returns the expected events3847 GET /projects/:id/issues/:noteable_id/resource_milestone_events/:event_id3848 returns a resource milestone event by id3849 returns 404 when not authorized3850 returns a 404 error if resource milestone event not found3851 pagination3852 returns the second page3853 when eventable is a Merge Request3854 behaves like resource_milestone_events API3855 GET /projects/:id/merge_requests/:noteable_id/resource_milestone_events3856 returns an array of resource milestone events3857 returns a 404 error when eventable id not found3858 returns 404 when not authorized3859 when there is an event with a milestone which is not visible for requesting user3860 returns the expected events3861 GET /projects/:id/merge_requests/:noteable_id/resource_milestone_events/:event_id3862 returns a resource milestone event by id3863 returns 404 when not authorized3864 returns a 404 error if resource milestone event not found3865 pagination3866 returns the second page3867Projects::ImportsController3868 GET #show3869 when user is not authenticated and the project is public3870 returns 404 response3871 when the user has maintainer rights3872 when repository does not exists3873 renders template3874 sets flash.now if params is present3875 when repository exists3876 when import is in progress3877 renders template3878 sets flash.now if params is present3879 when import failed3880 redirects to new_namespace_project_import_path3881 when import finished3882 when project is a fork3883 redirects to namespace_project_path3884 when project is external3885 redirects to namespace_project_path3886 when continue params is present3887 redirects to internal params[:to]3888 does not redirect to external params[:to]3889 when import never happened3890 redirects to namespace_project_path3891 when project is in group3892 when user has developer access to group and import is in progress3893 when group allows developers to create projects3894 renders template3895 when group prohibits developers to create projects3896 returns 404 response3897 POST #create3898 sets import_url to the project3899API::ProjectTemplates3900 GET /projects/:id/templates/:type3901 returns dockerfiles3902 returns gitignores3903 returns gitlab_ci_ymls3904 returns licenses3905 returns metrics_dashboard_ymls3906 returns issue templates3907 returns merge request templates3908 returns 400 for an unknown template type3909 denies access to an anonymous user on a private project3910 permits access to a developer on a private project3911 behaves like accepts project paths with dots3912 is expected to respond with numeric status code ok3913 GET /projects/:id/templates/licenses3914 returns key and name for the listed licenses3915 behaves like accepts project paths with dots3916 is expected to respond with numeric status code ok3917 GET /projects/:id/templates/:type/:name3918 returns a specific dockerfile3919 returns a specific gitignore3920 returns C++ gitignore3921 returns C++ gitignore for URL-encoded names3922 returns a specific gitlab_ci_yml3923 returns a specific metrics_dashboard_yml3924 returns a specific license3925 returns a specific issue template3926 returns a specific merge request template3927 returns 404 for an unknown specific template3928 returns 404 for an unknown issue template3929 returns 404 for an unknown merge request template3930 denies access to an anonymous user on a private project3931 permits access to a developer on a private project3932 behaves like accepts project paths with dots3933 is expected to respond with numeric status code ok3934 behaves like accepts project paths with dots3935 is expected to respond with numeric status code ok3936 behaves like path traversal attempt3937 rejects invalid filenames3938 behaves like path traversal attempt3939 rejects invalid filenames3940 behaves like path traversal attempt3941 rejects invalid filenames3942 behaves like path traversal attempt3943 rejects invalid filenames3944 behaves like path traversal attempt3945 rejects invalid filenames3946 behaves like path traversal attempt3947 rejects invalid filenames3948 GET /projects/:id/templates/licenses/:key3949 fills placeholders in the license3950 behaves like accepts project paths with dots3951 is expected to respond with numeric status code ok3952API::Ci::SecureFiles3953 GET /projects/:id/secure_files3954 feature flag3955 returns a 503 when the feature flag is disabled3956 returns a 200 when the feature flag is enabled3957 ci_secure_files_read_only feature flag3958 when the flag is enabled3959 returns a 503 when attempting to upload a file3960 returns a 200 when downloading a file3961 when the flag is disabled3962 returns a 201 when uploading a file when the ci_secure_files_read_only feature flag is disabled3963 authenticated user with admin permissions3964 returns project secure files3965 authenticated user with read permissions3966 returns project secure files3967 authenticated user with guest permissions3968 does not return project secure files3969 authenticated user with no permissions3970 does not return project secure files3971 unconfirmed user3972 does not return project secure files3973 unauthenticated user3974 does not return project secure files3975 GET /projects/:id/secure_files/:secure_file_id3976 authenticated user with admin permissions3977 returns project secure file details3978 responds with 404 Not Found if requesting non-existing secure file3979 authenticated user with read permissions3980 returns project secure file details3981 authenticated user with no permissions3982 does not return project secure file details3983 unconfirmed user3984 does not return project secure file details3985 unauthenticated user3986 does not return project secure file details3987 GET /projects/:id/secure_files/:secure_file_id/download3988 authenticated user with admin permissions3989 returns a secure file3990 responds with 404 Not Found if requesting non-existing secure file3991 authenticated user with read permissions3992 returns a secure file3993 authenticated user with no permissions3994 does not return project secure file details3995 unconfirmed user3996 does not return project secure file details3997 unauthenticated user3998 does not return project secure file details3999 POST /projects/:id/secure_files4000 authenticated user with admin permissions4001 creates a secure file4002 uploads and downloads a secure file4003 returns an error when the file checksum fails to validate4004 returns an error when no file is uploaded4005 returns an error when the file name is missing4006 returns an error when the file name has already been used4007 returns an error when an unexpected validation failure happens4008 returns a 413 error when the file size is too large4009 authenticated user with read permissions4010 does not create a secure file4011 authenticated user with no permissions4012 does not create a secure file4013 unconfirmed user4014 does not create a secure file4015 unauthenticated user4016 does not create a secure file4017 DELETE /projects/:id/secure_files/:secure_file_id4018 authenticated user with admin permissions4019 deletes the secure file4020 responds with 404 Not Found if requesting non-existing secure_file4021 authenticated user with read permissions4022 does not delete the secure_file4023 authenticated user with no permissions4024 does not delete the secure_file4025 unconfirmed user4026 does not delete the secure_file4027 unauthenticated user4028 does not delete the secure_file4029Oauth::ApplicationsController4030 project members4031 GET #new4032 is expected to respond with numeric status code ok4033 behaves like redirects to login page when the user is not signed in4034 is expected to redirect to "/users/sign_in"4035 behaves like redirects to 2fa setup page when the user requires it4036 when 2fa is set up on application level4037 is expected to redirect to "/-/profile/two_factor_auth"4038 when 2fa is set up on group level4039 is expected to redirect to "/-/profile/two_factor_auth"4040 DELETE #destroy4041 is expected to redirect to "http://test.host/oauth/applications"4042 behaves like redirects to login page when the user is not signed in4043 is expected to redirect to "/users/sign_in"4044 behaves like redirects to 2fa setup page when the user requires it4045 when 2fa is set up on application level4046 is expected to redirect to "/-/profile/two_factor_auth"4047 when 2fa is set up on group level4048 is expected to redirect to "/-/profile/two_factor_auth"4049 GET #edit4050 is expected to respond with numeric status code ok4051 behaves like redirects to login page when the user is not signed in4052 is expected to redirect to "/users/sign_in"4053 behaves like redirects to 2fa setup page when the user requires it4054 when 2fa is set up on application level4055 is expected to redirect to "/-/profile/two_factor_auth"4056 when 2fa is set up on group level4057 is expected to redirect to "/-/profile/two_factor_auth"4058 PUT #update4059 is expected to redirect to "http://test.host/oauth/applications/42"4060 behaves like redirects to login page when the user is not signed in4061 is expected to redirect to "/users/sign_in"4062 behaves like redirects to 2fa setup page when the user requires it4063 when 2fa is set up on application level4064 is expected to redirect to "/-/profile/two_factor_auth"4065 when 2fa is set up on group level4066 is expected to redirect to "/-/profile/two_factor_auth"4067 GET #show4068 is expected to respond with numeric status code ok4069 behaves like redirects to login page when the user is not signed in4070 is expected to redirect to "/users/sign_in"4071 behaves like redirects to 2fa setup page when the user requires it4072 when 2fa is set up on application level4073 is expected to redirect to "/-/profile/two_factor_auth"4074 when 2fa is set up on group level4075 is expected to redirect to "/-/profile/two_factor_auth"4076 GET #index4077 is expected to respond with numeric status code ok4078 when OAuth applications are disabled4079 is expected to respond with numeric status code ok4080 behaves like redirects to login page when the user is not signed in4081 is expected to redirect to "/users/sign_in"4082 behaves like redirects to 2fa setup page when the user requires it4083 when 2fa is set up on application level4084 is expected to redirect to "/-/profile/two_factor_auth"4085 when 2fa is set up on group level4086 is expected to redirect to "/-/profile/two_factor_auth"4087 POST #create4088 creates an application4089 redirects back to profile page if OAuth applications are disabled4090 when redirect_uri is invalid4091 shows an error for a forbidden URI4092 when scopes are not present4093 shows an error for blank scopes4094 when scopes are invalid4095 shows an error for invalid scopes4096 behaves like redirects to login page when the user is not signed in4097 is expected to redirect to "/users/sign_in"4098 behaves like redirects to 2fa setup page when the user requires it4099 when 2fa is set up on application level4100 is expected to redirect to "/-/profile/two_factor_auth"4101 when 2fa is set up on group level4102 is expected to redirect to "/-/profile/two_factor_auth"4103 Helpers4104 current_user_mode available4105 includes Two-factor enforcement concern4106 locale4107 sets user's locale4108Projects::Releases::EvidencesController4109 GET #show4110 when the user is a developer4111 returns the correct evidence summary as a json4112 when the release was created before evidence existed4113 behaves like not found4114 renders 4044115 when the user is a guest for the project4116 when the project is private4117 behaves like not found4118 renders 4044119 when the project is public4120 behaves like successful request4121 renders a 2004122 when release is associated to a milestone which includes an issue4123 when user is non-project member4124 behaves like does not show the issue in evidence4125 is expected to eq true4126 when project is private4127 behaves like evidence not found4128 is expected to respond with numeric status code not_found4129 when project restricts the visibility of issues to project members only4130 behaves like evidence not found4131 is expected to respond with numeric status code not_found4132 when user is auditor4133 behaves like does not show the issue in evidence4134 is expected to eq true4135 when project is private4136 behaves like does not show the issue in evidence4137 is expected to eq true4138 when project restricts the visibility of issues to project members only4139 behaves like does not show the issue in evidence4140 is expected to eq true4141 when external authorization control is enabled4142 behaves like evidence not found4143 is expected to respond with numeric status code not_found4144getting dependency proxy manifests in a group4145 returns the total count of manifests4146 behaves like a working graphql query4147 returns a successful response4148 with different permissions4149 group_visibility: :private, role: :maintainer, access_granted: true4150 return the proper response4151 group_visibility: :private, role: :developer, access_granted: true4152 return the proper response4153 group_visibility: :private, role: :reporter, access_granted: true4154 return the proper response4155 group_visibility: :private, role: :guest, access_granted: true4156 return the proper response4157 group_visibility: :private, role: :anonymous, access_granted: false4158 return the proper response4159 group_visibility: :public, role: :maintainer, access_granted: true4160 return the proper response4161 group_visibility: :public, role: :developer, access_granted: true4162 return the proper response4163 group_visibility: :public, role: :reporter, access_granted: true4164 return the proper response4165 group_visibility: :public, role: :guest, access_granted: true4166 return the proper response4167 group_visibility: :public, role: :anonymous, access_granted: false4168 return the proper response4169 limiting the number of manifests4170 only returns N manifests4171 sorting and pagination4172 with default sorting4173 behaves like sorted paginated query4174 behaves like requires variables4175 shared example requires variables to be set4177 when sorting4178 sorts correctly4179 when paginating4180 paginates correctly4181Projects::MergeRequests::ContentController4182 user has access to the project4183 GET cached_widget4184 renders widget MR entity as json4185 closes an MR with moved source project4186 GET widget4187 checks whether the MR can be merged4188 merged merge request4189 renders widget MR entity as json4190 with coverage data4191 renders widget MR entity as json4192 user does not have access to the project4193 GET cached_widget4194 returns 4044195 GET widget4196 returns 4044197Import::GitlabGroupsController4198 POST create4199 when importing without a parent group4200 successfully creates the group4201/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil4202 imports the group data4203 when importing to a parent group4204 creates a new group under the parent4205 when the parent is Public4206 imports a Public group4207 when the parent is Internal4208 imports a Internal group4209 when the parent is Private4210 imports a Private group4211 when supplied invalid params4212 responds with an error4213 when the user is not authorized to create groups4214 returns an error4215 when the requests exceed the rate limit4216 throttles the requests4217 when the parent group is invalid4218 does not create a new group4219 when the user is not an owner of the parent group4220 returns an error4221 POST authorize4222 behaves like handle uploads authorize request4223 POST authorize4224 authorizes workhorse header4225 rejects requests that bypassed gitlab-workhorse4226 when using remote storage4227 when direct upload is enabled4228 responds with status 200, location of file remote store and object details4229 when direct upload is disabled4230 handles as a local file4231Groups::Crm::ContactsController4232 GET #index4233 behaves like ok response with index template if authorized4234 private group4235 with authorized user4236 when crm_enabled is true4237 behaves like ok response with index template4238 renders the index template4239 when crm_enabled is false4240 behaves like response with 404 status4241 returns 4044242 when subgroup4243 behaves like response with 404 status4244 returns 4044245 with unauthorized user4246 behaves like response with 404 status4247 returns 4044248 with anonymous user4249 blah4250 public group4251 with anonymous user4252 behaves like response with 404 status4253 returns 4044254 GET #new4255 behaves like ok response with index template if authorized4256 private group4257 with authorized user4258 when crm_enabled is true4259 behaves like ok response with index template4260 renders the index template4261 when crm_enabled is false4262 behaves like response with 404 status4263 returns 4044264 when subgroup4265 behaves like response with 404 status4266 returns 4044267 with unauthorized user4268 behaves like response with 404 status4269 returns 4044270 with anonymous user4271 blah4272 public group4273 with anonymous user4274 behaves like response with 404 status4275 returns 4044276 GET #edit4277 behaves like ok response with index template if authorized4278 private group4279 with authorized user4280 when crm_enabled is true4281 behaves like ok response with index template4282 renders the index template4283 when crm_enabled is false4284 behaves like response with 404 status4285 returns 4044286 when subgroup4287 behaves like response with 404 status4288 returns 4044289 with unauthorized user4290 behaves like response with 404 status4291 returns 4044292 with anonymous user4293 blah4294 public group4295 with anonymous user4296 behaves like response with 404 status4297 returns 4044298Git LFS File Locking API4299 Create File Lock endpoint4300 when user does not have download permission4301 returns a 404 response4302 when user does not have upload permission4303 returns a 403 response4304 with an existent lock4305 return an error message4306 returns the existen lock4307 without an existent lock4308 creates the lock4309 Listing File Locks endpoint4310 returns the list of locked files4311 when user does not have download permission4312 returns a 404 response4313 when user does not have upload permission4314 returns a 403 response4315 List File Locks for verification endpoint4316 returns the list of locked files grouped by owner4317 when user does not have download permission4318 returns a 404 response4319 when user does not have upload permission4320 returns a 403 response4321 Delete File Lock endpoint4322 when user does not have download permission4323 returns a 404 response4324 when user does not have upload permission4325 returns a 403 response4326 with an existent lock4327 deletes the lock4328 returns the deleted lock4329 when a maintainer uses force4330 deletes the lock4331API::Internal::Kubernetes4332 POST /internal/kubernetes/usage_metrics4333 not authenticated4334 returns 4014335 kubernetes_agent_internal_api feature flag disabled4336 returns 4044337 is authenticated for an agent4338 returns no_content for valid events4339 returns no_content for counts of zero4340 returns 400 for non number4341 returns 400 for negative number4342 POST /internal/kubernetes/agent_configuration4343 not authenticated4344 returns 4014345 kubernetes_agent_internal_api feature flag disabled4346 returns 4044347 agent exists4348 configures the agent and returns a 2044349 agent does not exist4350 returns a 4044351 GET /internal/kubernetes/agent_info4352 returns 401 if Authorization header not sent4353 returns 401 if Authorization is for non-existent agent4354 not authenticated4355 returns 4014356 kubernetes_agent_internal_api feature flag disabled4357 returns 4044358 an agent is found4359 tracks token usage4360 returns expected data4361Projects::Analytics::CycleAnalytics::StagesController4362 GET index4363 behaves like project-level value stream analytics endpoint4364 succeeds4365 exposes the default stages4366 when list service fails4367 renders 4034368 behaves like project-level value stream analytics request error examples4369 when invalid value stream id is given4370 renders 4044371 when user is not member of the project4372 renders 4044373 GET median4374 behaves like project-level value stream analytics endpoint4375 succeeds4376 returns the median4377 behaves like project-level value stream analytics request error examples4378 when invalid value stream id is given4379 renders 4044380 when user is not member of the project4381 renders 4044382 GET average4383 behaves like project-level value stream analytics endpoint4384 succeeds4385 returns the average4386 behaves like project-level value stream analytics request error examples4387 when invalid value stream id is given4388 renders 4044389 when user is not member of the project4390 renders 4044391 GET count4392 behaves like project-level value stream analytics endpoint4393 succeeds4394 returns the count4395 behaves like project-level value stream analytics request error examples4396 when invalid value stream id is given4397 renders 4044398 when user is not member of the project4399 renders 4044400 GET records4401 behaves like project-level value stream analytics endpoint4402 succeeds4403 returns the records4404 behaves like project-level value stream analytics request error examples4405 when invalid value stream id is given4406 renders 4044407 when user is not member of the project4408 renders 4044409Query.project(fullPath).issue(iid)4410 .designCollection4411 .design4412 behaves like being able to fetch a design-like object by ID4413 the ID is passed4414 retrieves the object4415 the user is unauthorized4416 behaves like a failure to find anything4417 finds nothing4418 without parameters4419 raises an error4420 attempting to retrieve an object from a different issue4421 behaves like a failure to find anything4422 finds nothing4423 behaves like being able to fetch a design-like object by ID4424 the ID is passed4425 retrieves the object4426 the user is unauthorized4427 behaves like a failure to find anything4428 finds nothing4429 without parameters4430 raises an error4431 attempting to retrieve an object from a different issue4432 behaves like a failure to find anything4433 finds nothing4434 .version4435 no parameters4436 raises an error4437 (sha: STRING_TYPE)4438 behaves like a successful query for a version4439 finds the version4440 (id: ID_TYPE)4441 behaves like a successful query for a version4442 finds the version4443 .designAtVersion4444 behaves like being able to fetch a design-like object by ID4445 the ID is passed4446DEPRECATION WARNING: using BatchLoader.for in GraphQL is deprecated. Use BatchLoader::GraphQL.for instead or return BatchLoader::GraphQL.wrap from your resolver.4447 retrieves the object4448 the user is unauthorized4449 behaves like a failure to find anything4450 finds nothing4451 without parameters4452 raises an error4453 attempting to retrieve an object from a different issue4454 behaves like a failure to find anything4455 finds nothing4456doorkeeper access4457 unauthenticated4458 returns authentication success4459 allows user authenticating from the same ip4460 blocks user authenticating from two distinct ips4461 when token invalid4462 returns authentication error4463 authorization by OAuth token4464 returns authentication success4465 allows user authenticating from the same ip4466 blocks user authenticating from two distinct ips4467 when user is blocked4468 behaves like forbidden request4469 returns 403 response4470 when user is ldap_blocked4471 behaves like forbidden request4472 returns 403 response4473 when user is deactivated4474 behaves like forbidden request4475 returns 403 response4476 when user is blocked pending approval4477 behaves like forbidden request4478 returns 403 response4479getting dependency proxy blobs in a group4480 returns the total count of blobs4481 returns the total size4482 behaves like a working graphql query4483 returns a successful response4484 with different permissions4485 group_visibility: :private, role: :maintainer, access_granted: true4486 return the proper response4487 group_visibility: :private, role: :developer, access_granted: true4488 return the proper response4489 group_visibility: :private, role: :reporter, access_granted: true4490 return the proper response4491 group_visibility: :private, role: :guest, access_granted: true4492 return the proper response4493 group_visibility: :private, role: :anonymous, access_granted: false4494 return the proper response4495 group_visibility: :public, role: :maintainer, access_granted: true4496 return the proper response4497 group_visibility: :public, role: :developer, access_granted: true4498 return the proper response4499 group_visibility: :public, role: :reporter, access_granted: true4500 return the proper response4501 group_visibility: :public, role: :guest, access_granted: true4502 return the proper response4503 group_visibility: :public, role: :anonymous, access_granted: false4504 return the proper response4505 limiting the number of blobs4506 only returns N blobs4507Admin::RunnersController4508 #index4509 renders index template4510 #show4511 shows a runner show page4512 #edit4513 shows a runner edit page4514 shows 404 for unknown runner4515 avoids N+1 queries4516 #update4517 with update succeeding4518 updates the runner and ticks the queue4519 with update failing4520 does not update runner or tick the queue4521 #destroy4522 destroys the runner4523 #resume4524 marks the runner as active and ticks the queue4525 #pause4526 marks the runner as inactive and ticks the queue4527 GET #runner_setup_scripts4528 renders the setup scripts4529 renders errors if they occur4530Setting locked status of a merge request4531 returns an error if the user is not allowed to update the merge request4532 marks the merge request as WIP4533 does not do anything if the merge request was already locked4534 when passing locked false as input4535 does not do anything if the merge request was not marked locked4536 unmarks the merge request as locked4537JiraConnect::SubscriptionsController4538 #index4539 without JWT4540 returns 4034541 with valid JWT4542 returns 2004543 removes X-Frame-Options to allow rendering in iframe4544 with JSON format4545 renders the relevant data as JSON4546 when not signed in to GitLab4547 contains a login path4548 when signed in to GitLab4549 does not contain a login path4550 with context qsh4551 is expected to respond with numeric status code ok4552 #create4553 without JWT4554 returns 4034555 with valid JWT4556 signed in to GitLab4557 dev panel integration is available4558 creates a subscription4559 returns 2004560 when the Jira user is not a site-admin4561 returns forbidden4562 not signed in to GitLab4563 returns 4014564 #destroy4565 without JWT4566 returns 4034567 with valid JWT4568 deletes the subscription4569 when the Jira user is not a site admin4570 does not delete the subscription4571API::ErrorTracking::ClientKeys4572 GET /projects/:id/error_tracking/client_keys4573 behaves like endpoint with authorization4574 when unauthenticated4575 is expected to respond with numeric status code unauthorized4576 when authenticated as non-maintainer4577 is expected to respond with numeric status code forbidden4578 when authenticated as maintainer4579 returns client keys4580 POST /projects/:id/error_tracking/client_keys4581 behaves like endpoint with authorization4582 when unauthenticated4583 is expected to respond with numeric status code unauthorized4584 when authenticated as non-maintainer4585 is expected to respond with numeric status code forbidden4586 when authenticated as maintainer4587 returns a newly created client key4588 DELETE /projects/:id/error_tracking/client_keys/:key_id4589 behaves like endpoint with authorization4590 when unauthenticated4591 is expected to respond with numeric status code unauthorized4592 when authenticated as non-maintainer4593 is expected to respond with numeric status code forbidden4594 when authenticated as maintainer4595 returns a correct status4596 returns specific fields using the entity4597ProductAnalyticsTracking4598 when user is logged in4599 tracks the event4600 tracks the event if DNT is not enabled4601 does not track the event if DNT is enabled4602 does not track the event if the format is not HTML4603 does not track the event if a custom condition returns false4604 does not track the event for untracked actions4605 when FF is disabled4606 doesnt track snowplow event4607 when user is not logged in4608 tracks the event when there is a visitor id4609 when user is not logged in and there is no visitor_id4610 does not track the event4611 tracks the event when there is custom id4612 does not track the HLL event when there is no custom id4613Projects::GoogleCloudController4614 GET index4615 when a public request is made4616 returns not found4617 when a project.guest makes request4618 returns not found4619 when project.developer makes request4620 returns not found4621 when project.maintainer makes request4622 returns successful4623 when project.creator makes request4624 returns successful4625 when authorized user makes request4626 but gitlab instance is not configured for google oauth24627 returns forbidden4628 but feature flag is disabled4629 returns not found4630 but google oauth2 token is not valid4631 does not return revoke oauth url4632Setting milestone of a merge request4633 returns an error if the user is not allowed to update the merge request4634 sets the merge request milestone4635 when passing milestone_id nil as input4636 removes the merge request milestone4637API::Version4638 with graphql enabled4639 when unauthenticated4640 returns authentication error4641 when authenticated as user4642 returns the version information4643 when authenticated with token4644 with api scope4645 returns the version information4646 returns "200" response on head requests4647 with read_user scope4648 returns the version information4649 returns "200" response on head requests4650 with neither api nor read_user scope4651 returns authorization error4652 with graphql disabled4653 when unauthenticated4654 returns authentication error4655 when authenticated as user4656 returns the version information4657 when authenticated with token4658 with api scope4659 returns the version information4660 returns "200" response on head requests4661 with read_user scope4662 returns the version information4663 returns "200" response on head requests4664 with neither api nor read_user scope4665 returns authorization error4666GoogleApi::AuthorizationsController4667 GET|POST #callback4668 session key is present4669 session key matches state param4670 sets token and expires_at in session4671 redirects to the URL stored in state param4672 session key does not match state param4673 behaves like access denied4674 returns a 4044675 state param is blank4676 behaves like access denied4677 returns a 4044678 when a Faraday exception occurs4679 sets a flash alert on Faraday::TimeoutError4680 sets a flash alert on Faraday::ConnectionFailed4681 state param is present, but session key is blank4682 behaves like access denied4683 returns a 4044684 user logs in but declines authorizations4685 redirects to error uri4686Mutations::Boards::Lists::Destroy4687 behaves like board lists destroy request4688 when the user does not have permission4689 does not destroy the list4690 returns an error4691 when the user has permission4692 when given id is not for a list4693 returns an error4694 when list does not exist4695 returns a top level error4696 when everything is ok4697 destroys the list4698 returns an empty list4699 when the list is not destroyable4700 behaves like does not destroy the list and returns an error4701 does not destroy the list4702 returns an error and not nil list4703Emails::AdminNotification4704 adds email methods to Notify4705 user_auto_banned_email4706 is sent to the administrator4707 has the correct subject4708 includes the name of the user4709 includes the scope of the ban4710 includes the reason4711 includes a link to unban the user4712 includes a link to change the settings4713 includes the email reason4714 behaves like an email sent from GitLab4715 has the characteristics of an email sent from GitLab4716 behaves like it should not have Gmail Actions links4717 is expected not to have body including "ViewAction"4718 behaves like a user cannot unsubscribe through footer link4719 does not have a List-Unsubscribe header or a body link4720 behaves like appearance header and footer enabled4721 contains header and footer4722 behaves like appearance header and footer not enabled4723 does not contain header and footer4724 when scoped to a group4725 includes the scope of the ban4726moving designs4727 the user is not allowed to move designs4728 returns an error4729 the neighbors do not have positions4730 maintains the correct order in the presence of other unpositioned designs4731 behaves like a successful move4732 does not error, and reports the current order4733 moving a design between two others4734 behaves like a successful move4735 does not error, and reports the current order4736 moving a design to the start4737 behaves like a successful move4738 does not error, and reports the current order4739 moving a design to the end4740 behaves like a successful move4741 does not error, and reports the current order4742Query.ciConfig4743 returns the correct structure4744 behaves like a working graphql query4745 returns a successful response4746 when the config file includes other files4747 returns the correct structure with included files4748 behaves like a working graphql query4749 returns a successful response4750 when the config file has multiple includes4751 returns correct includes4752 behaves like a working graphql query4753 returns a successful response4754RootController4755 GET index4756 when user is not logged in4757 redirects to the sign-in page4758 when a custom home page URL is defined4759 redirects the user to the custom home page URL4760 with a user4761 who has customized their dashboard setting for starred projects4762 redirects to their specified dashboard4763 who has customized their dashboard setting for project activities4764 redirects to the activity list4765 who has customized their dashboard setting for starred project activities4766 redirects to the activity list4767 who has customized their dashboard setting for followed user activities4768 redirects to the activity list4769 who has customized their dashboard setting for groups4770 redirects to their group list4771 who has customized their dashboard setting for todos4772 redirects to their todo list4773 who has customized their dashboard setting for assigned issues4774 redirects to their assigned issues4775 who has customized their dashboard setting for assigned merge requests4776 redirects to their assigned merge requests4777 who uses the default dashboard setting4778 renders the default dashboard4779Projects::BlameController4780 GET show4781 valid branch, valid file4782 is expected to respond with 2004783 valid branch, invalid file4784 redirects4785 invalid branch, valid file4786 is expected to respond with 4044787Boards::ListsController4788 #index4789 does not have N+1 queries4790getting a list of work item types for a project4791 when user has access to the project4792 returns all default work item types4793 behaves like a working graphql query4794 returns a successful response4795 when user doesn't have access to the project4796 does not return the project4797 when the work_items feature flag is disabled4798 returns null4799Creating a new HTTP Integration4800 behaves like creating a new HTTP integration4801 creates a new integration4802 without required argument project_path4803 behaves like an invalid argument to the mutation4804 behaves like a mutation that returns top-level errors4805 is expected to contain exactly (include "invalid value for projectPath")4806 without required argument active4807 behaves like an invalid argument to the mutation4808 behaves like a mutation that returns top-level errors4809 is expected to contain exactly (include "invalid value for active")4810 without required argument name4811 behaves like an invalid argument to the mutation4812 behaves like a mutation that returns top-level errors4813 is expected to contain exactly (include "invalid value for name")4814Admin::DashboardController4815 #index4816 retrieves Redis versions4817 with pending_delete projects4818 does not retrieve projects that are pending deletion4819Groups::Settings::RepositoryController4820 POST create_deploy_token4821 when ajax_new_deploy_token feature flag is disabled for the project4822 behaves like a created deploy token4823 creates deploy token4824 when no scope is selected4825 creates a variable with a errored deploy token4826 when ajax_new_deploy_token feature flag is enabled for the project4827 a good request4828 creates the deploy token4829 a bad request4830 does not create the deploy token4831 an invalid request4832 raises a validation error4833AbuseReportMailer4834 .notify4835 behaves like appearance header and footer enabled4836 contains header and footer4837 behaves like appearance header and footer not enabled4838 does not contain header and footer4839 with abuse_notification_email set4840 sends to the abuse_notification_email4841 includes the user in the subject4842 with no abuse_notification_email set4843 returns early4844API::Ci::Runner4845 /api/v4/runners4846 POST /api/v4/runners/verify4847 when no token is provided4848 returns 400 error4849 when invalid token is provided4850 returns 403 error4851 when valid token is provided4852 verifies Runner credentials4853 behaves like storing arguments in the application context for the API4854 places the expected params in the application context4855 when non-expired token is provided4856 verifies Runner credentials4857 when expired token is provided4858 does not verify Runner credentials4859Query.group(fullPath).ciVariables4860 when the user can administer the group4861 returns the group's CI variables4862 when the user cannot administer the group4863 returns nothing4864JiraConnect::InstallationsController4865 GET /-/jira_connect/installations4866 without JWT4867 returns 4034868 with valid JWT4869 returns status ok4870 returns the installation as json4871 with instance_url4872 returns the installation as json4873 PUT /-/jira_connect/installations4874 without JWT4875 returns 4034876 with valid JWT4877 returns 2004878 updates the instance_url4879 invalid URL4880 returns 422 and errors4881A Todoable that implements the CurrentUserTodos interface4882 returns todos of the current user4883 does not return todos of another user4884 does not error when there is no logged in user4885 when `state` argument is `pending`4886 returns just the pending todo4887 when `state` argument is `done`4888 returns just the done todo4889Performance Bar for API requests4890 with user that has access to the performance bar4891 when cookie is set to true4892 stores performance data4893 when cookie is missing4894 does not store performance data4895 with user that does not have access to the performance bar4896 does not store performance data4897Delete a cluster agent4898 without project permissions4899 does not delete cluster agent4900 behaves like a mutation that returns top-level errors4901 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"4902 with project permissions4903 deletes a cluster agent4904Toggling the resolve status of a discussion4905 when the user does not have permission4906 behaves like a mutation that returns a top-level access error4907 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"4908 when user has permission4909 returns the discussion without errors4910 when an error is encountered4911 behaves like a mutation that returns errors in the response4912 is expected to contain exactly "Discussion failed to be resolved"4913Projects::GrafanaApiController4914 GET #proxy4915 with a successful result4916 returns a grafana datasource response4917 when the request is still unavailable4918 returns 204 no content4919 when an error has occurred4920 with an error accessing grafana4921 behaves like error response4922 returns service_unavailable4923 with a processing error4924 behaves like error response4925 returns bad_request4926 GET #metrics_dashboard4927 when the result is still processing4928 returns 204 no content4929 when the result was successful4930 returns the dashboard response4931 when an error has occurred4932 with an error accessing grafana4933 behaves like error response4934 returns service_unavailable4935 with a processing error4936 behaves like error response4937 returns bad_request4938API::BulkImports4939 GET /bulk_imports4940 returns a list of bulk imports authored by the user4941 sort parameter4942 sorts by created_at descending by default4943 sorts by created_at descending when explicitly specified4944 sorts by created_at ascending when explicitly specified4945 POST /bulk_imports4946 starts a new migration4947 when provided url is blocked4948 returns blocked url error4949 GET /bulk_imports/entities4950 returns a list of all import entities authored by the user4951 GET /bulk_imports/:id4952 returns specified bulk import4953 GET /bulk_imports/:id/entities4954 returns specified bulk import entities with failures4955 GET /bulk_imports/:id/entities/:entity_id4956 returns specified bulk import entity4957 when user is unauthenticated4958 returns 4014959JiraConnect::OauthApplicationIdsController4960 GET /-/jira_connect/oauth_application_id4961 renders the jira connect application id4962 application ID is empty4963 renders not found4964 when jira_connect_oauth_self_managed disabled4965 renders not found4966Projects::ProductAnalyticsController4967 GET #index4968 renders index with 200 status code4969 with an anonymous user4970 redirects to sign-in page4971 feature flag disabled4972 returns not found4973 GET #test4974 renders test with 200 status code4975 GET #setup4976 renders setup with 200 status code4977 GET #graphs4978 renders graphs with 200 status code4979 feature flag disabled4980 returns not found4981API::Ci::Runner4982 /api/v4/runners4983 DELETE /api/v4/runners4984 when no token is provided4985 returns 400 error4986 when invalid token is provided4987 returns 403 error4988 when valid token is provided4989 deletes Runner4990 behaves like 412 response4991 for a modified ressource4992 returns 412 with a JSON error4993 for an unmodified ressource4994 returns 204 with an empty body4995 behaves like storing arguments in the application context for the API4996 places the expected params in the application context4997Removing an incident timeline event4998 removes incident timeline event4999ProductAnalytics::CollectorApp5000 correct event params5001 repond with 2005002 feature disabled5003 behaves like not found5004 repond with 4045005 empty event params5006 behaves like not found5007 repond with 4045008 invalid project id in params5009 behaves like not found5010 repond with 4045011Oauth::AuthorizedApplicationsController5012 includes Two-factor enforcement concern5013 GET #index5014 responds with 4045015 DELETE #destroy5016 revokes both access grants and tokens5017getting namespace package settings in a namespace5018 behaves like a working graphql query5019 returns a successful response5020 matches the JSON schema5021GroupMember5022 behaves like a working graphql query5023 returns a successful response5024 behaves like a working membership object query5025 contains edge to expected project5026 contains correct access level5027API::ContainerRegistryEvent5028 POST /container_registry_event/events5029 returns 200 status and events are passed to event handler5030 returns 401 error status when token is invalid5031 when the event should update project statistics5032 enqueues a project statistics update twice5033Profiles::KeysController5034 POST #create5035 creates a new key5036 with FIPS mode5037 creates a new key without MD5 fingerprint5038PagerDuty webhook5039 POST /incidents/pagerduty5040 calls PagerDuty webhook processor with correct parameters5041 responds with 202 Accepted5042Admin::PlanLimitsController5043 POST create5044 with an authenticated admin user5045 updates the plan limits5046 without admin access5047 returns `not_found`5048Oauth::TokensController5049 includes Two-factor enforcement concern5050Knapsack report was generated. Preview:5051{5052 "spec/requests/git_http_spec.rb": 356.20230201100094,5053 "spec/requests/api/repositories_spec.rb": 269.4061358760009,5054 "spec/controllers/admin/application_settings_controller_spec.rb": 213.41375435599912,5055 "spec/requests/api/issues/get_project_issues_spec.rb": 148.44225060700046,5056 "spec/requests/api/files_spec.rb": 165.0481540439996,5057 "spec/controllers/boards/issues_controller_spec.rb": 97.01234604700039,5058 "spec/requests/api/issues/issues_spec.rb": 63.312576590999015,5059 "spec/controllers/groups/milestones_controller_spec.rb": 77.71814237499893,5060 "spec/requests/api/ci/jobs_spec.rb": 49.72019974000068,5061 "spec/controllers/import/github_controller_spec.rb": 45.39708104300007,5062 "spec/requests/api/deployments_spec.rb": 58.08408392700039,5063 "spec/controllers/import/gitea_controller_spec.rb": 34.15066620300058,5064 "spec/requests/openid_connect_spec.rb": 33.07617464099894,5065 "spec/requests/api/terraform/state_version_spec.rb": 40.973079885001425,5066 "spec/requests/api/pages/public_access_spec.rb": 32.03133240600073,5067 "spec/requests/api/group_milestones_spec.rb": 19.19829795499936,5068 "spec/controllers/projects/starrers_controller_spec.rb": 24.94971222500135,5069 "spec/requests/health_controller_spec.rb": 16.520598274000804,5070 "spec/controllers/admin/integrations_controller_spec.rb": 13.8103109879994,5071 "spec/requests/api/graphql/mutations/notes/create/diff_note_spec.rb": 27.51724829200066,5072 "spec/requests/api/graphql/packages/maven_spec.rb": 19.124900095999692,5073 "spec/requests/api/features_spec.rb": 8.89762689700001,5074 "spec/controllers/import/bitbucket_controller_spec.rb": 20.451360078001017,5075 "spec/requests/api/resource_milestone_events_spec.rb": 15.809505334998903,5076 "spec/controllers/projects/imports_controller_spec.rb": 14.252400319001026,5077 "spec/requests/api/project_templates_spec.rb": 10.00449454399859,5078 "spec/requests/api/ci/secure_files_spec.rb": 8.102959441999701,5079 "spec/controllers/oauth/applications_controller_spec.rb": 8.062480237998898,5080 "spec/controllers/projects/releases/evidences_controller_spec.rb": 17.248276649999752,5081 "spec/requests/api/graphql/group/dependency_proxy_manifests_spec.rb": 8.688582770000721,5082 "spec/controllers/projects/merge_requests/content_controller_spec.rb": 12.142477989000326,5083 "spec/requests/import/gitlab_groups_controller_spec.rb": 8.14075589499953,5084 "spec/requests/groups/crm/contacts_controller_spec.rb": 7.409124689998862,5085 "spec/requests/lfs_locks_api_spec.rb": 11.506420229001378,5086 "spec/requests/api/internal/kubernetes_spec.rb": 5.822929648000354,5087 "spec/controllers/projects/analytics/cycle_analytics/stages_controller_spec.rb": 5.5217535459996725,5088 "spec/requests/api/graphql/project/issue_spec.rb": 7.3465863299989,5089 "spec/requests/api/doorkeeper_access_spec.rb": 8.339833013998941,5090 "spec/requests/api/graphql/group/dependency_proxy_blobs_spec.rb": 8.255048877999798,5091 "spec/controllers/admin/runners_controller_spec.rb": 4.068111864000457,5092 "spec/requests/api/graphql/mutations/merge_requests/set_locked_spec.rb": 9.674829224999485,5093 "spec/controllers/jira_connect/subscriptions_controller_spec.rb": 4.8258705450007255,5094 "spec/requests/api/error_tracking/client_keys_spec.rb": 3.3061498229999415,5095 "spec/controllers/concerns/product_analytics_tracking_spec.rb": 5.7839787140001135,5096 "spec/requests/projects/google_cloud_controller_spec.rb": 4.066571013001521,5097 "spec/requests/api/graphql/mutations/merge_requests/set_milestone_spec.rb": 4.954452444000708,5098 "spec/requests/api/version_spec.rb": 2.539108363000196,5099 "spec/controllers/google_api/authorizations_controller_spec.rb": 1.4087275590009085,5100 "spec/requests/api/graphql/mutations/boards/lists/destroy_spec.rb": 4.5570366169995395,5101 "spec/mailers/emails/admin_notification_spec.rb": 2.830703607000032,5102 "spec/requests/api/graphql/mutations/design_management/move_spec.rb": 2.5230217460011772,5103 "spec/requests/api/graphql/ci/config_spec.rb": 4.277900589999263,5104 "spec/controllers/root_controller_spec.rb": 3.3310787589998654,5105 "spec/controllers/projects/blame_controller_spec.rb": 5.324081056998693,5106 "spec/requests/boards/lists_controller_spec.rb": 3.2811911959997815,5107 "spec/requests/api/graphql/project/work_item_types_spec.rb": 1.9167972799987183,5108 "spec/requests/api/graphql/mutations/alert_management/http_integration/create_spec.rb": 1.8489614909994998,5109 "spec/controllers/admin/dashboard_controller_spec.rb": 1.4571693819998472,5110 "spec/controllers/groups/settings/repository_controller_spec.rb": 3.3282922689995758,5111 "spec/mailers/abuse_report_mailer_spec.rb": 1.8448598819995823,5112 "spec/requests/api/ci/runner/runners_verify_post_spec.rb": 0.9237883360001433,5113 "spec/requests/api/graphql/ci/group_variables_spec.rb": 1.450863603000471,5114 "spec/requests/jira_connect/installations_controller_spec.rb": 1.6027182990001165,5115 "spec/requests/api/graphql/current_user_todos_spec.rb": 3.6596391669991135,5116 "spec/requests/api/performance_bar_spec.rb": 1.0700552919988695,5117 "spec/requests/api/graphql/mutations/clusters/agents/delete_spec.rb": 2.664246163001735,5118 "spec/requests/api/graphql/mutations/discussions/toggle_resolve_spec.rb": 2.7524731189987506,5119 "spec/controllers/projects/grafana_api_controller_spec.rb": 2.633803317999991,5120 "spec/requests/api/bulk_imports_spec.rb": 1.688477724999757,5121 "spec/requests/jira_connect/oauth_application_ids_controller_spec.rb": 0.5723425510004745,5122 "spec/controllers/projects/product_analytics_controller_spec.rb": 1.8118990260009014,5123 "spec/requests/api/ci/runner/runners_delete_spec.rb": 0.9510249809991365,5124 "spec/requests/api/graphql/mutations/incident_management/timeline_event/destroy_spec.rb": 1.5407409489998827,5125 "spec/requests/product_analytics/collector_app_spec.rb": 0.6414163000008557,5126 "spec/controllers/oauth/authorized_applications_controller_spec.rb": 0.691719041999022,5127 "spec/requests/api/graphql/namespace/package_settings_spec.rb": 0.6121451439994416,5128 "spec/requests/api/graphql/user/group_member_query_spec.rb": 1.3088657349999266,5129 "spec/requests/api/container_registry_event_spec.rb": 0.46546025699899474,5130 "spec/controllers/profiles/keys_controller_spec.rb": 0.7506740729986632,5131 "spec/requests/projects/incident_management/pagerduty_incidents_spec.rb": 0.8993270890005078,5132 "spec/controllers/admin/plan_limits_controller_spec.rb": 0.3773261209989869,5133 "spec/controllers/oauth/tokens_controller_spec.rb": 0.113857301999814815134}5135Knapsack global time execution for tests: 34m 57s5136Finished in 35 minutes 0 seconds (files took 55.58 seconds to load)51372189 examples, 0 failures5138RSpec exited with 0.5139No examples to retry, congrats!5141Not uploading cache ruby-gems-debian-bullseye-ruby-2.7-10 due to policy5142Not uploading cache gitaly-ruby-gems-debian-bullseye-ruby-2.7-10 due to policy5144Uploading artifacts...5145coverage/: found 5 matching files and directories 5146crystalball/: found 2 matching files and directories 5147WARNING: deprecations/: no matching files. Ensure that the artifact path is relative to the working directory 5148knapsack/: found 3 matching files and directories 5149rspec/: found 8 matching files and directories 5150WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory 5151log/*.log: found 19 matching files and directories 5152WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/2673337221/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com5153WARNING: Retrying... context=artifacts-uploader error=request redirected5154Uploading artifacts as "archive" to coordinator... 201 Created id=2673337221 responseStatus=201 Created token=2cdQ9xqr5155Uploading artifacts...5156rspec/junit_rspec.xml: found 1 matching files and directories 5157WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/2673337221/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com5158WARNING: Retrying... context=artifacts-uploader error=request redirected5159Uploading artifacts as "junit" to coordinator... 201 Created id=2673337221 responseStatus=201 Created token=2cdQ9xqr5161Job succeeded