rspec-ee integration pg14 4/5
Passed Started
by
@seggenberger

Sascha Eggenberger
1Running with gitlab-runner 16.6.0~beta.105.gd2263193 (d2263193)2 on green-4.shared-gitlab-org.runners-manager.gitlab.com/default x5QiHUKw, system ID: s_b9637080a79e3 feature flags: FF_NETWORK_PER_BUILD:true, FF_USE_FASTZIP:true, FF_USE_IMPROVED_URL_MASKING:true6Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.1.patched-golang-1.20-rust-1.73-node-18.17-postgresql-14:rubygems-3.4-git-2.36-lfs-2.9-chrome-113-yarn-1.22-graphicsmagick-1.3.36 ...7Starting service registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-14-pgvector-0.4.1 ...8Authenticating with credentials from job payload (GitLab Registry)9Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-14-pgvector-0.4.1 ...10Using docker image sha256:6c7370fd46a94d5beaed2a0304c7518e74a5759d4da3322ea9f7052507f51d80 for registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-14-pgvector-0.4.1 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:1b39aac95406782d786043ec3f1772c0a3a5ce1b9ce28cf001cac9a290f366c8 ...11WARNING: Service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 is already created. Ignoring.12WARNING: Service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 is already created. Ignoring.13Starting service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 ...14Authenticating with credentials from job payload (GitLab Registry)15Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 ...16Using docker image sha256:f4c047edb00d9bbfcc2b002a01548fab14592940f5b3e6b3f227f690e3fa272d for registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:9a1b6b68dc464f0baae914703d5b059e7773bf23c9579c44e2a1b1154a83656f ...17Starting service redis:6.2-alpine ...18Pulling docker image redis:6.2-alpine ...19Using docker image sha256:c9052246611fd2d9efcf620a05898778c045696a9ef664a13d2454e073dd05cc for redis:6.2-alpine with digest redis@sha256:80cc8518800438c684a53ed829c621c94afd1087aaeb59b0d4343ed3e7bcf6c5 ...20WARNING: Service registry.gitlab.com/gitlab-org/gitlab-build-images:zoekt-ci-image-1.2 is already created. Ignoring.21WARNING: Service registry.gitlab.com/gitlab-org/gitlab-build-images:zoekt-ci-image-1.2 is already created. Ignoring.22Starting service registry.gitlab.com/gitlab-org/gitlab-build-images:zoekt-ci-image-1.2 ...23Authenticating with credentials from job payload (GitLab Registry)24Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:zoekt-ci-image-1.2 ...25Using docker image sha256:3019060693909c4761e3d0a55f31591cdc9a425c5caabc0efe58b7aac9af2245 for registry.gitlab.com/gitlab-org/gitlab-build-images:zoekt-ci-image-1.2 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:39a04f1ad7b480c016bbb682d5525e272bc54bc252be03b1b9236b2375d81384 ...26Starting service elasticsearch:7.17.6 ...27Pulling docker image elasticsearch:7.17.6 ...28Using docker image sha256:5fad10241ffd65d817ed0ddfaf6e87eee1f7dc2a7db33db1047835560ea71fda for elasticsearch:7.17.6 with digest elasticsearch@sha256:6c128de5d01c0c130a806022d6bd99b3e4c27a9af5bfc33b6b81861ae117d028 ...29Waiting for services to be up and running (timeout 30 seconds)...30Authenticating with credentials from job payload (GitLab Registry)31Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.1.patched-golang-1.20-rust-1.73-node-18.17-postgresql-14:rubygems-3.4-git-2.36-lfs-2.9-chrome-113-yarn-1.22-graphicsmagick-1.3.36 ...32Using docker image sha256:b6ecd857a9432dbcf3db944482b11a6539f3a0be42b882ff1b2e14c381fb46ad for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.1.patched-golang-1.20-rust-1.73-node-18.17-postgresql-14:rubygems-3.4-git-2.36-lfs-2.9-chrome-113-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.1.patched-golang-1.20-rust-1.73-node-18.17-postgresql-14@sha256:1312a2d5cbb44b0f06794cc762e3b684b200c3e4c0ba6e458c61a641293b28c0 ...34Running on runner-x5qihukw-project-278964-concurrent-0 via runner-x5qihukw-shared-gitlab-org-1700667522-b9799f59...36Fetching changes with git depth set to 20...37Initialized empty Git repository in /builds/gitlab-org/gitlab/.git/38Created fresh repository.39remote: Enumerating objects: 160062, done. 40remote: Counting objects: 100% (160062/160062), done. 41remote: Compressing objects: 100% (106043/106043), done. 42remote: Total 160062 (delta 72911), reused 107612 (delta 47791), pack-reused 0 43Receiving objects: 100% (160062/160062), 141.24 MiB | 20.75 MiB/s, done.44Resolving deltas: 100% (72911/72911), done.46 * [new ref] refs/pipelines/1081810896 -> refs/pipelines/108181089647Checking out bc34b5b9 as detached HEAD (ref is refs/merge-requests/137025/merge)...48Skipping Git submodules setup49$ git remote set-url origin "${CI_REPOSITORY_URL}"51Checking cache for ruby-gems-debian-bullseye-ruby-3.1-16...52cache.zip is up to date 53Successfully extracted cache55Downloading artifacts for compile-test-assets (5597250154)...56Downloading artifacts from coordinator... ok host=storage.googleapis.com id=5597250154 responseStatus=200 OK token=64_chYk957Downloading artifacts for detect-tests (5597250235)...58Downloading artifacts from coordinator... ok host=storage.googleapis.com id=5597250235 responseStatus=200 OK token=64_chYk959Downloading artifacts for retrieve-tests-metadata (5597250273)...60Downloading artifacts from coordinator... ok host=storage.googleapis.com id=5597250273 responseStatus=200 OK token=64_chYk961Downloading artifacts for setup-test-env (5597250178)...62Downloading artifacts from coordinator... ok host=storage.googleapis.com id=5597250178 responseStatus=200 OK token=64_chYk964Using docker image sha256:b6ecd857a9432dbcf3db944482b11a6539f3a0be42b882ff1b2e14c381fb46ad for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.1.patched-golang-1.20-rust-1.73-node-18.17-postgresql-14:rubygems-3.4-git-2.36-lfs-2.9-chrome-113-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.1.patched-golang-1.20-rust-1.73-node-18.17-postgresql-14@sha256:1312a2d5cbb44b0f06794cc762e3b684b200c3e4c0ba6e458c61a641293b28c0 ...65$ echo $FOSS_ONLY66$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb67$ export GOPATH=$CI_PROJECT_DIR/.go68$ mkdir -p $GOPATH69$ source scripts/utils.sh70$ source scripts/prepare_build.sh102Using decomposed database config (config/database.yml.decomposed-postgresql)103Geo DB will be set up.104Embedding DB will be set up.160$ source ./scripts/rspec_helpers.sh161$ run_timed_command "gem install knapsack --no-document"162$ gem install knapsack --no-document163Successfully installed knapsack-4.0.01641 gem installed165==> 'gem install knapsack --no-document' succeeded in 1 seconds.166$ section_start "gitaly-test-spawn" "Spawning Gitaly"; scripts/gitaly-test-spawn; section_end "gitaly-test-spawn"171$ export RSPEC_SKIPPED_TESTS_REPORT_PATH="rspec/skipped_tests-${CI_JOB_ID}.txt"172$ export RSPEC_RETRIED_TESTS_REPORT_PATH="rspec/retried_tests-${CI_JOB_ID}.txt"173$ tooling/bin/create_job_metrics_file || true174[job-metrics] Creating the job metrics file for the CI/CD job.175$ rspec_paralellized_job "--fail-fast=${RSPEC_FAIL_FAST_THRESHOLD} --tag ~quarantine --tag ~level:background_migration --tag ~click_house --tag ~real_ai_request"176RETRY_FAILED_TESTS_IN_NEW_PROCESS: true177KNAPSACK_GENERATE_REPORT: true178FLAKY_RSPEC_GENERATE_REPORT: true179KNAPSACK_TEST_FILE_PATTERN: {ee/}spec/{commands,controllers,mailers,requests}{,/**/}*_spec.rb180KNAPSACK_LOG_LEVEL: debug181KNAPSACK_REPORT_PATH: knapsack/rspec-ee_integration_pg14_4_5_report.json182FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json183FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec-ee_integration_pg14_4_5_report.json184NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec-ee_integration_pg14_4_5_report.json185RSPEC_SKIPPED_TESTS_REPORT_PATH: rspec/skipped_tests-5597251755.txt186CRYSTALBALL: 187RSPEC_TESTS_MAPPING_ENABLED: 188RSPEC_TESTS_FILTER_FILE: 189Shell set options (set -o) enabled:190braceexpand on191hashall on192interactive-comments on193pipefail on194Running command: bundle exec rspec -Ispec -rspec_helper --color --failure-exit-code 1 --error-exit-code 2 --format documentation --format Support::Formatters::JsonFormatter --out rspec/rspec-5597251755.json --format RspecJunitFormatter --out rspec/rspec-5597251755.xml --fail-fast=20 --tag ~quarantine --tag ~level:background_migration --tag ~click_house --tag ~real_ai_request -- ee/spec/requests/api/dependency_proxy/packages/maven_spec.rb ee/spec/requests/api/vulnerabilities_spec.rb ee/spec/requests/api/projects_spec.rb ee/spec/requests/api/vulnerability_findings_spec.rb ee/spec/requests/api/project_approval_rules_spec.rb ee/spec/requests/search_controller_spec.rb ee/spec/controllers/groups/omniauth_callbacks_controller_spec.rb ee/spec/requests/api/project_approval_settings_spec.rb ee/spec/requests/api/notes_spec.rb ee/spec/controllers/groups/epics_controller_spec.rb ee/spec/controllers/projects/push_rules_controller_spec.rb ee/spec/controllers/projects/licenses_controller_spec.rb ee/spec/requests/api/group_push_rule_spec.rb ee/spec/requests/api/status_checks_spec.rb ee/spec/requests/api/project_aliases_spec.rb ee/spec/requests/api/protected_branches_spec.rb ee/spec/controllers/groups/sso_controller_spec.rb ee/spec/controllers/groups/analytics/cycle_analytics/summary_controller_spec.rb ee/spec/requests/api/related_epic_links_spec.rb ee/spec/requests/admin/credentials_controller_spec.rb ee/spec/requests/api/group_boards_spec.rb ee/spec/controllers/admin/geo/settings_controller_spec.rb ee/spec/controllers/groups/audit_events_controller_spec.rb ee/spec/requests/api/graphql/mutations/audit_events/external_audit_event_destinations/update_spec.rb ee/spec/requests/groups/security/credentials_controller_spec.rb ee/spec/requests/api/vulnerability_exports_spec.rb ee/spec/requests/projects/dependencies_controller_spec.rb ee/spec/requests/api/merge_request_approval_settings_spec.rb ee/spec/controllers/repositories/git_http_controller_spec.rb ee/spec/controllers/projects/settings/merge_requests_controller_spec.rb ee/spec/requests/api/project_approvals_spec.rb ee/spec/controllers/groups/insights_controller_spec.rb ee/spec/controllers/groups/security/policies_controller_spec.rb ee/spec/requests/api/graphql/project/dast_site_profiles_spec.rb ee/spec/requests/api/graphql/mutations/work_items/create_spec.rb ee/spec/requests/projects/settings/access_tokens_controller_spec.rb ee/spec/requests/api/award_emoji_spec.rb ee/spec/requests/api/graphql/vulnerabilities/sort_spec.rb ee/spec/controllers/projects/approvers_controller_spec.rb ee/spec/requests/api/ci/triggers_spec.rb ee/spec/requests/api/ci/jobs_spec.rb ee/spec/requests/api/graphql/mutations/boards/epic_boards/epic_move_list_spec.rb ee/spec/requests/smartcard_controller_spec.rb ee/spec/controllers/projects/boards_controller_spec.rb ee/spec/requests/api/graphql/mutations/analytics/cycle_analytics/value_streams/create_spec.rb ee/spec/requests/api/graphql/instance_security_dashboard_spec.rb ee/spec/requests/api/graphql/mutations/dependency_proxy/packages/settings/update_spec.rb ee/spec/requests/api/dependencies_spec.rb ee/spec/requests/api/graphql/mutations/notes/create/note_spec.rb ee/spec/controllers/subscriptions/groups_controller_spec.rb ee/spec/controllers/admin/geo/nodes_controller_spec.rb ee/spec/requests/custom_roles/manage_project_access_tokens/request_spec.rb ee/spec/requests/projects/metrics_controller_spec.rb ee/spec/requests/api/graphql/mutations/requirements_management/update_requirement_spec.rb ee/spec/requests/api/graphql/mutations/audit_events/google_cloud_logging_configurations/destroy_spec.rb ee/spec/requests/api/resource_iteration_events_spec.rb ee/spec/requests/api/graphql/mutations/ci/project_subscriptions/create_spec.rb ee/spec/requests/api/graphql/remote_development/workspaces/with_project_ids_arg_spec.rb ee/spec/requests/api/graphql/project/incident_management/oncall_schedules_spec.rb ee/spec/requests/api/graphql/remote_development/current_user/workspaces/with_project_ids_arg_spec.rb ee/spec/requests/api/graphql/pipeline_security_report_finding_spec.rb ee/spec/requests/api/graphql/project/merge_request_spec.rb ee/spec/requests/subscriptions/trials_controller_spec.rb ee/spec/requests/api/graphql/remote_development/current_user/workspaces/with_no_args_spec.rb ee/spec/controllers/projects/quality/test_cases_controller_spec.rb ee/spec/requests/api/resource_state_events_spec.rb ee/spec/controllers/projects/security/sast_configuration_controller_spec.rb ee/spec/requests/api/graphql/mutations/alert_management/http_integration/update_spec.rb ee/spec/requests/api/graphql/mutations/remote_development/workspaces/create_spec.rb ee/spec/requests/api/group_milestones_spec.rb ee/spec/requests/api/graphql/vulnerabilities/issue_links_spec.rb ee/spec/requests/api/analytics/code_review_analytics_spec.rb ee/spec/requests/api/graphql/explain_vulnerability_prompt_spec.rb ee/spec/requests/api/graphql/gitlab_subscriptions/user_add_on_assignments/remove_spec.rb ee/spec/requests/api/graphql/mutations/compliance_management/frameworks/create_spec.rb ee/spec/controllers/projects/environments_controller_spec.rb ee/spec/requests/api/graphql/mutations/dast/profiles/run_spec.rb ee/spec/controllers/groups/scim_oauth_controller_spec.rb ee/spec/requests/api/graphql/project/environments_spec.rb ee/spec/requests/api/graphql/remote_development/workspace/with_id_arg_spec.rb ee/spec/requests/api/graphql/mutations/epics/add_issue_spec.rb ee/spec/controllers/projects/integrations/zentao/issues_controller_spec.rb ee/spec/controllers/groups/merge_requests_controller_spec.rb ee/spec/requests/api/pypi_packages_spec.rb ee/spec/requests/projects/secrets_controller_spec.rb ee/spec/controllers/admin/audit_logs_controller_spec.rb ee/spec/requests/api/graphql/mutations/incident_management/escalation_policy/create_spec.rb ee/spec/requests/projects/security/dast_scanner_profiles_controller_spec.rb ee/spec/requests/api/graphql/mutations/security_policy/assign_security_policy_project_spec.rb ee/spec/controllers/groups/todos_controller_spec.rb ee/spec/controllers/groups/security/dashboard_controller_spec.rb ee/spec/controllers/ee/projects/autocomplete_sources_controller_spec.rb ee/spec/requests/api/files_spec.rb ee/spec/controllers/admin/audit_log_reports_controller_spec.rb ee/spec/requests/api/graphql/mutations/merge_requests/update_approval_rule_spec.rb ee/spec/requests/api/graphql/audit_events/instance_external_audit_event_destination_spec.rb ee/spec/requests/api/graphql/milestone_spec.rb ee/spec/requests/api/graphql/audit_events/streaming/instance_headers/create_spec.rb ee/spec/mailers/ee/emails/identity_verification_spec.rb ee/spec/controllers/ee/projects/blob_controller_spec.rb ee/spec/requests/api/graphql/mutations/security/training_provider_update_spec.rb ee/spec/requests/api/graphql/mutations/projects/lock_path_spec.rb ee/spec/requests/api/graphql/mutations/compliance_management/frameworks/destroy_spec.rb ee/spec/requests/projects/issue_feature_flags_controller_spec.rb ee/spec/requests/api/graphql/project/incident_management/escalation_policy/rules_spec.rb ee/spec/controllers/ee/sessions_controller_spec.rb ee/spec/controllers/projects/runners_controller_spec.rb ee/spec/controllers/ee/profiles/preferences_controller_spec.rb ee/spec/requests/api/graphql/audit_events/streaming/event_type_filters/delete_spec.rb ee/spec/requests/api/graphql/project/branch_rules_spec.rb ee/spec/requests/api/graphql/mutations/analytics/devops_adoption/enabled_namespaces/bulk_enable_spec.rb ee/spec/requests/api/ldap_spec.rb ee/spec/requests/api/graphql/mutations/releases/create_spec.rb ee/spec/requests/users_controller_spec.rb ee/spec/requests/api/graphql/mutations/incident_management/issuable_resource_link/create_spec.rb ee/spec/controllers/admin/elasticsearch_controller_spec.rb ee/spec/requests/api/graphql/mutations/boards/epic_boards/destroy_spec.rb ee/spec/requests/api/graphql/project/ai_conversations_spec.rb ee/spec/mailers/devise_mailer_spec.rb ee/spec/mailers/emails/merge_commits_spec.rb ee/spec/controllers/security/dashboard_controller_spec.rb ee/spec/requests/api/graphql/group/work_item_types_spec.rb ee/spec/requests/api/nuget_project_packages_spec.rb ee/spec/requests/api/graphql/vulnerabilities/details_spec.rb ee/spec/mailers/emails/merge_requests_spec.rb ee/spec/requests/api/ci/runner/jobs_trace_spec.rb ee/spec/controllers/users_controller_spec.rb ee/spec/requests/api/graphql/mutations/projects/fill_in_merge_request_template_spec.rb ee/spec/requests/api/generic_packages_spec.rb ee/spec/requests/api/graphql/mutations/boards/epic_lists/create_spec.rb ee/spec/controllers/concerns/gitlab_subscriptions/seat_count_alert_spec.rb ee/spec/controllers/groups/ldaps_controller_spec.rb ee/spec/requests/ee/omniauth_callbacks_controller_spec.rb ee/spec/controllers/admin/runners_controller_spec.rb ee/spec/requests/ee/projects/repositories_controller_spec.rb ee/spec/requests/api/markdown_snapshot_spec.rb ee/spec/requests/api/graphql/member_role/single_member_role_spec.rb ee/spec/requests/api/ci/pipelines_spec.rb ee/spec/requests/omniauth_kerberos_spec.rb ee/spec/controllers/groups/iteration_cadences_controller_spec.rb ee/spec/controllers/ee/groups/variables_controller_spec.rb ee/spec/controllers/ee/groups/settings/ci_cd_controller_spec.rb ee/spec/requests/api/graphql/group/ci_cd_settings_spec.rb ee/spec/controllers/admin/groups_controller_spec.rb ee/spec/mailers/emails/namespace_storage_usage_mailer_spec.rb ee/spec/controllers/groups/security/merge_commit_reports_controller_spec.rb ee/spec/requests/groups/contribution_analytics_spec.rb ee/spec/requests/api/usage_data_spec.rb ee/spec/controllers/admin/impersonations_controller_spec.rb ee/spec/controllers/oauth/applications_controller_spec.rb ee/spec/mailers/emails/user_cap_spec.rbKnapsack report generator started!195INFO: analyzing "public.p_ci_runner_machine_builds" inheritance tree196INFO: analyzing "gitlab_partitions_dynamic.ci_runner_machine_builds_100"197INFO: "ci_runner_machine_builds_100": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows198INFO: analyzing "gitlab_partitions_dynamic.ci_runner_machine_builds_101"199INFO: "ci_runner_machine_builds_101": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows200INFO: analyzing "public.p_ci_job_annotations" inheritance tree201INFO: analyzing "gitlab_partitions_dynamic.ci_job_annotations_100"202INFO: "ci_job_annotations_100": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows203INFO: analyzing "gitlab_partitions_dynamic.ci_job_annotations_101"204INFO: "ci_job_annotations_101": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows205INFO: analyzing "public.p_ci_builds_metadata" inheritance tree206INFO: analyzing "public.ci_builds_metadata"207INFO: "ci_builds_metadata": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows208INFO: analyzing "gitlab_partitions_dynamic.ci_builds_metadata_101"209INFO: "ci_builds_metadata_101": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows210INFO: analyzing "public.p_ci_builds" inheritance tree211INFO: analyzing "public.ci_builds"212INFO: "ci_builds": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows213INFO: analyzing "gitlab_partitions_dynamic.ci_builds_101"214INFO: "ci_builds_101": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows215INFO: analyzing "public.p_ci_runner_machine_builds" inheritance tree216INFO: analyzing "gitlab_partitions_dynamic.ci_runner_machine_builds_100"217INFO: "ci_runner_machine_builds_100": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows218INFO: analyzing "gitlab_partitions_dynamic.ci_runner_machine_builds_101"219INFO: "ci_runner_machine_builds_101": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows220INFO: analyzing "public.p_ci_job_annotations" inheritance tree221INFO: analyzing "gitlab_partitions_dynamic.ci_job_annotations_100"222INFO: "ci_job_annotations_100": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows223INFO: analyzing "gitlab_partitions_dynamic.ci_job_annotations_101"224INFO: "ci_job_annotations_101": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows225INFO: analyzing "public.p_ci_builds_metadata" inheritance tree226INFO: analyzing "public.ci_builds_metadata"227INFO: "ci_builds_metadata": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows228INFO: analyzing "gitlab_partitions_dynamic.ci_builds_metadata_101"229INFO: "ci_builds_metadata_101": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows230INFO: analyzing "public.p_ci_builds" inheritance tree231INFO: analyzing "public.ci_builds"232INFO: "ci_builds": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows233INFO: analyzing "gitlab_partitions_dynamic.ci_builds_101"234INFO: "ci_builds_101": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows235Run options: exclude {:quarantine=>true, :level=>"background_migration", :click_house=>true, :real_ai_request=>true}236unknown OID 2249: failed to recognize type of 'pg_stat_file'. It will be treated as String.237unknown OID 2249: failed to recognize type of 'pg_stat_file'. It will be treated as String.238Test environment set up in 1.060509521 seconds239API::DependencyProxy::Packages::Maven240 GET /api/v4/projects/:project_id/dependency_proxy/packages/maven/*path/:file_name241 with valid parameters242 with package registry public access set to true243 with a public project244 behaves like handling different token types245 and a personal access token246 user_role: :anonymous, valid_token: nil, sent_using: nil, expected_status: :forbidden247 behaves like returning response status248 returns forbidden249 user_role: :guest, valid_token: true, sent_using: :custom_header, expected_status: :ok250 behaves like returning response status251 returns ok252 user_role: :guest, valid_token: true, sent_using: :basic_auth, expected_status: :ok253 behaves like returning response status254 returns ok255 user_role: :guest, valid_token: false, sent_using: :custom_header, expected_status: :unauthorized256 behaves like returning response status257 returns unauthorized258 user_role: :guest, valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized259 behaves like returning response status260 returns unauthorized261 and a deploy token262 valid_token: true, sent_using: :custom_header, expected_status: :ok263 behaves like returning response status264 returns ok265 valid_token: false, sent_using: :custom_header, expected_status: :unauthorized266 behaves like returning response status267 returns unauthorized268 valid_token: true, sent_using: :basic_auth, expected_status: :ok269 behaves like returning response status270 returns ok271 valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized272 behaves like returning response status273 returns unauthorized274 and a ci job token275 valid_token: true, sent_using: :custom_header, expected_status: :ok276 behaves like returning response status277 returns ok278 valid_token: false, sent_using: :custom_header, expected_status: :unauthorized279 behaves like returning response status280 returns unauthorized281 valid_token: true, sent_using: :basic_auth, expected_status: :ok282 behaves like returning response status283 returns ok284 valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized285 behaves like returning response status286 returns unauthorized287 behaves like a user pulling files288 with a reporter pulling files289 behaves like pulling existing files290 when pulling a pom file291 etag_service_response: #<ServiceResponse:0x00007a2cb5aba520 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil292 behaves like returning response status293 returns ok294 etag_service_response: #<ServiceResponse:0x00007a2cb5abe468 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil295 behaves like returning response status296 returns ok297 etag_service_response: #<ServiceResponse:0x00007a2cb5ac2db0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil298 behaves like returning response status299 returns ok300 etag_service_response: #<ServiceResponse:0x00007a2cb5ac79a0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"301 behaves like returning a workhorse sendurl response302 returns a workhorse sendurl response303 when pulling a md5 file304 returns it305 when pulling a sha1 file306 returns it307 behaves like pulling non existing files308 with file test.pom309 behaves like returning a workhorse sendurl response310 returns a workhorse sendurl response311 with file test.md5312 behaves like returning a workhorse sendurl response313 returns a workhorse sendurl response314 with file test.sha1315 behaves like returning a workhorse sendurl response316 returns a workhorse sendurl response317 behaves like pulling existing files318 when pulling a pom file319 etag_service_response: #<ServiceResponse:0x00007a2cb5b338d0 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil320 behaves like returning response status321 returns ok322 etag_service_response: #<ServiceResponse:0x00007a2cb5b37890 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil323 behaves like returning response status324 returns ok325 etag_service_response: #<ServiceResponse:0x00007a2cb5b3ace8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil326 behaves like returning response status327 returns ok328 etag_service_response: #<ServiceResponse:0x00007a2cb5b3de70 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"329 behaves like returning a workhorse sendurl response330 returns a workhorse sendurl response331 when pulling a md5 file332 returns it333 when pulling a sha1 file334 returns it335 behaves like pulling non existing files336 with file test.pom337 behaves like returning a workhorse sendurl response338 returns a workhorse sendurl response339 with file test.md5340 behaves like returning a workhorse sendurl response341 returns a workhorse sendurl response342 with file test.sha1343 behaves like returning a workhorse sendurl response344 returns a workhorse sendurl response345 with a developer pulling files346 behaves like pulling existing files347 when pulling a pom file348 etag_service_response: #<ServiceResponse:0x00007a2cb5bae918 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil349 behaves like returning response status350 returns ok351 etag_service_response: #<ServiceResponse:0x00007a2cb5bb1b18 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil352 behaves like returning response status353 returns ok354 etag_service_response: #<ServiceResponse:0x00007a2cb5bb56a0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil355 behaves like returning response status356 returns ok357 etag_service_response: #<ServiceResponse:0x00007a2cb5bb9d18 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"358 behaves like returning a workhorse sendurl response359 returns a workhorse sendurl response360 when pulling a md5 file361 returns it362 when pulling a sha1 file363 returns it364 behaves like pulling non existing files365 with file test.pom366 behaves like returning a workhorse senddependency response367 returns a workhorse senddependency response368 with file test.md5369 behaves like returning a workhorse sendurl response370 returns a workhorse sendurl response371 with file test.sha1372 behaves like returning a workhorse sendurl response373 returns a workhorse sendurl response374 behaves like pulling existing files375 when pulling a pom file376 etag_service_response: #<ServiceResponse:0x00007a2cb5c2bc88 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil377 behaves like returning response status378 returns ok379 etag_service_response: #<ServiceResponse:0x00007a2cb5c28060 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil380 behaves like returning response status381 returns ok382 etag_service_response: #<ServiceResponse:0x00007a2cb5c2ca48 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil383 behaves like returning response status384 returns ok385 etag_service_response: #<ServiceResponse:0x00007a2cb5c31368 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"386 behaves like returning a workhorse sendurl response387 returns a workhorse sendurl response388 when pulling a md5 file389 returns it390 when pulling a sha1 file391 returns it392 behaves like pulling non existing files393 with file test.pom394 behaves like returning a workhorse senddependency response395 returns a workhorse senddependency response396 with file test.md5397 behaves like returning a workhorse sendurl response398 returns a workhorse sendurl response399 with file test.sha1400 behaves like returning a workhorse sendurl response401 returns a workhorse sendurl response402 with a maintainer pulling files403 behaves like pulling existing files404 when pulling a pom file405 etag_service_response: #<ServiceResponse:0x00007a2cb5ca0c40 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil406 behaves like returning response status407 returns ok408 etag_service_response: #<ServiceResponse:0x00007a2cb5ca4fc0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil409 behaves like returning response status410 returns ok411 etag_service_response: #<ServiceResponse:0x00007a2cb5ca9b10 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil412 behaves like returning response status413 returns ok414 etag_service_response: #<ServiceResponse:0x00007a2cb5cae4d0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"415 behaves like returning a workhorse senddependency response416 returns a workhorse senddependency response417 when pulling a md5 file418 returns it419 when pulling a sha1 file420 returns it421 behaves like pulling non existing files422 with file test.pom423 behaves like returning a workhorse senddependency response424 returns a workhorse senddependency response425 with file test.md5426 behaves like returning a workhorse sendurl response427 returns a workhorse sendurl response428 with file test.sha1429 behaves like returning a workhorse sendurl response430 returns a workhorse sendurl response431 behaves like pulling existing files432 when pulling a pom file433 etag_service_response: #<ServiceResponse:0x00007a2cb5d147a8 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil434 behaves like returning response status435 returns ok436 etag_service_response: #<ServiceResponse:0x00007a2cb5d18a88 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil437 behaves like returning response status438 returns ok439 etag_service_response: #<ServiceResponse:0x00007a2cb5d1cc78 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil440 behaves like returning response status441 returns ok442 etag_service_response: #<ServiceResponse:0x00007a2cb5d21840 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"443 behaves like returning a workhorse senddependency response444 returns a workhorse senddependency response445 when pulling a md5 file446 returns it447 when pulling a sha1 file448 returns it449 behaves like pulling non existing files450 with file test.pom451 behaves like returning a workhorse senddependency response452 returns a workhorse senddependency response453 with file test.md5454 behaves like returning a workhorse sendurl response455 returns a workhorse sendurl response456 with file test.sha1457 behaves like returning a workhorse sendurl response458 returns a workhorse sendurl response459 with a ci job token460 with custom headers461 behaves like pulling existing files462 when pulling a pom file463 etag_service_response: #<ServiceResponse:0x00007a2cb5d9e638 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil464 behaves like returning response status465 returns ok466 etag_service_response: #<ServiceResponse:0x00007a2cb5da2968 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil467 behaves like returning response status468 returns ok469 etag_service_response: #<ServiceResponse:0x00007a2cb5da7198 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil470 behaves like returning response status471 returns ok472 etag_service_response: #<ServiceResponse:0x00007a2cb5dab9a0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"473 behaves like returning a workhorse senddependency response474 returns a workhorse senddependency response475 when pulling a md5 file476 returns it477 when pulling a sha1 file478 returns it479 behaves like pulling non existing files480 with file test.pom481 behaves like returning a workhorse senddependency response482 returns a workhorse senddependency response483 with file test.md5484 behaves like returning a workhorse sendurl response485 returns a workhorse sendurl response486 with file test.sha1487 behaves like returning a workhorse sendurl response488 returns a workhorse sendurl response489 with basic auth490 behaves like pulling existing files491 when pulling a pom file492 etag_service_response: #<ServiceResponse:0x00007a2cb5e0cc78 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil493 behaves like returning response status494 returns ok495 etag_service_response: #<ServiceResponse:0x00007a2cb5e117f0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil496 behaves like returning response status497 returns ok498 etag_service_response: #<ServiceResponse:0x00007a2cb5e16638 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil499 behaves like returning response status500 returns ok501 etag_service_response: #<ServiceResponse:0x00007a2cb5e1b2f0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"502 behaves like returning a workhorse senddependency response503 returns a workhorse senddependency response504 when pulling a md5 file505 returns it506 when pulling a sha1 file507 returns it508 behaves like pulling non existing files509 with file test.pom510 behaves like returning a workhorse senddependency response511 returns a workhorse senddependency response512 with file test.md5513 behaves like returning a workhorse sendurl response514 returns a workhorse sendurl response515 with file test.sha1516 behaves like returning a workhorse sendurl response517 returns a workhorse sendurl response518 with a deploy token519 with custom headers520 behaves like pulling existing files521 when pulling a pom file522 etag_service_response: #<ServiceResponse:0x00007a2cb5e837b0 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil523 behaves like returning response status524 returns ok525 etag_service_response: #<ServiceResponse:0x00007a2cb5e80498 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil526 behaves like returning response status527 returns ok528 etag_service_response: #<ServiceResponse:0x00007a2cb5e855b0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil529 behaves like returning response status530 returns ok531 etag_service_response: #<ServiceResponse:0x00007a2cb5e89cf0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"532 behaves like returning a workhorse senddependency response533 returns a workhorse senddependency response534 when pulling a md5 file535 returns it536 when pulling a sha1 file537 returns it538 behaves like pulling non existing files539 with file test.pom540 behaves like returning a workhorse senddependency response541 returns a workhorse senddependency response542 with file test.md5543 behaves like returning a workhorse sendurl response544 returns a workhorse sendurl response545 with file test.sha1546 behaves like returning a workhorse sendurl response547 returns a workhorse sendurl response548 with basic auth549 behaves like pulling existing files550 when pulling a pom file551 etag_service_response: #<ServiceResponse:0x00007a2cb5eede80 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil552 behaves like returning response status553 returns ok554 etag_service_response: #<ServiceResponse:0x00007a2cb5ef2bd8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil555 behaves like returning response status556 returns ok557 etag_service_response: #<ServiceResponse:0x00007a2cb5ef7cf0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil558 behaves like returning response status559 returns ok560 etag_service_response: #<ServiceResponse:0x00007a2cb5ef4e60 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"561 behaves like returning a workhorse senddependency response562 returns a workhorse senddependency response563 when pulling a md5 file564 returns it565 when pulling a sha1 file566 returns it567 behaves like pulling non existing files568 with file test.pom569 behaves like returning a workhorse senddependency response570 returns a workhorse senddependency response571 with file test.md5572 behaves like returning a workhorse sendurl response573 returns a workhorse sendurl response574 with file test.sha1575 behaves like returning a workhorse sendurl response576 returns a workhorse sendurl response577 with an internal project578 behaves like handling different token types579 and a personal access token580 user_role: :anonymous, valid_token: nil, sent_using: nil, expected_status: :unauthorized581 behaves like returning response status582 returns unauthorized583 user_role: :guest, valid_token: true, sent_using: :custom_header, expected_status: :ok584 behaves like returning response status585 returns ok586 user_role: :guest, valid_token: true, sent_using: :basic_auth, expected_status: :ok587 behaves like returning response status588 returns ok589 user_role: :guest, valid_token: false, sent_using: :custom_header, expected_status: :unauthorized590 behaves like returning response status591 returns unauthorized592 user_role: :guest, valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized593 behaves like returning response status594 returns unauthorized595 and a deploy token596 valid_token: true, sent_using: :custom_header, expected_status: :ok597 behaves like returning response status598 returns ok599 valid_token: false, sent_using: :custom_header, expected_status: :unauthorized600 behaves like returning response status601 returns unauthorized602 valid_token: true, sent_using: :basic_auth, expected_status: :ok603 behaves like returning response status604 returns ok605 valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized606 behaves like returning response status607 returns unauthorized608 and a ci job token609 valid_token: true, sent_using: :custom_header, expected_status: :ok610 behaves like returning response status611 returns ok612 valid_token: false, sent_using: :custom_header, expected_status: :unauthorized613 behaves like returning response status614 returns unauthorized615 valid_token: true, sent_using: :basic_auth, expected_status: :ok616 behaves like returning response status617 returns ok618 valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized619 behaves like returning response status620 returns unauthorized621 behaves like a user pulling files622 with a reporter pulling files623 behaves like pulling existing files624 when pulling a pom file625 etag_service_response: #<ServiceResponse:0x00007a2cb6028818 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil626 behaves like returning response status627 returns ok628 etag_service_response: #<ServiceResponse:0x00007a2cb602ca08 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil629 behaves like returning response status630 returns ok631 etag_service_response: #<ServiceResponse:0x00007a2cb6031170 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil632 behaves like returning response status633 returns ok634 etag_service_response: #<ServiceResponse:0x00007a2cb6036170 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"635 behaves like returning a workhorse sendurl response636 returns a workhorse sendurl response637 when pulling a md5 file638 returns it639 when pulling a sha1 file640 returns it641 behaves like pulling non existing files642 with file test.pom643 behaves like returning a workhorse sendurl response644 returns a workhorse sendurl response645 with file test.md5646 behaves like returning a workhorse sendurl response647 returns a workhorse sendurl response648 with file test.sha1649 behaves like returning a workhorse sendurl response650 returns a workhorse sendurl response651 behaves like pulling existing files652 when pulling a pom file653 etag_service_response: #<ServiceResponse:0x00007a2cb60956c0 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil654 behaves like returning response status655 returns ok656 etag_service_response: #<ServiceResponse:0x00007a2cb609a120 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil657 behaves like returning response status658 returns ok659 etag_service_response: #<ServiceResponse:0x00007a2cb609ee00 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil660 behaves like returning response status661 returns ok662 etag_service_response: #<ServiceResponse:0x00007a2cb60a3658 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"663 behaves like returning a workhorse sendurl response664 returns a workhorse sendurl response665 when pulling a md5 file666 returns it667 when pulling a sha1 file668 returns it669 behaves like pulling non existing files670 with file test.pom671 behaves like returning a workhorse sendurl response672 returns a workhorse sendurl response673 with file test.md5674 behaves like returning a workhorse sendurl response675 returns a workhorse sendurl response676 with file test.sha1677 behaves like returning a workhorse sendurl response678 returns a workhorse sendurl response679 with a developer pulling files680 behaves like pulling existing files681 when pulling a pom file682 etag_service_response: #<ServiceResponse:0x00007a2cb6107748 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil683 behaves like returning response status684 returns ok685 etag_service_response: #<ServiceResponse:0x00007a2cb61042c8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil686 behaves like returning response status687 returns ok688 etag_service_response: #<ServiceResponse:0x00007a2cb6109340 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil689 behaves like returning response status690 returns ok691 etag_service_response: #<ServiceResponse:0x00007a2cb610d8a0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"692 behaves like returning a workhorse sendurl response693 returns a workhorse sendurl response694 when pulling a md5 file695 returns it696 when pulling a sha1 file697 returns it698 behaves like pulling non existing files699 with file test.pom700 behaves like returning a workhorse senddependency response701 returns a workhorse senddependency response702 with file test.md5703 behaves like returning a workhorse sendurl response704 returns a workhorse sendurl response705 with file test.sha1706 behaves like returning a workhorse sendurl response707 returns a workhorse sendurl response708 behaves like pulling existing files709 when pulling a pom file710 etag_service_response: #<ServiceResponse:0x00007a2cb61a42f0 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil711 behaves like returning response status712 returns ok713 etag_service_response: #<ServiceResponse:0x00007a2cb61ad0f8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil714 behaves like returning response status715 returns ok716 etag_service_response: #<ServiceResponse:0x00007a2cb61b01e0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil717 behaves like returning response status718 returns ok719 etag_service_response: #<ServiceResponse:0x00007a2cb61bb158 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"720 behaves like returning a workhorse sendurl response721 returns a workhorse sendurl response722 when pulling a md5 file723 returns it724 when pulling a sha1 file725 returns it726 behaves like pulling non existing files727 with file test.pom728 behaves like returning a workhorse senddependency response729 returns a workhorse senddependency response730 with file test.md5731 behaves like returning a workhorse sendurl response732 returns a workhorse sendurl response733 with file test.sha1734 behaves like returning a workhorse sendurl response735 returns a workhorse sendurl response736 with a maintainer pulling files737 behaves like pulling existing files738 when pulling a pom file739 etag_service_response: #<ServiceResponse:0x00007a2cb6268b28 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil740 behaves like returning response status741 returns ok742 etag_service_response: #<ServiceResponse:0x00007a2cb62710e8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil743 behaves like returning response status744 returns ok745 etag_service_response: #<ServiceResponse:0x00007a2cb627bdb8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil746 behaves like returning response status747 returns ok748 etag_service_response: #<ServiceResponse:0x00007a2cb627ea18 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"749 behaves like returning a workhorse senddependency response750 returns a workhorse senddependency response751 when pulling a md5 file752 returns it753 when pulling a sha1 file754 returns it755 behaves like pulling non existing files756 with file test.pom757 behaves like returning a workhorse senddependency response758 returns a workhorse senddependency response759 with file test.md5760 behaves like returning a workhorse sendurl response761 returns a workhorse sendurl response762 with file test.sha1763 behaves like returning a workhorse sendurl response764 returns a workhorse sendurl response765 behaves like pulling existing files766 when pulling a pom file767 etag_service_response: #<ServiceResponse:0x00007a2cb63164d0 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil768 behaves like returning response status769 returns ok770 etag_service_response: #<ServiceResponse:0x00007a2cb631a620 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil771 behaves like returning response status772 returns ok773 etag_service_response: #<ServiceResponse:0x00007a2cb631eb08 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil774 behaves like returning response status775 returns ok776 etag_service_response: #<ServiceResponse:0x00007a2cb63235e0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"777 behaves like returning a workhorse senddependency response778 returns a workhorse senddependency response779 when pulling a md5 file780 returns it781 when pulling a sha1 file782 returns it783 behaves like pulling non existing files784 with file test.pom785 behaves like returning a workhorse senddependency response786 returns a workhorse senddependency response787 with file test.md5788 behaves like returning a workhorse sendurl response789 returns a workhorse sendurl response790 with file test.sha1791 behaves like returning a workhorse sendurl response792 returns a workhorse sendurl response793 with a ci job token794 with custom headers795 behaves like pulling existing files796 when pulling a pom file797 etag_service_response: #<ServiceResponse:0x00007a2cb6390aa0 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil798 behaves like returning response status799 returns ok800 etag_service_response: #<ServiceResponse:0x00007a2cb6395280 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil801 behaves like returning response status802 returns ok803 etag_service_response: #<ServiceResponse:0x00007a2cb639a1b8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil804 behaves like returning response status805 returns ok806 etag_service_response: #<ServiceResponse:0x00007a2cb639f140 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"807 behaves like returning a workhorse senddependency response808 returns a workhorse senddependency response809 when pulling a md5 file810 returns it811 when pulling a sha1 file812 returns it813 behaves like pulling non existing files814 with file test.pom815 behaves like returning a workhorse senddependency response816 returns a workhorse senddependency response817 with file test.md5818 behaves like returning a workhorse sendurl response819 returns a workhorse sendurl response820 with file test.sha1821 behaves like returning a workhorse sendurl response822 returns a workhorse sendurl response823 with basic auth824 behaves like pulling existing files825 when pulling a pom file826 etag_service_response: #<ServiceResponse:0x00007a2cb6420da8 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil827 behaves like returning response status828 returns ok829 etag_service_response: #<ServiceResponse:0x00007a2cb6429cc8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil830 behaves like returning response status831 returns ok832 etag_service_response: #<ServiceResponse:0x00007a2cb6433c50 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil833 behaves like returning response status834 returns ok835 etag_service_response: #<ServiceResponse:0x00007a2cb6435910 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"836 behaves like returning a workhorse senddependency response837 returns a workhorse senddependency response838 when pulling a md5 file839 returns it840 when pulling a sha1 file841 returns it842 behaves like pulling non existing files843 with file test.pom844 behaves like returning a workhorse senddependency response845 returns a workhorse senddependency response846 with file test.md5847 behaves like returning a workhorse sendurl response848 returns a workhorse sendurl response849 with file test.sha1850 behaves like returning a workhorse sendurl response851 returns a workhorse sendurl response852 with a deploy token853 with custom headers854 behaves like pulling existing files855 when pulling a pom file856 etag_service_response: #<ServiceResponse:0x00007a2cecf6ffc0 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil857 behaves like returning response status858 returns ok859 etag_service_response: #<ServiceResponse:0x00007a2ced09e158 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil860 behaves like returning response status861 returns ok862 etag_service_response: #<ServiceResponse:0x00007a2ced1227f0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil863 behaves like returning response status864 returns ok865 etag_service_response: #<ServiceResponse:0x00007a2ced181a98 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"866 behaves like returning a workhorse senddependency response867 returns a workhorse senddependency response868 when pulling a md5 file869 returns it870 when pulling a sha1 file871 returns it872 behaves like pulling non existing files873 with file test.pom874 behaves like returning a workhorse senddependency response875 returns a workhorse senddependency response876 with file test.md5877 behaves like returning a workhorse sendurl response878 returns a workhorse sendurl response879 with file test.sha1880 behaves like returning a workhorse sendurl response881 returns a workhorse sendurl response882 with basic auth883 behaves like pulling existing files884 when pulling a pom file885 etag_service_response: #<ServiceResponse:0x00007a2ceaa175e8 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil886 behaves like returning response status887 returns ok888 etag_service_response: #<ServiceResponse:0x00007a2ce5cbfc78 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil889 behaves like returning response status890 returns ok891 etag_service_response: #<ServiceResponse:0x00007a2ce5cd2c38 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil892 behaves like returning response status893 returns ok894 etag_service_response: #<ServiceResponse:0x00007a2ce5cf6e30 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"895 behaves like returning a workhorse senddependency response896 returns a workhorse senddependency response897 when pulling a md5 file898 returns it899 when pulling a sha1 file900 returns it901 behaves like pulling non existing files902 with file test.pom903 behaves like returning a workhorse senddependency response904 returns a workhorse senddependency response905 with file test.md5906 behaves like returning a workhorse sendurl response907 returns a workhorse sendurl response908 with file test.sha1909 behaves like returning a workhorse sendurl response910 returns a workhorse sendurl response911 with a private project912 behaves like handling different token types913 and a personal access token914 user_role: :anonymous, valid_token: nil, sent_using: nil, expected_status: :unauthorized915 behaves like returning response status916 returns unauthorized917 user_role: :guest, valid_token: true, sent_using: :custom_header, expected_status: :forbidden918 behaves like returning response status919 returns forbidden920 user_role: :guest, valid_token: true, sent_using: :basic_auth, expected_status: :forbidden921 behaves like returning response status922 returns forbidden923 user_role: :guest, valid_token: false, sent_using: :custom_header, expected_status: :unauthorized924 behaves like returning response status925 returns unauthorized926 user_role: :guest, valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized927 behaves like returning response status928 returns unauthorized929 user_role: :reporter, valid_token: true, sent_using: :custom_header, expected_status: :ok930 behaves like returning response status931 returns ok932 user_role: :reporter, valid_token: true, sent_using: :basic_auth, expected_status: :ok933 behaves like returning response status934 returns ok935 user_role: :reporter, valid_token: false, sent_using: :custom_header, expected_status: :unauthorized936 behaves like returning response status937 returns unauthorized938 user_role: :reporter, valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized939 behaves like returning response status940 returns unauthorized941 and a deploy token942 valid_token: true, sent_using: :custom_header, expected_status: :ok943 behaves like returning response status944 returns ok945 valid_token: false, sent_using: :custom_header, expected_status: :unauthorized946 behaves like returning response status947 returns unauthorized948 valid_token: true, sent_using: :basic_auth, expected_status: :ok949 behaves like returning response status950 returns ok951 valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized952 behaves like returning response status953 returns unauthorized954 and a ci job token955 valid_token: true, sent_using: :custom_header, expected_status: :ok956 behaves like returning response status957 returns ok958 valid_token: false, sent_using: :custom_header, expected_status: :unauthorized959 behaves like returning response status960 returns unauthorized961 valid_token: true, sent_using: :basic_auth, expected_status: :ok962 behaves like returning response status963 returns ok964 valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized965 behaves like returning response status966 returns unauthorized967 behaves like a user pulling files968 with a reporter pulling files969 behaves like pulling existing files970 when pulling a pom file971 etag_service_response: #<ServiceResponse:0x00007a2cc85aa108 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil972 behaves like returning response status973 returns ok974 etag_service_response: #<ServiceResponse:0x00007a2cc85fb300 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil975 behaves like returning response status976 returns ok977 etag_service_response: #<ServiceResponse:0x00007a2cc8668810 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil978 behaves like returning response status979 returns ok980 etag_service_response: #<ServiceResponse:0x00007a2cc86967b0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"981 behaves like returning a workhorse sendurl response982 returns a workhorse sendurl response983 when pulling a md5 file984 returns it985 when pulling a sha1 file986 returns it987 behaves like pulling non existing files988 with file test.pom989 behaves like returning a workhorse sendurl response990 returns a workhorse sendurl response991 with file test.md5992 behaves like returning a workhorse sendurl response993 returns a workhorse sendurl response994 with file test.sha1995 behaves like returning a workhorse sendurl response996 returns a workhorse sendurl response997 behaves like pulling existing files998 when pulling a pom file999 etag_service_response: #<ServiceResponse:0x00007a2cc79bb108 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1000 behaves like returning response status1001 returns ok1002 etag_service_response: #<ServiceResponse:0x00007a2cc7a179a8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1003 behaves like returning response status1004 returns ok1005 etag_service_response: #<ServiceResponse:0x00007a2cc7a32280 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil1006 behaves like returning response status1007 returns ok1008 etag_service_response: #<ServiceResponse:0x00007a2cc7a68920 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"1009 behaves like returning a workhorse sendurl response1010 returns a workhorse sendurl response1011 when pulling a md5 file1012 returns it1013 when pulling a sha1 file1014 returns it1015 behaves like pulling non existing files1016 with file test.pom1017 behaves like returning a workhorse sendurl response1018 returns a workhorse sendurl response1019 with file test.md51020 behaves like returning a workhorse sendurl response1021 returns a workhorse sendurl response1022 with file test.sha11023 behaves like returning a workhorse sendurl response1024 returns a workhorse sendurl response1025 with a developer pulling files1026 behaves like pulling existing files1027 when pulling a pom file1028 etag_service_response: #<ServiceResponse:0x00007a2cc75cbc00 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1029 behaves like returning response status1030 returns ok1031 etag_service_response: #<ServiceResponse:0x00007a2cc73a29b0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1032 behaves like returning response status1033 returns ok1034 etag_service_response: #<ServiceResponse:0x00007a2cc73e6778 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil1035 behaves like returning response status1036 returns ok1037 etag_service_response: #<ServiceResponse:0x00007a2cc74224f8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"1038 behaves like returning a workhorse sendurl response1039 returns a workhorse sendurl response1040 when pulling a md5 file1041 returns it1042 when pulling a sha1 file1043 returns it1044 behaves like pulling non existing files1045 with file test.pom1046 behaves like returning a workhorse senddependency response1047 returns a workhorse senddependency response1048 with file test.md51049 behaves like returning a workhorse sendurl response1050 returns a workhorse sendurl response1051 with file test.sha11052 behaves like returning a workhorse sendurl response1053 returns a workhorse sendurl response1054 behaves like pulling existing files1055 when pulling a pom file1056 etag_service_response: #<ServiceResponse:0x00007a2cc70976f8 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1057 behaves like returning response status1058 returns ok1059 etag_service_response: #<ServiceResponse:0x00007a2cc70b1850 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1060 behaves like returning response status1061 returns ok1062 etag_service_response: #<ServiceResponse:0x00007a2cc70cee28 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil1063 behaves like returning response status1064 returns ok1065 etag_service_response: #<ServiceResponse:0x00007a2cc70ec568 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"1066 behaves like returning a workhorse sendurl response1067 returns a workhorse sendurl response1068 when pulling a md5 file1069 returns it1070 when pulling a sha1 file1071 returns it1072 behaves like pulling non existing files1073 with file test.pom1074 behaves like returning a workhorse senddependency response1075 returns a workhorse senddependency response1076 with file test.md51077 behaves like returning a workhorse sendurl response1078 returns a workhorse sendurl response1079 with file test.sha11080 behaves like returning a workhorse sendurl response1081 returns a workhorse sendurl response1082 with a maintainer pulling files1083 behaves like pulling existing files1084 when pulling a pom file1085 etag_service_response: #<ServiceResponse:0x00007a2cc6bdb740 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1086 behaves like returning response status1087 returns ok1088 etag_service_response: #<ServiceResponse:0x00007a2cc6beca90 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1089 behaves like returning response status1090 returns ok1091 etag_service_response: #<ServiceResponse:0x00007a2cc6c07c28 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil1092 behaves like returning response status1093 returns ok1094 etag_service_response: #<ServiceResponse:0x00007a2cc6c27c30 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"1095 behaves like returning a workhorse senddependency response1096 returns a workhorse senddependency response1097 when pulling a md5 file1098 returns it1099 when pulling a sha1 file1100 returns it1101 behaves like pulling non existing files1102 with file test.pom1103 behaves like returning a workhorse senddependency response1104 returns a workhorse senddependency response1105 with file test.md51106 behaves like returning a workhorse sendurl response1107 returns a workhorse sendurl response1108 with file test.sha11109 behaves like returning a workhorse sendurl response1110 returns a workhorse sendurl response1111 behaves like pulling existing files1112 when pulling a pom file1113 etag_service_response: #<ServiceResponse:0x00007a2cc69a6b50 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1114 behaves like returning response status1115 returns ok1116 etag_service_response: #<ServiceResponse:0x00007a2cc6853b90 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1117 behaves like returning response status1118 returns ok1119 etag_service_response: #<ServiceResponse:0x00007a2cc686eee0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil1120 behaves like returning response status1121 returns ok1122 etag_service_response: #<ServiceResponse:0x00007a2cc6888fc0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"1123 behaves like returning a workhorse senddependency response1124 returns a workhorse senddependency response1125 when pulling a md5 file1126 returns it1127 when pulling a sha1 file1128 returns it1129 behaves like pulling non existing files1130 with file test.pom1131 behaves like returning a workhorse senddependency response1132 returns a workhorse senddependency response1133 with file test.md51134 behaves like returning a workhorse sendurl response1135 returns a workhorse sendurl response1136 with file test.sha11137 behaves like returning a workhorse sendurl response1138 returns a workhorse sendurl response1139 with a ci job token1140 with custom headers1141 behaves like pulling existing files1142 when pulling a pom file1143 etag_service_response: #<ServiceResponse:0x00007a2cc660f528 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1144 behaves like returning response status1145 returns ok1146 etag_service_response: #<ServiceResponse:0x00007a2cc6622678 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1147 behaves like returning response status1148 returns ok1149 etag_service_response: #<ServiceResponse:0x00007a2cc654d680 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil1150 behaves like returning response status1151 returns ok1152 etag_service_response: #<ServiceResponse:0x00007a2cc65631b0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"1153 behaves like returning a workhorse senddependency response1154 returns a workhorse senddependency response1155 when pulling a md5 file1156 returns it1157 when pulling a sha1 file1158 returns it1159 behaves like pulling non existing files1160 with file test.pom1161 behaves like returning a workhorse senddependency response1162 returns a workhorse senddependency response1163 with file test.md51164 behaves like returning a workhorse sendurl response1165 returns a workhorse sendurl response1166 with file test.sha11167 behaves like returning a workhorse sendurl response1168 returns a workhorse sendurl response1169 with basic auth1170 behaves like pulling existing files1171 when pulling a pom file1172 etag_service_response: #<ServiceResponse:0x00007a2cc63c8120 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1173 behaves like returning response status1174 returns ok1175 etag_service_response: #<ServiceResponse:0x00007a2cc63da9d8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1176 behaves like returning response status1177 returns ok1178 etag_service_response: #<ServiceResponse:0x00007a2cc63e50b8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil1179 behaves like returning response status1180 returns ok1181 etag_service_response: #<ServiceResponse:0x00007a2cc63f2218 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"1182 behaves like returning a workhorse senddependency response1183 returns a workhorse senddependency response1184 when pulling a md5 file1185 returns it1186 when pulling a sha1 file1187 returns it1188 behaves like pulling non existing files1189 with file test.pom1190 behaves like returning a workhorse senddependency response1191 returns a workhorse senddependency response1192 with file test.md51193 behaves like returning a workhorse sendurl response1194 returns a workhorse sendurl response1195 with file test.sha11196 behaves like returning a workhorse sendurl response1197 returns a workhorse sendurl response1198 with a deploy token1199 with custom headers1200 behaves like pulling existing files1201 when pulling a pom file1202 etag_service_response: #<ServiceResponse:0x00007a2cc6190a38 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1203 behaves like returning response status1204 returns ok1205 etag_service_response: #<ServiceResponse:0x00007a2cc61a7850 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1206 behaves like returning response status1207 returns ok1208 etag_service_response: #<ServiceResponse:0x00007a2cc61b20c0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil1209 behaves like returning response status1210 returns ok1211 etag_service_response: #<ServiceResponse:0x00007a2cc61c20b0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"1212 behaves like returning a workhorse senddependency response1213 returns a workhorse senddependency response1214 when pulling a md5 file1215 returns it1216 when pulling a sha1 file1217 returns it1218 behaves like pulling non existing files1219 with file test.pom1220 behaves like returning a workhorse senddependency response1221 returns a workhorse senddependency response1222 with file test.md51223 behaves like returning a workhorse sendurl response1224 returns a workhorse sendurl response1225 with file test.sha11226 behaves like returning a workhorse sendurl response1227 returns a workhorse sendurl response1228 with basic auth1229 behaves like pulling existing files1230 when pulling a pom file1231 etag_service_response: #<ServiceResponse:0x00007a2cc5f55548 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1232 behaves like returning response status1233 returns ok1234 etag_service_response: #<ServiceResponse:0x00007a2cc5f69750 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1235 behaves like returning response status1236 returns ok1237 etag_service_response: #<ServiceResponse:0x00007a2cc5f7ac80 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil1238 behaves like returning response status1239 returns ok1240 etag_service_response: #<ServiceResponse:0x00007a2cc5f86cd8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"1241 behaves like returning a workhorse senddependency response1242 returns a workhorse senddependency response1243 when pulling a md5 file1244 returns it1245 when pulling a sha1 file1246 returns it1247 behaves like pulling non existing files1248 with file test.pom1249 behaves like returning a workhorse senddependency response1250 returns a workhorse senddependency response1251 with file test.md51252 behaves like returning a workhorse sendurl response1253 returns a workhorse sendurl response1254 with file test.sha11255 behaves like returning a workhorse sendurl response1256 returns a workhorse sendurl response1257 with package registry public access set to false1258 with a public project1259 behaves like handling different token types1260 and a personal access token1261 user_role: :anonymous, valid_token: nil, sent_using: nil, expected_status: :forbidden1262 behaves like returning response status1263 returns forbidden1264 user_role: :guest, valid_token: true, sent_using: :custom_header, expected_status: :ok1265 behaves like returning response status1266 returns ok1267 user_role: :guest, valid_token: true, sent_using: :basic_auth, expected_status: :ok1268 behaves like returning response status1269 returns ok1270 user_role: :guest, valid_token: false, sent_using: :custom_header, expected_status: :unauthorized1271 behaves like returning response status1272 returns unauthorized1273 user_role: :guest, valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized1274 behaves like returning response status1275 returns unauthorized1276 and a deploy token1277 valid_token: true, sent_using: :custom_header, expected_status: :ok1278 behaves like returning response status1279 returns ok1280 valid_token: false, sent_using: :custom_header, expected_status: :unauthorized1281 behaves like returning response status1282 returns unauthorized1283 valid_token: true, sent_using: :basic_auth, expected_status: :ok1284 behaves like returning response status1285 returns ok1286 valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized1287 behaves like returning response status1288 returns unauthorized1289 and a ci job token1290 valid_token: true, sent_using: :custom_header, expected_status: :ok1291 behaves like returning response status1292 returns ok1293 valid_token: false, sent_using: :custom_header, expected_status: :unauthorized1294 behaves like returning response status1295 returns unauthorized1296 valid_token: true, sent_using: :basic_auth, expected_status: :ok1297 behaves like returning response status1298 returns ok1299 valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized1300 behaves like returning response status1301 returns unauthorized1302 behaves like a user pulling files1303 with a reporter pulling files1304 behaves like pulling existing files1305 when pulling a pom file1306 etag_service_response: #<ServiceResponse:0x00007a2cc59f4338 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1307 behaves like returning response status1308 returns ok1309 etag_service_response: #<ServiceResponse:0x00007a2cc5a0e490 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1310 behaves like returning response status1311 returns ok1312 etag_service_response: #<ServiceResponse:0x00007a2cc5a21d88 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil1313 behaves like returning response status1314 returns ok1315 etag_service_response: #<ServiceResponse:0x00007a2cc594e578 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"1316 behaves like returning a workhorse sendurl response1317 returns a workhorse sendurl response1318 when pulling a md5 file1319 returns it1320 when pulling a sha1 file1321 returns it1322 behaves like pulling non existing files1323 with file test.pom1324 behaves like returning a workhorse sendurl response1325 returns a workhorse sendurl response1326 with file test.md51327 behaves like returning a workhorse sendurl response1328 returns a workhorse sendurl response1329 with file test.sha11330 behaves like returning a workhorse sendurl response1331 returns a workhorse sendurl response1332 behaves like pulling existing files1333 when pulling a pom file1334 etag_service_response: #<ServiceResponse:0x00007a2cc47b2c60 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1335 behaves like returning response status1336 returns ok1337 etag_service_response: #<ServiceResponse:0x00007a2cc47be218 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1338 behaves like returning response status1339 returns ok1340 etag_service_response: #<ServiceResponse:0x00007a2cc47c9fa0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil1341 behaves like returning response status1342 returns ok1343 etag_service_response: #<ServiceResponse:0x00007a2cc47d11b0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"1344 behaves like returning a workhorse sendurl response1345 returns a workhorse sendurl response1346 when pulling a md5 file1347 returns it1348 when pulling a sha1 file1349 returns it1350 behaves like pulling non existing files1351 with file test.pom1352 behaves like returning a workhorse sendurl response1353 returns a workhorse sendurl response1354 with file test.md51355 behaves like returning a workhorse sendurl response1356 returns a workhorse sendurl response1357 with file test.sha11358 behaves like returning a workhorse sendurl response1359 returns a workhorse sendurl response1360 with a developer pulling files1361 behaves like pulling existing files1362 when pulling a pom file1363 etag_service_response: #<ServiceResponse:0x00007a2cc46e9e00 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1364 behaves like returning response status1365 returns ok1366 etag_service_response: #<ServiceResponse:0x00007a2cc4683e20 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1367 behaves like returning response status1368 returns ok1369 etag_service_response: #<ServiceResponse:0x00007a2cc468a4f0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil1370 behaves like returning response status1371 returns ok1372 etag_service_response: #<ServiceResponse:0x00007a2cc4693618 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"1373 behaves like returning a workhorse sendurl response1374 returns a workhorse sendurl response1375 when pulling a md5 file1376 returns it1377 when pulling a sha1 file1378 returns it1379 behaves like pulling non existing files1380 with file test.pom1381 behaves like returning a workhorse senddependency response1382 returns a workhorse senddependency response1383 with file test.md51384 behaves like returning a workhorse sendurl response1385 returns a workhorse sendurl response1386 with file test.sha11387 behaves like returning a workhorse sendurl response1388 returns a workhorse sendurl response1389 behaves like pulling existing files1390 when pulling a pom file1391 etag_service_response: #<ServiceResponse:0x00007a2cc45a4d10 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1392 behaves like returning response status1393 returns ok1394 etag_service_response: #<ServiceResponse:0x00007a2cc45b13f8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1395 behaves like returning response status1396 returns ok1397 etag_service_response: #<ServiceResponse:0x00007a2cc45b9da0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil1398 behaves like returning response status1399 returns ok1400 etag_service_response: #<ServiceResponse:0x00007a2cc45c3170 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"1401 behaves like returning a workhorse sendurl response1402 returns a workhorse sendurl response1403 when pulling a md5 file1404 returns it1405 when pulling a sha1 file1406 returns it1407 behaves like pulling non existing files1408 with file test.pom1409 behaves like returning a workhorse senddependency response1410 returns a workhorse senddependency response1411 with file test.md51412 behaves like returning a workhorse sendurl response1413 returns a workhorse sendurl response1414 with file test.sha11415 behaves like returning a workhorse sendurl response1416 returns a workhorse sendurl response1417 with a maintainer pulling files1418 behaves like pulling existing files1419 when pulling a pom file1420 etag_service_response: #<ServiceResponse:0x00007a2cc4463b18 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1421 behaves like returning response status1422 returns ok1423 etag_service_response: #<ServiceResponse:0x00007a2cc4468140 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1424 behaves like returning response status1425 returns ok1426 etag_service_response: #<ServiceResponse:0x00007a2cc4470d90 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil1427 behaves like returning response status1428 returns ok1429 etag_service_response: #<ServiceResponse:0x00007a2cc4478860 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"1430 behaves like returning a workhorse senddependency response1431 returns a workhorse senddependency response1432 when pulling a md5 file1433 returns it1434 when pulling a sha1 file1435 returns it1436 behaves like pulling non existing files1437 with file test.pom1438 behaves like returning a workhorse senddependency response1439 returns a workhorse senddependency response1440 with file test.md51441 behaves like returning a workhorse sendurl response1442 returns a workhorse sendurl response1443 with file test.sha11444 behaves like returning a workhorse sendurl response1445 returns a workhorse sendurl response1446 behaves like pulling existing files1447 when pulling a pom file1448 etag_service_response: #<ServiceResponse:0x00007a2cc4393a58 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1449 behaves like returning response status1450 returns ok1451 etag_service_response: #<ServiceResponse:0x00007a2cc4398ff8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1452 behaves like returning response status1453 returns ok1454 etag_service_response: #<ServiceResponse:0x00007a2cc43a1a18 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil1455 behaves like returning response status1456 returns ok1457 etag_service_response: #<ServiceResponse:0x00007a2cc4323b90 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"1458 behaves like returning a workhorse senddependency response1459 returns a workhorse senddependency response1460 when pulling a md5 file1461 returns it1462 when pulling a sha1 file1463 returns it1464 behaves like pulling non existing files1465 with file test.pom1466 behaves like returning a workhorse senddependency response1467 returns a workhorse senddependency response1468 with file test.md51469 behaves like returning a workhorse sendurl response1470 returns a workhorse sendurl response1471 with file test.sha11472 behaves like returning a workhorse sendurl response1473 returns a workhorse sendurl response1474 with a ci job token1475 with custom headers1476 behaves like pulling existing files1477 when pulling a pom file1478 etag_service_response: #<ServiceResponse:0x00007a2cc41d8a60 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1479 behaves like returning response status1480 returns ok1481 etag_service_response: #<ServiceResponse:0x00007a2cc41e7628 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1482 behaves like returning response status1483 returns ok1484 etag_service_response: #<ServiceResponse:0x00007a2cc41f34c8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil1485 behaves like returning response status1486 returns ok1487 etag_service_response: #<ServiceResponse:0x00007a2cc41fd3d8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"1488 behaves like returning a workhorse senddependency response1489 returns a workhorse senddependency response1490 when pulling a md5 file1491 returns it1492 when pulling a sha1 file1493 returns it1494 behaves like pulling non existing files1495 with file test.pom1496 behaves like returning a workhorse senddependency response1497 returns a workhorse senddependency response1498 with file test.md51499 behaves like returning a workhorse sendurl response1500 returns a workhorse sendurl response1501 with file test.sha11502 behaves like returning a workhorse sendurl response1503 returns a workhorse sendurl response1504 with basic auth1505 behaves like pulling existing files1506 when pulling a pom file1507 etag_service_response: #<ServiceResponse:0x00007a2cc4077838 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1508 behaves like returning response status1509 returns ok1510 etag_service_response: #<ServiceResponse:0x00007a2cc407dc10 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1511 behaves like returning response status1512 returns ok1513 etag_service_response: #<ServiceResponse:0x00007a2cc408aa78 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil1514 behaves like returning response status1515 returns ok1516 etag_service_response: #<ServiceResponse:0x00007a2cc40912b0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"1517 behaves like returning a workhorse senddependency response1518 returns a workhorse senddependency response1519 when pulling a md5 file1520 returns it1521 when pulling a sha1 file1522 returns it1523 behaves like pulling non existing files1524 with file test.pom1525 behaves like returning a workhorse senddependency response1526 returns a workhorse senddependency response1527 with file test.md51528 behaves like returning a workhorse sendurl response1529 returns a workhorse sendurl response1530 with file test.sha11531 behaves like returning a workhorse sendurl response1532 returns a workhorse sendurl response1533 with a deploy token1534 with custom headers1535 behaves like pulling existing files1536 when pulling a pom file1537 etag_service_response: #<ServiceResponse:0x00007a2cc3f2c190 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1538 behaves like returning response status1539 returns ok1540 etag_service_response: #<ServiceResponse:0x00007a2cc3f3b168 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1541 behaves like returning response status1542 returns ok1543 etag_service_response: #<ServiceResponse:0x00007a2cc3f471e8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil1544 behaves like returning response status1545 returns ok1546 etag_service_response: #<ServiceResponse:0x00007a2cc3f4f9d8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"1547 behaves like returning a workhorse senddependency response1548 returns a workhorse senddependency response1549 when pulling a md5 file1550 returns it1551 when pulling a sha1 file1552 returns it1553 behaves like pulling non existing files1554 with file test.pom1555 behaves like returning a workhorse senddependency response1556 returns a workhorse senddependency response1557 with file test.md51558 behaves like returning a workhorse sendurl response1559 returns a workhorse sendurl response1560 with file test.sha11561 behaves like returning a workhorse sendurl response1562 returns a workhorse sendurl response1563 with basic auth1564 behaves like pulling existing files1565 when pulling a pom file1566 etag_service_response: #<ServiceResponse:0x00007a2cc3e497c8 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1567 behaves like returning response status1568 returns ok1569 etag_service_response: #<ServiceResponse:0x00007a2cc3e56270 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1570 behaves like returning response status1571 returns ok1572 etag_service_response: #<ServiceResponse:0x00007a2cc3dcac48 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil1573 behaves like returning response status1574 returns ok1575 etag_service_response: #<ServiceResponse:0x00007a2cc3dd45b8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"1576 behaves like returning a workhorse senddependency response1577 returns a workhorse senddependency response1578 when pulling a md5 file1579 returns it1580 when pulling a sha1 file1581 returns it1582 behaves like pulling non existing files1583 with file test.pom1584 behaves like returning a workhorse senddependency response1585 returns a workhorse senddependency response1586 with file test.md51587 behaves like returning a workhorse sendurl response1588 returns a workhorse sendurl response1589 with file test.sha11590 behaves like returning a workhorse sendurl response1591 returns a workhorse sendurl response1592 with an internal project1593 behaves like handling different token types1594 and a personal access token1595 user_role: :anonymous, valid_token: nil, sent_using: nil, expected_status: :unauthorized1596 behaves like returning response status1597 returns unauthorized1598 user_role: :guest, valid_token: true, sent_using: :custom_header, expected_status: :ok1599 behaves like returning response status1600 returns ok1601 user_role: :guest, valid_token: true, sent_using: :basic_auth, expected_status: :ok1602 behaves like returning response status1603 returns ok1604 user_role: :guest, valid_token: false, sent_using: :custom_header, expected_status: :unauthorized1605 behaves like returning response status1606 returns unauthorized1607 user_role: :guest, valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized1608 behaves like returning response status1609 returns unauthorized1610 and a deploy token1611 valid_token: true, sent_using: :custom_header, expected_status: :ok1612 behaves like returning response status1613 returns ok1614 valid_token: false, sent_using: :custom_header, expected_status: :unauthorized1615 behaves like returning response status1616 returns unauthorized1617 valid_token: true, sent_using: :basic_auth, expected_status: :ok1618 behaves like returning response status1619 returns ok1620 valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized1621 behaves like returning response status1622 returns unauthorized1623 and a ci job token1624 valid_token: true, sent_using: :custom_header, expected_status: :ok1625 behaves like returning response status1626 returns ok1627 valid_token: false, sent_using: :custom_header, expected_status: :unauthorized1628 behaves like returning response status1629 returns unauthorized1630 valid_token: true, sent_using: :basic_auth, expected_status: :ok1631 behaves like returning response status1632 returns ok1633 valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized1634 behaves like returning response status1635 returns unauthorized1636 behaves like a user pulling files1637 with a reporter pulling files1638 behaves like pulling existing files1639 when pulling a pom file1640 etag_service_response: #<ServiceResponse:0x00007a2cc3af5180 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1641 behaves like returning response status1642 returns ok1643 etag_service_response: #<ServiceResponse:0x00007a2cc3a76600 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1644 behaves like returning response status1645 returns ok1646 etag_service_response: #<ServiceResponse:0x00007a2cc3a82b58 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil1647 behaves like returning response status1648 returns ok1649 etag_service_response: #<ServiceResponse:0x00007a2cc3a8d990 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"1650 behaves like returning a workhorse sendurl response1651 returns a workhorse sendurl response1652 when pulling a md5 file1653 returns it1654 when pulling a sha1 file1655 returns it1656 behaves like pulling non existing files1657 with file test.pom1658 behaves like returning a workhorse sendurl response1659 returns a workhorse sendurl response1660 with file test.md51661 behaves like returning a workhorse sendurl response1662 returns a workhorse sendurl response1663 with file test.sha11664 behaves like returning a workhorse sendurl response1665 returns a workhorse sendurl response1666 behaves like pulling existing files1667 when pulling a pom file1668 etag_service_response: #<ServiceResponse:0x00007a2cc39633f8 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1669 behaves like returning response status1670 returns ok1671 etag_service_response: #<ServiceResponse:0x00007a2cc396b1e8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1672 behaves like returning response status1673 returns ok1674 etag_service_response: #<ServiceResponse:0x00007a2cc39770b0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil1675 behaves like returning response status1676 returns ok1677 etag_service_response: #<ServiceResponse:0x00007a2cc397df00 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"1678 behaves like returning a workhorse sendurl response1679 returns a workhorse sendurl response1680 when pulling a md5 file1681 returns it1682 when pulling a sha1 file1683 returns it1684 behaves like pulling non existing files1685 with file test.pom1686 behaves like returning a workhorse sendurl response1687 returns a workhorse sendurl response1688 with file test.md51689 behaves like returning a workhorse sendurl response1690 returns a workhorse sendurl response1691 with file test.sha11692 behaves like returning a workhorse sendurl response1693 returns a workhorse sendurl response1694 with a developer pulling files1695 behaves like pulling existing files1696 when pulling a pom file1697 etag_service_response: #<ServiceResponse:0x00007a2cc37d9b40 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1698 behaves like returning response status1699 returns ok1700 etag_service_response: #<ServiceResponse:0x00007a2cc37e5f08 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1701 behaves like returning response status1702 returns ok1703 etag_service_response: #<ServiceResponse:0x00007a2cc37ecdf8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil1704 behaves like returning response status1705 returns ok1706 etag_service_response: #<ServiceResponse:0x00007a2cc37f58e0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"1707 behaves like returning a workhorse sendurl response1708 returns a workhorse sendurl response1709 when pulling a md5 file1710 returns it1711 when pulling a sha1 file1712 returns it1713 behaves like pulling non existing files1714 with file test.pom1715 behaves like returning a workhorse senddependency response1716 returns a workhorse senddependency response1717 with file test.md51718 behaves like returning a workhorse sendurl response1719 returns a workhorse sendurl response1720 with file test.sha11721 behaves like returning a workhorse sendurl response1722 returns a workhorse sendurl response1723 behaves like pulling existing files1724 when pulling a pom file1725 etag_service_response: #<ServiceResponse:0x00007a2cc36cd238 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1726 behaves like returning response status1727 returns ok1728 etag_service_response: #<ServiceResponse:0x00007a2cc36dd2a0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1729 behaves like returning response status1730 returns ok1731 etag_service_response: #<ServiceResponse:0x00007a2cc3644870 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil1732 behaves like returning response status1733 returns ok1734 etag_service_response: #<ServiceResponse:0x00007a2cc36561d8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"1735 behaves like returning a workhorse sendurl response1736 returns a workhorse sendurl response1737 when pulling a md5 file1738 returns it1739 when pulling a sha1 file1740 returns it1741 behaves like pulling non existing files1742 with file test.pom1743 behaves like returning a workhorse senddependency response1744 returns a workhorse senddependency response1745 with file test.md51746 behaves like returning a workhorse sendurl response1747 returns a workhorse sendurl response1748 with file test.sha11749 behaves like returning a workhorse sendurl response1750 returns a workhorse sendurl response1751 with a maintainer pulling files1752 behaves like pulling existing files1753 when pulling a pom file1754 etag_service_response: #<ServiceResponse:0x00007a2cc3510490 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1755 behaves like returning response status1756 returns ok1757 etag_service_response: #<ServiceResponse:0x00007a2cc3527c30 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1758 behaves like returning response status1759 returns ok1760 etag_service_response: #<ServiceResponse:0x00007a2cc3533940 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil1761 behaves like returning response status1762 returns ok1763 etag_service_response: #<ServiceResponse:0x00007a2cc353b8c0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"1764 behaves like returning a workhorse senddependency response1765 returns a workhorse senddependency response1766 when pulling a md5 file1767 returns it1768 when pulling a sha1 file1769 returns it1770 behaves like pulling non existing files1771 with file test.pom1772 behaves like returning a workhorse senddependency response1773 returns a workhorse senddependency response1774 with file test.md51775 behaves like returning a workhorse sendurl response1776 returns a workhorse sendurl response1777 with file test.sha11778 behaves like returning a workhorse sendurl response1779 returns a workhorse sendurl response1780 behaves like pulling existing files1781 when pulling a pom file1782 etag_service_response: #<ServiceResponse:0x00007a2cc3318890 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1783 behaves like returning response status1784 returns ok1785 etag_service_response: #<ServiceResponse:0x00007a2cc3325748 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1786 behaves like returning response status1787 returns ok1788 etag_service_response: #<ServiceResponse:0x00007a2cc3337790 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil1789 behaves like returning response status1790 returns ok1791 etag_service_response: #<ServiceResponse:0x00007a2cc333c0d8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"1792 behaves like returning a workhorse senddependency response1793 returns a workhorse senddependency response1794 when pulling a md5 file1795 returns it1796 when pulling a sha1 file1797 returns it1798 behaves like pulling non existing files1799 with file test.pom1800 behaves like returning a workhorse senddependency response1801 returns a workhorse senddependency response1802 with file test.md51803 behaves like returning a workhorse sendurl response1804 returns a workhorse sendurl response1805 with file test.sha11806 behaves like returning a workhorse sendurl response1807 returns a workhorse sendurl response1808 with a ci job token1809 with custom headers1810 behaves like pulling existing files1811 when pulling a pom file1812 etag_service_response: #<ServiceResponse:0x00007a2cc3222e90 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1813 behaves like returning response status1814 returns ok1815 etag_service_response: #<ServiceResponse:0x00007a2cc3193da8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1816 behaves like returning response status1817 returns ok1818 etag_service_response: #<ServiceResponse:0x00007a2cc319f450 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil1819 behaves like returning response status1820 returns ok1821 etag_service_response: #<ServiceResponse:0x00007a2cc31a66d8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"1822 behaves like returning a workhorse senddependency response1823 returns a workhorse senddependency response1824 when pulling a md5 file1825 returns it1826 when pulling a sha1 file1827 returns it1828 behaves like pulling non existing files1829 with file test.pom1830 behaves like returning a workhorse senddependency response1831 returns a workhorse senddependency response1832 with file test.md51833 behaves like returning a workhorse sendurl response1834 returns a workhorse sendurl response1835 with file test.sha11836 behaves like returning a workhorse sendurl response1837 returns a workhorse sendurl response1838 with basic auth1839 behaves like pulling existing files1840 when pulling a pom file1841 etag_service_response: #<ServiceResponse:0x00007a2cc307ea30 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1842 behaves like returning response status1843 returns ok1844 etag_service_response: #<ServiceResponse:0x00007a2cc308aad8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1845 behaves like returning response status1846 returns ok1847 etag_service_response: #<ServiceResponse:0x00007a2cc3090780 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil1848 behaves like returning response status1849 returns ok1850 etag_service_response: #<ServiceResponse:0x00007a2cc2ff4088 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"1851 behaves like returning a workhorse senddependency response1852 returns a workhorse senddependency response1853 when pulling a md5 file1854 returns it1855 when pulling a sha1 file1856 returns it1857 behaves like pulling non existing files1858 with file test.pom1859 behaves like returning a workhorse senddependency response1860 returns a workhorse senddependency response1861 with file test.md51862 behaves like returning a workhorse sendurl response1863 returns a workhorse sendurl response1864 with file test.sha11865 behaves like returning a workhorse sendurl response1866 returns a workhorse sendurl response1867 with a deploy token1868 with custom headers1869 behaves like pulling existing files1870 when pulling a pom file1871 etag_service_response: #<ServiceResponse:0x00007a2cc2ee2050 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1872 behaves like returning response status1873 returns ok1874 etag_service_response: #<ServiceResponse:0x00007a2cc2ef6e60 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1875 behaves like returning response status1876 returns ok1877 etag_service_response: #<ServiceResponse:0x00007a2cc2f02328 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil1878 behaves like returning response status1879 returns ok1880 etag_service_response: #<ServiceResponse:0x00007a2cc2f08ed0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"1881 behaves like returning a workhorse senddependency response1882 returns a workhorse senddependency response1883 when pulling a md5 file1884 returns it1885 when pulling a sha1 file1886 returns it1887 behaves like pulling non existing files1888 with file test.pom1889 behaves like returning a workhorse senddependency response1890 returns a workhorse senddependency response1891 with file test.md51892 behaves like returning a workhorse sendurl response1893 returns a workhorse sendurl response1894 with file test.sha11895 behaves like returning a workhorse sendurl response1896 returns a workhorse sendurl response1897 with basic auth1898 behaves like pulling existing files1899 when pulling a pom file1900 etag_service_response: #<ServiceResponse:0x00007a2cc2d78520 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1901 behaves like returning response status1902 returns ok1903 etag_service_response: #<ServiceResponse:0x00007a2cc2d810f8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1904 behaves like returning response status1905 returns ok1906 etag_service_response: #<ServiceResponse:0x00007a2cc2d886c8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil1907 behaves like returning response status1908 returns ok1909 etag_service_response: #<ServiceResponse:0x00007a2cc2d90cd8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"1910 behaves like returning a workhorse senddependency response1911 returns a workhorse senddependency response1912 when pulling a md5 file1913 returns it1914 when pulling a sha1 file1915 returns it1916 behaves like pulling non existing files1917 with file test.pom1918 behaves like returning a workhorse senddependency response1919 returns a workhorse senddependency response1920 with file test.md51921 behaves like returning a workhorse sendurl response1922 returns a workhorse sendurl response1923 with file test.sha11924 behaves like returning a workhorse sendurl response1925 returns a workhorse sendurl response1926 with a private project1927 behaves like handling different token types1928 and a personal access token1929 user_role: :anonymous, valid_token: nil, sent_using: nil, expected_status: :unauthorized1930 behaves like returning response status1931 returns unauthorized1932 user_role: :guest, valid_token: true, sent_using: :custom_header, expected_status: :forbidden1933 behaves like returning response status1934 returns forbidden1935 user_role: :guest, valid_token: true, sent_using: :basic_auth, expected_status: :forbidden1936 behaves like returning response status1937 returns forbidden1938 user_role: :guest, valid_token: false, sent_using: :custom_header, expected_status: :unauthorized1939 behaves like returning response status1940 returns unauthorized1941 user_role: :guest, valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized1942 behaves like returning response status1943 returns unauthorized1944 user_role: :reporter, valid_token: true, sent_using: :custom_header, expected_status: :ok1945 behaves like returning response status1946 returns ok1947 user_role: :reporter, valid_token: true, sent_using: :basic_auth, expected_status: :ok1948 behaves like returning response status1949 returns ok1950 user_role: :reporter, valid_token: false, sent_using: :custom_header, expected_status: :unauthorized1951 behaves like returning response status1952 returns unauthorized1953 user_role: :reporter, valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized1954 behaves like returning response status1955 returns unauthorized1956 and a deploy token1957 valid_token: true, sent_using: :custom_header, expected_status: :ok1958 behaves like returning response status1959 returns ok1960 valid_token: false, sent_using: :custom_header, expected_status: :unauthorized1961 behaves like returning response status1962 returns unauthorized1963 valid_token: true, sent_using: :basic_auth, expected_status: :ok1964 behaves like returning response status1965 returns ok1966 valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized1967 behaves like returning response status1968 returns unauthorized1969 and a ci job token1970 valid_token: true, sent_using: :custom_header, expected_status: :ok1971 behaves like returning response status1972 returns ok1973 valid_token: false, sent_using: :custom_header, expected_status: :unauthorized1974 behaves like returning response status1975 returns unauthorized1976 valid_token: true, sent_using: :basic_auth, expected_status: :ok1977 behaves like returning response status1978 returns ok1979 valid_token: false, sent_using: :basic_auth, expected_status: :unauthorized1980 behaves like returning response status1981 returns unauthorized1982 behaves like a user pulling files1983 with a reporter pulling files1984 behaves like pulling existing files1985 when pulling a pom file1986 etag_service_response: #<ServiceResponse:0x00007a2cc27c1208 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil1987 behaves like returning response status1988 returns ok1989 etag_service_response: #<ServiceResponse:0x00007a2cc27d0af0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil1990 behaves like returning response status1991 returns ok1992 etag_service_response: #<ServiceResponse:0x00007a2cc27e57e8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil1993 behaves like returning response status1994 returns ok1995 etag_service_response: #<ServiceResponse:0x00007a2cc27f1f98 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"1996 behaves like returning a workhorse sendurl response1997 returns a workhorse sendurl response1998 when pulling a md5 file1999 returns it2000 when pulling a sha1 file2001 returns it2002 behaves like pulling non existing files2003 with file test.pom2004 behaves like returning a workhorse sendurl response2005 returns a workhorse sendurl response2006 with file test.md52007 behaves like returning a workhorse sendurl response2008 returns a workhorse sendurl response2009 with file test.sha12010 behaves like returning a workhorse sendurl response2011 returns a workhorse sendurl response2012 behaves like pulling existing files2013 when pulling a pom file2014 etag_service_response: #<ServiceResponse:0x00007a2cc26bd6b8 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil2015 behaves like returning response status2016 returns ok2017 etag_service_response: #<ServiceResponse:0x00007a2cc263cf90 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil2018 behaves like returning response status2019 returns ok2020 etag_service_response: #<ServiceResponse:0x00007a2cc2655518 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil2021 behaves like returning response status2022 returns ok2023 etag_service_response: #<ServiceResponse:0x00007a2cc265de48 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"2024 behaves like returning a workhorse sendurl response2025 returns a workhorse sendurl response2026 when pulling a md5 file2027 returns it2028 when pulling a sha1 file2029 returns it2030 behaves like pulling non existing files2031 with file test.pom2032 behaves like returning a workhorse sendurl response2033 returns a workhorse sendurl response2034 with file test.md52035 behaves like returning a workhorse sendurl response2036 returns a workhorse sendurl response2037 with file test.sha12038 behaves like returning a workhorse sendurl response2039 returns a workhorse sendurl response2040 with a developer pulling files2041 behaves like pulling existing files2042 when pulling a pom file2043 etag_service_response: #<ServiceResponse:0x00007a2cc2556b30 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil2044 behaves like returning response status2045 returns ok2046 etag_service_response: #<ServiceResponse:0x00007a2cc255c3c8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil2047 behaves like returning response status2048 returns ok2049 etag_service_response: #<ServiceResponse:0x00007a2cc2565518 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil2050 behaves like returning response status2051 returns ok2052 etag_service_response: #<ServiceResponse:0x00007a2cc24e55e8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"2053 behaves like returning a workhorse sendurl response2054 returns a workhorse sendurl response2055 when pulling a md5 file2056 returns it2057 when pulling a sha1 file2058 returns it2059 behaves like pulling non existing files2060 with file test.pom2061 behaves like returning a workhorse senddependency response2062 returns a workhorse senddependency response2063 with file test.md52064 behaves like returning a workhorse sendurl response2065 returns a workhorse sendurl response2066 with file test.sha12067 behaves like returning a workhorse sendurl response2068 returns a workhorse sendurl response2069 behaves like pulling existing files2070 when pulling a pom file2071 etag_service_response: #<ServiceResponse:0x00007a2cc23f7190 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil2072 behaves like returning response status2073 returns ok2074 etag_service_response: #<ServiceResponse:0x00007a2cc2403080 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil2075 behaves like returning response status2076 returns ok2077 etag_service_response: #<ServiceResponse:0x00007a2cc240ae48 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil2078 behaves like returning response status2079 returns ok2080 etag_service_response: #<ServiceResponse:0x00007a2cc2412238 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse sendurl response"2081 behaves like returning a workhorse sendurl response2082 returns a workhorse sendurl response2083 when pulling a md5 file2084 returns it2085 when pulling a sha1 file2086 returns it2087 behaves like pulling non existing files2088 with file test.pom2089 behaves like returning a workhorse senddependency response2090 returns a workhorse senddependency response2091 with file test.md52092 behaves like returning a workhorse sendurl response2093 returns a workhorse sendurl response2094 with file test.sha12095 behaves like returning a workhorse sendurl response2096 returns a workhorse sendurl response2097 with a maintainer pulling files2098 behaves like pulling existing files2099 when pulling a pom file2100 etag_service_response: #<ServiceResponse:0x00007a2cc2333ec0 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil2101 behaves like returning response status2102 returns ok2103 etag_service_response: #<ServiceResponse:0x00007a2cc22d0f28 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil2104 behaves like returning response status2105 returns ok2106 etag_service_response: #<ServiceResponse:0x00007a2cc22d8e80 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil2107 behaves like returning response status2108 returns ok2109 etag_service_response: #<ServiceResponse:0x00007a2cc22e2480 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"2110 behaves like returning a workhorse senddependency response2111 returns a workhorse senddependency response2112 when pulling a md5 file2113 returns it2114 when pulling a sha1 file2115 returns it2116 behaves like pulling non existing files2117 with file test.pom2118 behaves like returning a workhorse senddependency response2119 returns a workhorse senddependency response2120 with file test.md52121 behaves like returning a workhorse sendurl response2122 returns a workhorse sendurl response2123 with file test.sha12124 behaves like returning a workhorse sendurl response2125 returns a workhorse sendurl response2126 behaves like pulling existing files2127 when pulling a pom file2128 etag_service_response: #<ServiceResponse:0x00007a2cc21ecdf0 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil2129 behaves like returning response status2130 returns ok2131 etag_service_response: #<ServiceResponse:0x00007a2cc21fe3e8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil2132 behaves like returning response status2133 returns ok2134 etag_service_response: #<ServiceResponse:0x00007a2cc2206890 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil2135 behaves like returning response status2136 returns ok2137 etag_service_response: #<ServiceResponse:0x00007a2cc22181d0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"2138 behaves like returning a workhorse senddependency response2139 returns a workhorse senddependency response2140 when pulling a md5 file2141 returns it2142 when pulling a sha1 file2143 returns it2144 behaves like pulling non existing files2145 with file test.pom2146 behaves like returning a workhorse senddependency response2147 returns a workhorse senddependency response2148 with file test.md52149 behaves like returning a workhorse sendurl response2150 returns a workhorse sendurl response2151 with file test.sha12152 behaves like returning a workhorse sendurl response2153 returns a workhorse sendurl response2154 with a ci job token2155 with custom headers2156 behaves like pulling existing files2157 when pulling a pom file2158 etag_service_response: #<ServiceResponse:0x00007a2cc20be898 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil2159 behaves like returning response status2160 returns ok2161 etag_service_response: #<ServiceResponse:0x00007a2cc20c64d0 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil2162 behaves like returning response status2163 returns ok2164 etag_service_response: #<ServiceResponse:0x00007a2cc20cd988 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil2165 behaves like returning response status2166 returns ok2167 etag_service_response: #<ServiceResponse:0x00007a2cc20d6628 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"2168 behaves like returning a workhorse senddependency response2169 returns a workhorse senddependency response2170 when pulling a md5 file2171 returns it2172 when pulling a sha1 file2173 returns it2174 behaves like pulling non existing files2175 with file test.pom2176 behaves like returning a workhorse senddependency response2177 returns a workhorse senddependency response2178 with file test.md52179 behaves like returning a workhorse sendurl response2180 returns a workhorse sendurl response2181 with file test.sha12182 behaves like returning a workhorse sendurl response2183 returns a workhorse sendurl response2184 with basic auth2185 behaves like pulling existing files2186 when pulling a pom file2187 etag_service_response: #<ServiceResponse:0x00007a2cc200e5d8 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil2188 behaves like returning response status2189 returns ok2190 etag_service_response: #<ServiceResponse:0x00007a2cc1faffd8 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil2191 behaves like returning response status2192 returns ok2193 etag_service_response: #<ServiceResponse:0x00007a2cc1fb7c38 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil2194 behaves like returning response status2195 returns ok2196 etag_service_response: #<ServiceResponse:0x00007a2cc1fbff00 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"2197 behaves like returning a workhorse senddependency response2198 returns a workhorse senddependency response2199 when pulling a md5 file2200 returns it2201 when pulling a sha1 file2202 returns it2203 behaves like pulling non existing files2204 with file test.pom2205 behaves like returning a workhorse senddependency response2206 returns a workhorse senddependency response2207 with file test.md52208 behaves like returning a workhorse sendurl response2209 returns a workhorse sendurl response2210 with file test.sha12211 behaves like returning a workhorse sendurl response2212 returns a workhorse sendurl response2213 with a deploy token2214 with custom headers2215 behaves like pulling existing files2216 when pulling a pom file2217 etag_service_response: #<ServiceResponse:0x00007a2cc1edc160 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil2218 behaves like returning response status2219 returns ok2220 etag_service_response: #<ServiceResponse:0x00007a2cc1eeaa58 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil2221 behaves like returning response status2222 returns ok2223 etag_service_response: #<ServiceResponse:0x00007a2cc1ef0f70 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil2224 behaves like returning response status2225 returns ok2226 etag_service_response: #<ServiceResponse:0x00007a2cc1e84370 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"2227 behaves like returning a workhorse senddependency response2228 returns a workhorse senddependency response2229 when pulling a md5 file2230 returns it2231 when pulling a sha1 file2232 returns it2233 behaves like pulling non existing files2234 with file test.pom2235 behaves like returning a workhorse senddependency response2236 returns a workhorse senddependency response2237 with file test.md52238 behaves like returning a workhorse sendurl response2239 returns a workhorse sendurl response2240 with file test.sha12241 behaves like returning a workhorse sendurl response2242 returns a workhorse sendurl response2243 with basic auth2244 behaves like pulling existing files2245 when pulling a pom file2246 etag_service_response: #<ServiceResponse:0x00007a2cc1dca358 @status=:success, @message=nil, @payload={}, @http_status=:ok, @reason=nil>, expected_status: :ok, shared_example: nil2247 behaves like returning response status2248 returns ok2249 etag_service_response: #<ServiceResponse:0x00007a2cc1dd3e80 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:response_error_code>, expected_status: :ok, shared_example: nil2250 behaves like returning response status2251 returns ok2252 etag_service_response: #<ServiceResponse:0x00007a2cc1dd5d70 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:no_etag>, expected_status: :ok, shared_example: nil2253 behaves like returning response status2254 returns ok2255 etag_service_response: #<ServiceResponse:0x00007a2cc1ddeb50 @status=:error, @message="", @payload={}, @http_status=nil, @reason=:wrong_etag>, expected_status: nil, shared_example: "returning a workhorse senddependency response"2256 behaves like returning a workhorse senddependency response2257 returns a workhorse senddependency response2258 when pulling a md5 file2259 returns it2260 when pulling a sha1 file2261 returns it2262 behaves like pulling non existing files2263 with file test.pom2264 behaves like returning a workhorse senddependency response2265 returns a workhorse senddependency response2266 with file test.md52267 behaves like returning a workhorse sendurl response2268 returns a workhorse sendurl response2269 with file test.sha12270 behaves like returning a workhorse sendurl response2271 returns a workhorse sendurl response2272 with invalid parameters2273 with an invalid path2274 behaves like returning response status with error2275 returns bad_request and error message2276 with an invalid file name2277 behaves like returning response status with error2278 returns bad_request and error message2279 with a developer2280 with non existing dependency proxy setting2281 behaves like returning response status2282 returns not_found2283 with disabled dependency proxy setting2284 behaves like returning response status2285 returns not_found2286 with packages disabled2287 behaves like returning response status2288 returns not_found2289 with dependency_proxy disabled2290 behaves like returning response status2291 returns not_found2292 with licensed feature dependency_proxy_for_packages disabled2293 behaves like returning response status2294 returns forbidden2295 with feature flag packages_dependency_proxy_maven disabled2296 behaves like returning response status2297 returns not_found2298API::Vulnerabilities2299 GET /projects/:id/vulnerabilities2300 with an authorized user with proper permissions2301 returns all vulnerabilities of a project2302 with pagination2303 paginates the vulnerabilities according to the pagination params2304 behaves like forbids access to vulnerability API endpoint in case of disabled features2305 when security dashboard feature is not available2306 responds with 403 Forbidden2307 permissions2308 is expected to be allowed for :admin2309 is expected to be allowed for :owner2310 is expected to be allowed for :maintainer2311 is expected to be allowed for :developer2312 is expected to be allowed for :auditor2313 is expected to be denied for :reporter2314 is expected to be denied for :guest2315 is expected to be denied for :anonymous2316 GET /vulnerabilities/:id2317 with an authorized user with proper permissions2318 returns the desired vulnerability2319 returns the desired findings2320 behaves like responds with "not found" for an unknown vulnerability ID2321 is expected to respond with numeric status code not_found2322 behaves like forbids access to vulnerability API endpoint in case of disabled features2323 when security dashboard feature is not available2324 responds with 403 Forbidden2325 permissions2326 is expected to be allowed for :admin2327 is expected to be allowed for :owner2328 is expected to be allowed for :maintainer2329 is expected to be allowed for :developer2330 is expected to be allowed for :auditor2331 is expected to be denied for :reporter2332 is expected to be denied for :guest2333 is expected to be denied for :anonymous2334 POST /projects/:id/vulnerabilities2335 with an authorized user with proper permissions2336 creates a vulnerability from finding and attaches it to the vulnerability2337 when finding id is unknown2338 responds with expected error2339 when a vulnerability already exists for a specific finding2340 rejects creation of a new vulnerability from this finding2341 behaves like forbids access to vulnerability API endpoint in case of disabled features2342 when security dashboard feature is not available2343 responds with 403 Forbidden2344 permissions2345 is expected to be allowed for :admin2346 is expected to be allowed for :owner2347 is expected to be allowed for :maintainer2348 is expected to be denied for :developer2349 is expected to be denied for :auditor2350 is expected to be denied for :reporter2351 is expected to be denied for :guest2352 is expected to be denied for :anonymous2353 with `disable_developer_access_to_admin_vulnerability` disabled2354 is expected to be allowed for :developer2355 POST /vulnerabilities:id/dismiss2356 with an authorized user with proper permissions2357 behaves like responds with "not found" for an unknown vulnerability ID2358 is expected to respond with numeric status code not_found2359 when there is a dismissal error2360 responds with error2361 if a vulnerability is already dismissed2362 responds with 304 Not Modified2363 behaves like forbids access to vulnerability API endpoint in case of disabled features2364 when security dashboard feature is not available2365 responds with 403 Forbidden2366 permissions2367 is expected to be allowed for :admin2368 is expected to be allowed for :owner2369 is expected to be allowed for :maintainer2370 is expected to be denied for :developer2371 is expected to be denied for :auditor2372 is expected to be denied for :reporter2373 is expected to be denied for :guest2374 is expected to be denied for :anonymous2375 with `disable_developer_access_to_admin_vulnerability` disabled2376 is expected to be allowed for :developer2377 POST /vulnerabilities/:id/resolve2378 with an authorized user with proper permissions2379 resolves a vulnerability and its associated findings2380 with a comment2381 adds the comment to the vulnerability state transition2382 behaves like responds with "not found" for an unknown vulnerability ID2383 is expected to respond with numeric status code not_found2384 when the vulnerability is already resolved2385 responds with 304 Not Modified response2386 behaves like forbids access to vulnerability API endpoint in case of disabled features2387 when security dashboard feature is not available2388 responds with 403 Forbidden2389 permissions2390 is expected to be allowed for :admin2391 is expected to be allowed for :owner2392 is expected to be allowed for :maintainer2393 is expected to be denied for :developer2394 is expected to be denied for :auditor2395 is expected to be denied for :reporter2396 is expected to be denied for :guest2397 is expected to be denied for :anonymous2398 with `disable_developer_access_to_admin_vulnerability` disabled2399 is expected to be allowed for :developer2400 POST /vulnerabilities/:id/confirm2401 with an authorized user with proper permissions2402 confirms a vulnerability and its associated findings2403 behaves like responds with "not found" for an unknown vulnerability ID2404 is expected to respond with numeric status code not_found2405 when the vulnerability is already confirmed2406 responds with 304 Not Modified response2407 behaves like forbids access to vulnerability API endpoint in case of disabled features2408 when security dashboard feature is not available2409 responds with 403 Forbidden2410 permissions2411 is expected to be allowed for :admin2412 is expected to be allowed for :owner2413 is expected to be allowed for :maintainer2414 is expected to be denied for :developer2415 is expected to be denied for :auditor2416 is expected to be denied for :reporter2417 is expected to be denied for :guest2418 is expected to be denied for :anonymous2419 with `disable_developer_access_to_admin_vulnerability` disabled2420 is expected to be allowed for :developer2421 POST /vulnerabilities:id/revert2422 with an authorized user with proper permissions2423 reverts a vulnerability and its associated findings to detected state2424 behaves like responds with "not found" for an unknown vulnerability ID2425 is expected to respond with numeric status code not_found2426 when there is a revert error2427 responds with error2428 if a vulnerability is already in detected state2429 responds with 304 Not Modified2430 behaves like forbids access to vulnerability API endpoint in case of disabled features2431 when security dashboard feature is not available2432 responds with 403 Forbidden2433 permissions2434 is expected to be allowed for :admin2435 is expected to be allowed for :owner2436 is expected to be allowed for :maintainer2437 is expected to be denied for :developer2438 is expected to be denied for :auditor2439 is expected to be denied for :reporter2440 is expected to be denied for :guest2441 is expected to be denied for :anonymous2442 with `disable_developer_access_to_admin_vulnerability` disabled2443 is expected to be allowed for :developer2444API::Projects2445 GET /projects2446 does not break on license checks2447 when there are several projects owned by groups2448 avoids N+1 queries2449 when user requests hidden projects2450 when user is not admin2451 does not return hidden projects2452 when user is an admin2453 also returns hidden projects2454 when include_hidden option is off2455 does not return hidden projects2456 GET /projects/:id2457 with external authorization2458 when the user has access to the project2459 includes the label in the response2460 when the external service denies access2461 returns a 4042462 it does not return the label when the feature is not available2463 does not include the label in the response2464 with ip restriction2465 when the group_ip_restriction feature is not available2466 returns 2002467 when the group_ip_restriction feature is available2468 returns 404 for request from ip not in the range2469 returns 200 for request from ip in the range2470 compliance_frameworks attribute2471 when compliance_framework feature is available2472 when project has a compliance framework2473 exposes framework names as array of strings2474 when project has no compliance framework2475 returns an empty array2476 project soft-deletion2477 marked_for_deletion_at attribute2478 exposed when the feature is available2479 not exposed when the feature is not available2480 marked_for_deletion_on attribute2481 exposed when the feature is available2482 not exposed when the feature is not available2483 issuable default templates2484 when feature is available2485 returns issuable default templates2486 when user does not have permission to see issues2487 does not return issue default templates2488 when user does not have permission to see merge requests2489 does not return merge request default templates2490 issuable default templates feature not available2491 does not return issuable default templates2492 merge pipelines feature is available2493 returns merge pipelines enabled flag2494 merge pipelines feature not available2495 does not return merge pipelines enabled flag2496 when external_status_checks is available2497 returns only_allow_merge_if_all_status_checks_passed flag2498 when external_status_checks not available2499 does not return only_allow_merge_if_all_status_checks_passed enabled flag2500 merge trains feature is available2501 returns merge trains enabled flag2502 merge trains feature not available2503 does not return merge trains enabled flag2504 when protected_environments is available2505 returns allow_pipeline_trigger_approve_deployment flag2506 when protected_environments is not available2507 does not returns allow_pipeline_trigger_approve_deployment flag2508 GET /projects/:id/users2509 when unauthenticated2510 behaves like project users response2511 returns the project users2512 when authenticated2513 valid request2514 behaves like project users response2515 returns the project users2516 POST /projects/user/:id2517 with templates2518 behaves like creates projects with templates2519 creates a project using a template2520 returns a 400 error for an invalid template name2521 returns a 400 error for an invalid template ID2522 behaves like creates projects with templates2523 creates a project using a template2524 returns a 400 error for an invalid template name2525 returns a 400 error for an invalid template ID2526 behaves like creates projects with templates2527 creates a project using a template2528 returns a 400 error for an invalid template name2529 returns a 400 error for an invalid template ID2530 behaves like creates projects with templates2531 creates a project using a template2532 returns a 400 error for an invalid template name2533 returns a 400 error for an invalid template ID2534 POST /projects2535 with templates2536 behaves like creates projects with templates2537 creates a project using a template2538 returns a 400 error for an invalid template name2539 returns a 400 error for an invalid template ID2540 behaves like creates projects with templates2541 creates a project using a template2542 returns a 400 error for an invalid template name2543 returns a 400 error for an invalid template ID2544 behaves like creates projects with templates2545 creates a project using a template2546 returns a 400 error for an invalid template name2547 returns a 400 error for an invalid template ID2548 behaves like creates projects with templates2549 creates a project using a template2550 returns a 400 error for an invalid template name2551 returns a 400 error for an invalid template ID2552 when importing with mirror attributes2553 creates new project with pull mirroring set up2554 creates project without mirror settings when repository mirroring feature is disabled2555 when pull mirroring is not available2556 ignores the mirroring options2557 creates project with mirror settings2558 with requirements_access_level2559 updates project with given value2560 GET projects/:id/audit_events2561 behaves like inaccessable by reporter role and lower2562 for reporter2563 returns 403 response2564 for guest2565 returns 403 response2566 for anonymous2567 returns 403 response2568 when authenticated, as a member2569 returns only events authored by current user2570 when authenticated, as a project owner2571 audit events feature is not available2572 behaves like 403 response2573 returns 4032574 audit events feature is available2575 returns 200 response2576 includes the correct pagination headers2577 does not include audit events of a different project2578 parameters2579 behaves like an endpoint with keyset pagination2580 on making requests with supported ordering structure2581 includes keyset url params in the url response2582 does not include pagination headers2583 paginates the records correctly2584 on making requests with unsupported ordering structure2585 returns error2586 created_before parameter2587 returns audit events created before the given parameter2588 created_after parameter2589 returns audit events created after the given parameter2590 response schema2591 matches the response schema2592 Snowplow event tracking2593 behaves like Snowplow event tracking with RedisHLL context2594 behaves like Snowplow event tracking2595 is emitted2596 GET projects/:id/audit_events/:audit_event_id2597 behaves like inaccessable by reporter role and lower2598 for reporter2599 returns 403 response2600 for guest2601 returns 403 response2602 for anonymous2603 returns 403 response2604 when authenticated, as a guest2605 behaves like 403 response2606 returns 4032607 when authenticated, as a member2608 returns 200 response2609 existing audit event of a different user2610 behaves like 404 response2611 returns 4042612 when authenticated, as a project owner2613 audit events feature is not available2614 behaves like 403 response2615 returns 4032616 audit events feature is available2617 existent audit event2618 returns 200 response2619 response schema2620 matches the response schema2621 invalid audit_event_id2622 behaves like 400 response2623 returns 4002624 non existent audit event2625 non existent audit event of a project2626 behaves like 404 response2627 returns 4042628 existing audit event of a different project2629 behaves like 404 response2630 returns 4042631 PUT /projects/:id2632 issuable default templates feature is available2633 when updating issues_template2634 updates the content2635 when updating merge_requests_template2636 updates the content2637 when updating requirements_access_level2638 updates project with given value2639 issuable default templates feature not available2640 when updating issues_template2641 does not update the content2642 when updating merge_requests_template2643 does not update the content2644 merge pipelines feature is available2645 updates the content2646 when user does not have permission2647 does not update the content2648 merge pipelines feature feature not available2649 does not update the content2650 when external_status_checks is available2651 updates the content2652 when user does not have permission2653 does not update the content2654 when approvals_before_merge is nil2655 behaves like 400 response2656 returns 4002657 when external_status_checks not available2658 does not update the content2659 merge trains feature is available2660 updates the content2661 when user does not have permission2662 does not update the content2663 merge trains feature feature not available2664 does not update the content2665 when updating external classification2666 updates the classification label2667 when updating mirror related attributes2668 updates mirror related attributes2669 updates project without mirror attributes when the project is unable to set up repository mirroring2670 renders an API error when mirror user is invalid2671 returns 403 when the user does not have access to mirror settings2672 when pull mirroring is not available2673 does not update mirror related attributes2674 updates mirror related attributes when user is admin2675 when import_url is not a valid git endpoint2676 disallows creating a project with an import_url that is not reachable2677 when only disabling pull mirror2678 updates mirror to false2679 with mirror_branch_regex and only_mirror_protected_branches2680 fails2681 with only_mirror_protected_branches2682 when enabling only_mirror_protected_branches2683 removes mirror_branch_regex2684 when disabling only_mirror_protected_branches2685 keeps mirror_branch_regex2686 when removing mirror_branch_regex2687 with mirror_branch_regex present2688 removes mirror_branch_regex2689 with mirror_branch_regex nil and only_mirror_protected_branches is truthy2690 does not change only_mirror_protected_branches value2691 with mirror_branch_regex nil and only_mirror_protected_branches is false2692 does not change only_mirror_protected_branches value2693 with mirror_branch_regex2694 succeeds2695 updating approvals_before_merge attribute2696 when authenticated as project owner2697 updates approvals_before_merge2698 when protected_environments is available2699 updates the content2700 when protected_environments not available2701 does not update the content2702 POST /projects/:id/restore2703 feature is available2704 restores project2705 returns error if project is already being deleted2706 feature is not available2707 returns error2708 DELETE /projects/:id2709 when feature is available2710 delayed project deletion is enabled for group2711 returns error if project cannot be marked for deletion2712 behaves like marks project for deletion2713 aggregate_failures2714 when permanently_remove param is true2715 when project is already marked for deletion2716 with correct project full path2717 behaves like deletes project immediately2718 aggregate_failures2719 with incorrect project full path2720 behaves like immediately delete project error2721 aggregate_failures2722 when project is not marked for deletion2723 behaves like immediately delete project error2724 aggregate_failures2725 when delayed project deletion is disabled on the application2726 behaves like marks project for deletion2727 aggregate_failures2728 when deletion adjourned period is 02729 behaves like deletes project immediately2730 aggregate_failures2731 delayed project deletion is disabled for group2732 behaves like marks project for deletion2733 aggregate_failures2734 for projects in user namespace2735 behaves like deletes project immediately2736 aggregate_failures2737 when feature is not available2738 behaves like deletes project immediately2739 aggregate_failures2740 POST /projects/:id/fork2741 when project namespace has prohibit_outer_forks enabled2742 and target namespace is outer2743 renders 4042744 and target namespace is inner to project namespace2745 forks the project2746 POST /projects/:id/fork/:forked_from_id2747 when project namespace has prevent_forking_outside_group enabled2748 and target namespace is inside the source group2749 behaves like forks the project2750 forks the project2751 and target namespace is outside the source group2752 renders 4042753 when project namespace has prevent_forking_outside_group disabled2754 and target namespace is inside the source group2755 behaves like forks the project2756 forks the project2757 and target namespace is outside the source group2758 behaves like forks the project2759 forks the project2760 POST /projects/:id/import_project_members/:project_id2761 when the target project has locked their membership2762 via the parent group2763 returns 4032764 via LDAP2765 returns 4032766API::VulnerabilityFindings2767 when security_findings_finder_lateral_join enabled is true2768 GET /projects/:id/vulnerability_findings2769 with an authorized user with proper permissions2770 returns all non-dismissed vulnerabilities2771 using different finders2772 when the `Security::PureFindingsFinder` is not available2773 uses the `Security::FindingsFinder`2774 when the `Security::PureFindingsFinder` is available2775 uses the `Security::FindingsFinder`2776 filtering2777 returns vulnerabilities with sast report_type2778 returns vulnerabilities with dependency_scanning report_type2779 returns a "bad request" response for an unknown report type2780 returns dismissed vulnerabilities with `all` scope2781 returns vulnerabilities with low severity2782 returns a "bad request" response for an unknown severity value2783 returns vulnerabilities with high confidence2784 returns a "bad request" response for an unknown confidence value2785 when pipeline_id is supplied2786 returns vulnerabilities from supplied pipeline2787 pipeline has no reports2788 returns empty results2789 with unknown pipeline2790 returns empty results2791 when security dashboard feature is not available2792 responds with 403 Forbidden2793 permissions2794 is expected to be allowed for :admin2795 is expected to be allowed for :owner2796 is expected to be allowed for :maintainer2797 is expected to be allowed for :developer2798 is expected to be allowed for :auditor2799 is expected to be denied for :reporter2800 is expected to be denied for :guest2801 is expected to be denied for :anonymous2802 when security_findings_finder_lateral_join enabled is false2803 GET /projects/:id/vulnerability_findings2804 with an authorized user with proper permissions2805 returns all non-dismissed vulnerabilities2806 using different finders2807 when the `Security::PureFindingsFinder` is not available2808 uses the `Security::FindingsFinder`2809 when the `Security::PureFindingsFinder` is available2810 uses the `Security::FindingsFinder`2811 filtering2812 returns vulnerabilities with sast report_type2813 returns vulnerabilities with dependency_scanning report_type2814 returns a "bad request" response for an unknown report type2815 returns dismissed vulnerabilities with `all` scope2816 returns vulnerabilities with low severity2817 returns a "bad request" response for an unknown severity value2818 returns vulnerabilities with high confidence2819 returns a "bad request" response for an unknown confidence value2820 when pipeline_id is supplied2821 returns vulnerabilities from supplied pipeline2822 pipeline has no reports2823 returns empty results2824 with unknown pipeline2825 returns empty results2826 when security dashboard feature is not available2827 responds with 403 Forbidden2828 permissions2829 is expected to be allowed for :admin2830 is expected to be allowed for :owner2831 is expected to be allowed for :maintainer2832 is expected to be allowed for :developer2833 is expected to be allowed for :auditor2834 is expected to be denied for :reporter2835 is expected to be denied for :guest2836 is expected to be denied for :anonymous2837API::ProjectApprovalRules2838 GET /projects/:id/approval_rules/:approval_rule_id2839 when the request is correct2840 matches the response schema2841 when the user is not authorized2842 does not display rule information2843 when license is missing2844 returns 403 error2845 GET /projects/:id/approval_rules2846 when the request is correct2847 matches the response schema2848 private group filtering2849 excludes private groups if user has no access2850 includes private groups if user has access2851 report_approver rules2852 includes report_approver rules2853 rules from scan result policy2854 returns 4042855 when project is archived2856 when user has normal permissions2857 returns 4032858 when user has project admin permissions2859 allows access2860 when license is missing2861 returns 403 error2862 POST /projects/:id/approval_rules2863 behaves like an API endpoint for creating project approval rule2864 behaves like a restricted project approval rule API endpoint2865 when admin_merge_request_approvers_rules license feature is disabled2866 when disable_overriding_approvers_per_merge_request app setting is false2867 behaves like a user with access2868 returns 201 status2869 when disable_overriding_approvers_per_merge_request app setting is true2870 behaves like a user with access2871 returns 201 status2872 when admin_merge_request_approvers_rules license feature is enabled2873 when disable_overriding_approvers_per_merge_request app setting is false2874 behaves like a user with access2875 returns 201 status2876 when disable_overriding_approvers_per_merge_request app setting is true2877 behaves like a user without access2878 returns 4032879 when user is an admin2880 behaves like a user with access2881 returns 201 status2882 when missing parameters2883 returns 400 status2884 when user is without access2885 behaves like a user without access2886 returns 4032887 when the request is correct2888 changes settings properly2889 behaves like a user with access2890 returns 201 status2891 when protected_branch_ids param is present2892 creates approval rule associated to specified protected branches2893 when applies_to_all_protected_branches param is present2894 returns a list of project protected branches in the response2895 with rule_type set to report_approver2896 without report_type2897 returns a error http status2898 when creating a approval rule for each report_type2899 rule_name: "License-Check", report_type: :license_scanning2900 specifies `report_rule` and `report_type`2901 rule_name: "Coverage-Check", report_type: :code_coverage2902 specifies `report_rule` and `report_type`2903 with users or groups params2904 with a user2905 returns a user2906 with users_ids2907 returns a user2908 when both users and user_ids are set2909 returns a user from user_ids2910 with a group2911 returns a group2912 with group_ids2913 returns a group2914 when both groups and group_ids are set2915 returns a group from group_ids2916 with valid scanners2917 returns 201 status2918 with valid severity_levels2919 returns 201 status2920 with username2921 returns 201 status2922 with vulnerabilities_allowed2923 returns 201 status2924 PUT /projects/:id/approval_rules/:approval_rule_id2925 behaves like an API endpoint for updating project approval rule2926 behaves like a restricted project approval rule API endpoint2927 when admin_merge_request_approvers_rules license feature is disabled2928 when disable_overriding_approvers_per_merge_request app setting is false2929 behaves like a user with access2930 sets approvers2931 when applies_to_all_protected_branches param is present2932 returns a list of project protected branches in the response2933 when protected_branch_ids param is present2934 associates approval rule to specified protected branches2935 with users or groups params2936 with a user2937 sets a user2938 with users_ids2939 sets a user2940 when both users and user_ids are set2941 sets a user from user_ids2942 with a group2943 sets a group2944 with group_ids2945 sets a group2946 when both groups and group_ids are set2947 sets a group from group_ids2948 with valid scanners2949 returns 200 status2950 with nil scanners2951 returns 200 status2952 when scanners is NULL in the database2953 returns 200 status2954 with valid severity_levels2955 returns 200 status2956 when approver already exists2957 when sending json data2958 removes all approvers if empty params are given2959 with vulnerabilities_allowed2960 returns 200 status2961 when approval rule is from scan result policy2962 when report_type is scan_finding2963 behaves like cannot update rule2964 returns not_found2965 when report_type is license_scanning2966 behaves like cannot update rule2967 returns not_found2968 when disable_overriding_approvers_per_merge_request app setting is true2969 behaves like a user with access2970 sets approvers2971 when applies_to_all_protected_branches param is present2972 returns a list of project protected branches in the response2973 when protected_branch_ids param is present2974 associates approval rule to specified protected branches2975 with users or groups params2976 with a user2977 sets a user2978 with users_ids2979 sets a user2980 when both users and user_ids are set2981 sets a user from user_ids2982 with a group2983 sets a group2984 with group_ids2985 sets a group2986 when both groups and group_ids are set2987 sets a group from group_ids2988 with valid scanners2989 returns 200 status2990 with nil scanners2991 returns 200 status2992 when scanners is NULL in the database2993 returns 200 status2994 with valid severity_levels2995 returns 200 status2996 when approver already exists2997 when sending json data2998 removes all approvers if empty params are given2999 with vulnerabilities_allowed3000 returns 200 status3001 when approval rule is from scan result policy3002 when report_type is scan_finding3003 behaves like cannot update rule3004 returns not_found3005 when report_type is license_scanning3006 behaves like cannot update rule3007 returns not_found3008 when admin_merge_request_approvers_rules license feature is enabled3009 when disable_overriding_approvers_per_merge_request app setting is false3010 behaves like a user with access3011 sets approvers3012 when applies_to_all_protected_branches param is present3013 returns a list of project protected branches in the response3014 when protected_branch_ids param is present3015 associates approval rule to specified protected branches3016 with users or groups params3017 with a user3018 sets a user3019 with users_ids3020 sets a user3021 when both users and user_ids are set3022 sets a user from user_ids3023 with a group3024 sets a group3025 with group_ids3026 sets a group3027 when both groups and group_ids are set3028 sets a group from group_ids3029 with valid scanners3030 returns 200 status3031 with nil scanners3032 returns 200 status3033 when scanners is NULL in the database3034 returns 200 status3035 with valid severity_levels3036 returns 200 status3037 when approver already exists3038 when sending json data3039 removes all approvers if empty params are given3040 with vulnerabilities_allowed3041 returns 200 status3042 when approval rule is from scan result policy3043 when report_type is scan_finding3044 behaves like cannot update rule3045 returns not_found3046 when report_type is license_scanning3047 behaves like cannot update rule3048 returns not_found3049 when disable_overriding_approvers_per_merge_request app setting is true3050 behaves like a user without access3051 returns 4033052 when user is an admin3053 behaves like a user with access3054 sets approvers3055 when applies_to_all_protected_branches param is present3056 returns a list of project protected branches in the response3057 when protected_branch_ids param is present3058 associates approval rule to specified protected branches3059 with users or groups params3060 with a user3061 sets a user3062 with users_ids3063 sets a user3064 when both users and user_ids are set3065 sets a user from user_ids3066 with a group3067 sets a group3068 with group_ids3069 sets a group3070 when both groups and group_ids are set3071 sets a group from group_ids3072 with valid scanners3073 returns 200 status3074 with nil scanners3075 returns 200 status3076 when scanners is NULL in the database3077 returns 200 status3078 with valid severity_levels3079 returns 200 status3080 when approver already exists3081 when sending json data3082 removes all approvers if empty params are given3083 with vulnerabilities_allowed3084 returns 200 status3085 when approval rule is from scan result policy3086 when report_type is scan_finding3087 behaves like cannot update rule3088 returns not_found3089 when report_type is license_scanning3090 behaves like cannot update rule3091 returns not_found3092 as a project admin3093 behaves like a user with access3094 sets approvers3095 when applies_to_all_protected_branches param is present3096 returns a list of project protected branches in the response3097 when protected_branch_ids param is present3098 associates approval rule to specified protected branches3099 with users or groups params3100 with a user3101 sets a user3102 with users_ids3103 sets a user3104 when both users and user_ids are set3105 sets a user from user_ids3106 with a group3107 sets a group3108 with group_ids3109 sets a group3110 when both groups and group_ids are set3111 sets a group from group_ids3112 with valid scanners3113 returns 200 status3114 with nil scanners3115 returns 200 status3116 when scanners is NULL in the database3117 returns 200 status3118 with valid severity_levels3119 returns 200 status3120 when approver already exists3121 when sending json data3122 removes all approvers if empty params are given3123 with vulnerabilities_allowed3124 returns 200 status3125 when approval rule is from scan result policy3126 when report_type is scan_finding3127 behaves like cannot update rule3128 returns not_found3129 when report_type is license_scanning3130 behaves like cannot update rule3131 returns not_found3132 as a global admin3133 behaves like a user with access3134 sets approvers3135 when applies_to_all_protected_branches param is present3136 returns a list of project protected branches in the response3137 when protected_branch_ids param is present3138 associates approval rule to specified protected branches3139 with users or groups params3140 with a user3141 sets a user3142 with users_ids3143 sets a user3144 when both users and user_ids are set3145 sets a user from user_ids3146 with a group3147 sets a group3148 with group_ids3149 sets a group3150 when both groups and group_ids are set3151 sets a group from group_ids3152 with valid scanners3153 returns 200 status3154 with nil scanners3155 returns 200 status3156 when scanners is NULL in the database3157 returns 200 status3158 with valid severity_levels3159 returns 200 status3160 when approver already exists3161 when sending json data3162 removes all approvers if empty params are given3163 with vulnerabilities_allowed3164 returns 200 status3165 when approval rule is from scan result policy3166 when report_type is scan_finding3167 behaves like cannot update rule3168 returns not_found3169 when report_type is license_scanning3170 behaves like cannot update rule3171 returns not_found3172 as a random user3173 behaves like a user without access3174 returns 4033175 DELETE /projects/:id/approval_rules/:approval_rule_id3176 behaves like an API endpoint for deleting project approval rule3177 behaves like a user with access3178 destroys3179 behaves like a restricted project approval rule API endpoint3180 when admin_merge_request_approvers_rules license feature is disabled3181 when disable_overriding_approvers_per_merge_request app setting is false3182 behaves like a user with access3183 destroys3184 when disable_overriding_approvers_per_merge_request app setting is true3185 behaves like a user with access3186 destroys3187 when admin_merge_request_approvers_rules license feature is enabled3188 when disable_overriding_approvers_per_merge_request app setting is false3189 behaves like a user with access3190 destroys3191 when disable_overriding_approvers_per_merge_request app setting is true3192 behaves like a user without access3193 returns 4033194 when user is an admin3195 behaves like a user with access3196 destroys3197 when approval rule not found3198 returns not found3199 when approval rule is from scan result policy3200 when report_type is scan_finding3201 behaves like cannot delete rule3202 returns not_found3203 when report_type is license_scanning3204 behaves like cannot delete rule3205 returns not_found3206 when user is not eligible to delete3207 behaves like a user without access3208 returns 4033209SearchController3210 GET /search3211 when elasticsearch is enabled3212 for issues scope3213 behaves like an efficient database result3214 avoids N+1 database queries3215 for merge_request scope3216 behaves like an efficient database result3217 avoids N+1 database queries3218 for project scope3219 behaves like an efficient database result3220 avoids N+1 database queries3221 for notes scope3222 behaves like an efficient database result3223 avoids N+1 database queries3224 for milestones scope3225 behaves like an efficient database result3226 avoids N+1 database queries3227 for users scope3228 behaves like an efficient database result3229 avoids N+1 database queries3230 for epics scope3231 behaves like an efficient database result3232 avoids N+1 database queries3233 for blobs scope3234 avoids N+1 database queries3235 does not raise an exeption when blob.path is nil3236 for commits scope3237 avoids N+1 database queries3238 search index integrity3239 when project is present and group is not present3240 queues the project integrity worker3241 when project is not present and group is not present3242 does nothing3243 when project is not present and group is present3244 queues the namespace integrity worker which then schedules the project integrity worker3245 when project is present and group is present3246 queues the project integrity worker3247 when search results are returned3248 does nothing3249 when scope is not blobs3250 does nothing3251Groups::OmniauthCallbacksController3252 when request hasn't been validated by omniauth middleware3253 prevents authentication3254 when the user is invalid3255 when the email is blank3256 redirects to the Group SAML sign in page with flash alert3257 when any other validation error occurs3258 redirects to the Group SAML sign in page with flash alert3259 valid credentials3260 when user used to be a member of a group3261 displays a flash message verifying group sign in3262 adds linked identity3263 adds group membership3264 when user was provisioned by other group3265 displays a flash message verifying group sign in3266 does not add linked identity3267 does not add group membership3268 when signed in3269 behaves like and identity already linked3270 displays a flash message verifying group sign in3271 uses existing linked identity3272 skips authenticity token based forgery protection3273 behaves like SAML session initiated3274 redirects to RelayState if its value is a subpath and starts with a slash3275 ignores RelayState that doesn't start with a slash3276 ignores RelayState that starts with two slashes3277 ignores RelayState outside root domain without full URL3278 ignores RelayState outside root domain with full URI3279 ignores RelayState within root domain with full URI3280 ignores RelayState when invalid URI3281 logs group audit event for authentication3282 stores that a SAML session is active3283 with 2FA3284 stores that a SAML session is active3285 oauth linked with different NameID3286 displays a flash message verifying group sign in3287 when user email address does not match auth hash email address3288 redirects and displays an error3289 oauth already linked to another account3290 redirects and displays an error3291 and identity hasn't been linked3292 links the identity3293 displays a flash indicating the account has been linked3294 logs group audit event for being added to the group3295 when a default access level is specified in the SAML provider3296 sets the access level of the member as per the specified `default_membership_role`3297 when a custom role is specified in the SAML provider3298 sets the `member_role` of the member as per the specified `member_role`3299 behaves like SAML session initiated3300 redirects to RelayState if its value is a subpath and starts with a slash3301 ignores RelayState that doesn't start with a slash3302 ignores RelayState that starts with two slashes3303 ignores RelayState outside root domain without full URL3304 ignores RelayState outside root domain with full URI3305 ignores RelayState within root domain with full URI3306 ignores RelayState when invalid URI3307 logs group audit event for authentication3308 stores that a SAML session is active3309 with IdP initiated request3310 redirects to account link page3311 lets the user know their account isn't linked yet3312 when not signed in3313 and identity hasn't been linked3314 redirects to sign in page with flash notice3315 behaves like and identity already linked3316 displays a flash message verifying group sign in3317 uses existing linked identity3318 skips authenticity token based forgery protection3319 behaves like SAML session initiated3320 redirects to RelayState if its value is a subpath and starts with a slash3321 ignores RelayState that doesn't start with a slash3322 ignores RelayState that starts with two slashes3323 ignores RelayState outside root domain without full URL3324 ignores RelayState outside root domain with full URI3325 ignores RelayState within root domain with full URI3326 ignores RelayState when invalid URI3327 logs group audit event for authentication3328 stores that a SAML session is active3329 with 2FA3330 stores that a SAML session is active3331 for sign up3332 does not enforce onboarding for sign up3333 identity verification3334 on sign up3335 behaves like identity verification not required3336 does not redirect to identity verification3337 on sign in when identity is not yet verified3338 behaves like identity verification not required3339 does not redirect to identity verification3340 #failure3341 not signed in3342 doesn't disclose group existence3343 group doesn't exist3344 doesn't disclose group non-existence3345 with access3346 has descriptive error flash3347 redirects back go the SSO page3348 with access to SAML settings for the group3349 redirects to the settings page3350API::ProjectApprovalSettings3351 GET /projects/:id/approval_settings3352 when the request is correct3353 matches the response schema3354 when license is missing3355 returns 403 error3356 when target_branch is specified3357 filters the rules returned by target branch3358 private group filtering3359 excludes private groups if user has no access3360 includes private groups if user has access3361 report_approver rules3362 includes report_approver rules3363 when project is archived3364 when user has normal permissions3365 returns 4033366 when user has project admin permissions3367 allows access3368 POST /projects/:id/approval_settings/rules3369 behaves like an API endpoint for creating project approval rule3370 behaves like a restricted project approval rule API endpoint3371 when admin_merge_request_approvers_rules license feature is disabled3372 when disable_overriding_approvers_per_merge_request app setting is false3373 behaves like a user with access3374 returns 201 status3375 when disable_overriding_approvers_per_merge_request app setting is true3376 behaves like a user with access3377 returns 201 status3378 when admin_merge_request_approvers_rules license feature is enabled3379 when disable_overriding_approvers_per_merge_request app setting is false3380 behaves like a user with access3381 returns 201 status3382 when disable_overriding_approvers_per_merge_request app setting is true3383 behaves like a user without access3384 returns 4033385 when user is an admin3386 behaves like a user with access3387 returns 201 status3388 when missing parameters3389 returns 400 status3390 when user is without access3391 behaves like a user without access3392 returns 4033393 when the request is correct3394 changes settings properly3395 behaves like a user with access3396 returns 201 status3397 when protected_branch_ids param is present3398 creates approval rule associated to specified protected branches3399 when applies_to_all_protected_branches param is present3400 returns a list of project protected branches in the response3401 with rule_type set to report_approver3402 without report_type3403 returns a error http status3404 when creating a approval rule for each report_type3405 rule_name: "License-Check", report_type: :license_scanning3406 specifies `report_rule` and `report_type`3407 rule_name: "Coverage-Check", report_type: :code_coverage3408 specifies `report_rule` and `report_type`3409 with users or groups params3410 with a user3411 returns a user3412 with users_ids3413 returns a user3414 when both users and user_ids are set3415 returns a user from user_ids3416 with a group3417 returns a group3418 with group_ids3419 returns a group3420 when both groups and group_ids are set3421 returns a group from group_ids3422 with valid scanners3423 returns 201 status3424 with valid severity_levels3425 returns 201 status3426 with username3427 returns 201 status3428 with vulnerabilities_allowed3429 returns 201 status3430 PUT /projects/:id/approval_settings/:approval_rule_id3431 behaves like an API endpoint for updating project approval rule3432 behaves like a restricted project approval rule API endpoint3433 when admin_merge_request_approvers_rules license feature is disabled3434 when disable_overriding_approvers_per_merge_request app setting is false3435 behaves like a user with access3436 sets approvers3437 when applies_to_all_protected_branches param is present3438 returns a list of project protected branches in the response3439 when protected_branch_ids param is present3440 associates approval rule to specified protected branches3441 with users or groups params3442 with a user3443 sets a user3444 with users_ids3445 sets a user3446 when both users and user_ids are set3447 sets a user from user_ids3448 with a group3449 sets a group3450 with group_ids3451 sets a group3452 when both groups and group_ids are set3453 sets a group from group_ids3454 with valid scanners3455 returns 200 status3456 with nil scanners3457 returns 200 status3458 when scanners is NULL in the database3459 returns 200 status3460 with valid severity_levels3461 returns 200 status3462 when approver already exists3463 when sending json data3464 removes all approvers if empty params are given3465 with vulnerabilities_allowed3466 returns 200 status3467 when approval rule is from scan result policy3468 when report_type is scan_finding3469 behaves like cannot update rule3470 returns not_found3471 when report_type is license_scanning3472 behaves like cannot update rule3473 returns not_found3474 when disable_overriding_approvers_per_merge_request app setting is true3475 behaves like a user with access3476 sets approvers3477 when applies_to_all_protected_branches param is present3478 returns a list of project protected branches in the response3479 when protected_branch_ids param is present3480 associates approval rule to specified protected branches3481 with users or groups params3482 with a user3483 sets a user3484 with users_ids3485 sets a user3486 when both users and user_ids are set3487 sets a user from user_ids3488 with a group3489 sets a group3490 with group_ids3491 sets a group3492 when both groups and group_ids are set3493 sets a group from group_ids3494 with valid scanners3495 returns 200 status3496 with nil scanners3497 returns 200 status3498 when scanners is NULL in the database3499 returns 200 status3500 with valid severity_levels3501 returns 200 status3502 when approver already exists3503 when sending json data3504 removes all approvers if empty params are given3505 with vulnerabilities_allowed3506 returns 200 status3507 when approval rule is from scan result policy3508 when report_type is scan_finding3509 behaves like cannot update rule3510 returns not_found3511 when report_type is license_scanning3512 behaves like cannot update rule3513 returns not_found3514 when admin_merge_request_approvers_rules license feature is enabled3515 when disable_overriding_approvers_per_merge_request app setting is false3516 behaves like a user with access3517 sets approvers3518 when applies_to_all_protected_branches param is present3519 returns a list of project protected branches in the response3520 when protected_branch_ids param is present3521 associates approval rule to specified protected branches3522 with users or groups params3523 with a user3524 sets a user3525 with users_ids3526 sets a user3527 when both users and user_ids are set3528 sets a user from user_ids3529 with a group3530 sets a group3531 with group_ids3532 sets a group3533 when both groups and group_ids are set3534 sets a group from group_ids3535 with valid scanners3536 returns 200 status3537 with nil scanners3538 returns 200 status3539 when scanners is NULL in the database3540 returns 200 status3541 with valid severity_levels3542 returns 200 status3543 when approver already exists3544 when sending json data3545 removes all approvers if empty params are given3546 with vulnerabilities_allowed3547 returns 200 status3548 when approval rule is from scan result policy3549 when report_type is scan_finding3550 behaves like cannot update rule3551 returns not_found3552 when report_type is license_scanning3553 behaves like cannot update rule3554 returns not_found3555 when disable_overriding_approvers_per_merge_request app setting is true3556 behaves like a user without access3557 returns 4033558 when user is an admin3559 behaves like a user with access3560 sets approvers3561 when applies_to_all_protected_branches param is present3562 returns a list of project protected branches in the response3563 when protected_branch_ids param is present3564 associates approval rule to specified protected branches3565 with users or groups params3566 with a user3567 sets a user3568 with users_ids3569 sets a user3570 when both users and user_ids are set3571 sets a user from user_ids3572 with a group3573 sets a group3574 with group_ids3575 sets a group3576 when both groups and group_ids are set3577 sets a group from group_ids3578 with valid scanners3579 returns 200 status3580 with nil scanners3581 returns 200 status3582 when scanners is NULL in the database3583 returns 200 status3584 with valid severity_levels3585 returns 200 status3586 when approver already exists3587 when sending json data3588 removes all approvers if empty params are given3589 with vulnerabilities_allowed3590 returns 200 status3591 when approval rule is from scan result policy3592 when report_type is scan_finding3593 behaves like cannot update rule3594 returns not_found3595 when report_type is license_scanning3596 behaves like cannot update rule3597 returns not_found3598 as a project admin3599 behaves like a user with access3600 sets approvers3601 when applies_to_all_protected_branches param is present3602 returns a list of project protected branches in the response3603 when protected_branch_ids param is present3604 associates approval rule to specified protected branches3605 with users or groups params3606 with a user3607 sets a user3608 with users_ids3609 sets a user3610 when both users and user_ids are set3611 sets a user from user_ids3612 with a group3613 sets a group3614 with group_ids3615 sets a group3616 when both groups and group_ids are set3617 sets a group from group_ids3618 with valid scanners3619 returns 200 status3620 with nil scanners3621 returns 200 status3622 when scanners is NULL in the database3623 returns 200 status3624 with valid severity_levels3625 returns 200 status3626 when approver already exists3627 when sending json data3628 removes all approvers if empty params are given3629 with vulnerabilities_allowed3630 returns 200 status3631 when approval rule is from scan result policy3632 when report_type is scan_finding3633 behaves like cannot update rule3634 returns not_found3635 when report_type is license_scanning3636 behaves like cannot update rule3637 returns not_found3638 as a global admin3639 behaves like a user with access3640 sets approvers3641 when applies_to_all_protected_branches param is present3642 returns a list of project protected branches in the response3643 when protected_branch_ids param is present3644 associates approval rule to specified protected branches3645 with users or groups params3646 with a user3647 sets a user3648 with users_ids3649 sets a user3650 when both users and user_ids are set3651 sets a user from user_ids3652 with a group3653 sets a group3654 with group_ids3655 sets a group3656 when both groups and group_ids are set3657 sets a group from group_ids3658 with valid scanners3659 returns 200 status3660 with nil scanners3661 returns 200 status3662 when scanners is NULL in the database3663 returns 200 status3664 with valid severity_levels3665 returns 200 status3666 when approver already exists3667 when sending json data3668 removes all approvers if empty params are given3669 with vulnerabilities_allowed3670 returns 200 status3671 when approval rule is from scan result policy3672 when report_type is scan_finding3673 behaves like cannot update rule3674 returns not_found3675 when report_type is license_scanning3676 behaves like cannot update rule3677 returns not_found3678 as a random user3679 behaves like a user without access3680 returns 4033681 DELETE /projects/:id/approval_settings/rules/:approval_rule_id3682 behaves like an API endpoint for deleting project approval rule3683 behaves like a user with access3684 destroys3685 behaves like a restricted project approval rule API endpoint3686 when admin_merge_request_approvers_rules license feature is disabled3687 when disable_overriding_approvers_per_merge_request app setting is false3688 behaves like a user with access3689 destroys3690 when disable_overriding_approvers_per_merge_request app setting is true3691 behaves like a user with access3692 destroys3693 when admin_merge_request_approvers_rules license feature is enabled3694 when disable_overriding_approvers_per_merge_request app setting is false3695 behaves like a user with access3696 destroys3697 when disable_overriding_approvers_per_merge_request app setting is true3698 behaves like a user without access3699 returns 4033700 when user is an admin3701 behaves like a user with access3702 destroys3703 when approval rule not found3704 returns not found3705 when approval rule is from scan result policy3706 when report_type is scan_finding3707 behaves like cannot delete rule3708 returns not_found3709 when report_type is license_scanning3710 behaves like cannot delete rule3711 returns not_found3712 when user is not eligible to delete3713 behaves like a user without access3714 returns 4033715API::Notes3716 when noteable is an Epic3717 behaves like noteable API with confidential notes3718 behaves like noteable API3719 GET /groups/:id/epics/:noteable_id/notes3720 returns an array of notes3721 returns a 404 error when noteable id not found3722 returns 404 when not authorized3723 sorting3724 sorts by ascending order when requested3725 sorts by updated_at in descending order when requested3726 sorts by updated_at in ascending order when requested3727 without sort params3728 sorts by created_at in descending order by default3729 fetches notes using parent path as id paremeter3730 2 notes with equal created_at3731 page breaks first page correctly3732 page breaks second page correctly3733 GET /groups/:id/epics/:noteable_id/notes/:note_id3734 returns a note by id3735 returns a 404 error if note not found3736 POST /groups/:id/epics/:noteable_id/notes3737 creates a new note3738 returns a 400 bad request error if body not given3739 returns a 401 unauthorized error if user not authenticated3740 creates an activity event when a note is created3741 setting created_at3742 by an admin3743 sets the creation time on the new note3744 by a group owner3745 sets the creation time on the new note3746 by another user3747 ignores the given creation time3748 when the user is posting an award emoji on a noteable created by someone else3749 creates a new note3750 when the user is posting an award emoji on their own noteable3751 creates a new note3752 when user does not have access to read the noteable3753 responds with 4043754 when request exceeds the rate limit3755 prevents user from creating more notes3756 allows user in allow-list to create notes3757 PUT /groups/:id/epics/:noteable_id/notes/:note_id3758 returns a 404 error when note id not found3759 returns a 400 bad request error if body is empty3760 when only body param is present3761 updates the note text3762 when confidential param is present3763 does not allow to change confidentiality3764 DELETE /groups/:id/epics/:noteable_id/notes/:note_id3765 deletes a note3766 returns a 404 error when note id not found3767 behaves like 412 response3768 for a modified resource3769 returns 412 with a JSON error3770 for an unmodified resource3771 returns 204 with an empty body3772 POST /groups/:id/epics/:noteable_id/notes3773 with internal param3774 creates a confidential note if internal is set to true3775 with deprecated confidential param3776 creates a confidential note if confidential is set to true3777 when issue was promoted to epic3778 when user is reporter3779 returns previous issue system notes3780 when user is guest3781 does not return previous issue system notes3782Groups::EpicsController3783 when epics feature is disabled3784 GET #index3785 behaves like 404 status3786 returns 404 status3787 GET #new3788 behaves like 404 status3789 returns 404 status3790 GET #show3791 behaves like 404 status3792 returns 404 status3793 PUT #update3794 behaves like 404 status3795 returns 404 status3796 when epics feature is enabled3797 GET #index3798 returns index3799 GET #discussions3800 when issue note is returned3801 project default namespace3802 behaves like issue link presence3803 the link to the issue is included3804 project group namespace3805 behaves like issue link presence3806 the link to the issue is included3807 setting notes filter3808 behaves like issuable notes filter3809 sets discussion filter3810 does not set notes filter when database is in read-only mode3811 does not set notes filter when persist_filter param is false3812 returns only user comments3813 returns only activity notes3814 when filter is set to "only_comments"3815 does not merge label event notes3816 GET #new3817 renders template3818 with unauthorized user3819 returns a not found 404 response3820 GET #show3821 when format is HTML3822 renders template3823 logs the view with Gitlab::Search::RecentEpics3824 with unauthorized user3825 returns a not found 404 response3826 behaves like disabled when using an external authorization service3827 works when the feature is not enabled3828 renders a 404 with a message when the feature is enabled3829 when format is JSON3830 returns epic3831 with unauthorized user3832 returns a not found 404 response3833 PUT #update3834 with correct basic params3835 returns status 2003836 updates the epic correctly3837 when state_event param is close3838 allows epic to be closed3839 when state_event param is reopen3840 allows epic to be reopened3841 GET #realtime_changes3842 returns epic3843 with unauthorized user3844 returns a not found 404 response3845 behaves like disabled when using an external authorization service3846 works when the feature is not enabled3847 renders a 404 with a message when the feature is enabled3848 #create3849 when user has permissions to create an epic3850 when all required parameters are passed3851 returns 200 response3852 creates a new epic3853 assigns labels to the new epic3854 returns the correct json3855 behaves like disabled when using an external authorization service3856 works when the feature is not enabled3857 renders a 404 with a message when the feature is enabled3858 when required parameter is missing3859 returns 422 response3860 does not create a new epic3861 when the endpoint receives requests above the limit3862 prevents from creating more epics3863 logs the event on auth.log3864 with unauthorized user3865 returns a not found 404 response3866 DELETE #destroy3867 rejects a developer to destroy an epic3868 deletes the epic3869 POST #bulk_update3870 with correct params3871 when group bulk edit feature is disabled3872 returns status 4043873 does not update merge requests milestone3874 when group bulk edit feature is enabled3875 returns status 2003876 updates epics labels3877 behaves like DescriptionDiffActions3879 when license is available3880 behaves like description diff actions3881 GET description_diff3882 returns the diff with the previous version3883 returns the diff with the previous version of the specified start_version_id3884 when description version is from another issuable3885 returns 4043886 when start_version_id is from another issuable3887 returns 4043888 when start_version_id is deleted3889 returns 4043890 when description version is deleted3891 returns 4043892 DELETE description_diff3893 returns 2003894 when start_version_id is present3895 returns 2003896 when version is already deleted3897 returns 4043898 when user cannot admin issuable3899 returns 4043900 when license is not available3901 GET description_diff3902 returns 4043903 DELETE description_diff3904 returns 4043905Projects::PushRulesController3906 #update3907 updates the push rule3908 push rules unlicensed3909 returns 4043910 Updating reject_unsigned_commits rule3911 as an admin in admin mode3912 behaves like a setting with global default3913 when disabled3914 behaves like updateable setting3915 does not update the setting3916 when enabled3917 behaves like updateable setting3918 updates the setting3919 when global setting is enabled3920 behaves like updateable setting3921 updates the setting3922 as a maintainer user3923 behaves like a setting with global default3924 when disabled3925 behaves like updateable setting3926 does not update the setting3927 when enabled3928 behaves like updateable setting3929 updates the setting3930 when global setting is enabled3931 behaves like updateable setting3932 updates the setting3933 as a developer user3934 behaves like a setting with global default3935 when disabled3936 behaves like updateable setting3937 does not update the setting3938 when enabled3939 behaves like updateable setting3940 does not update the setting3941 when global setting is enabled3942 behaves like updateable setting3943 does not update the setting3944 Updating commit_committer_check rule3945 as an admin in admin mode3946 behaves like a setting with global default3947 when disabled3948 behaves like updateable setting3949 does not update the setting3950 when enabled3951 behaves like updateable setting3952 updates the setting3953 when global setting is enabled3954 behaves like updateable setting3955 updates the setting3956 as a maintainer user3957 behaves like a setting with global default3958 when disabled3959 behaves like updateable setting3960 does not update the setting3961 when enabled3962 behaves like updateable setting3963 updates the setting3964 when global setting is enabled3965 behaves like updateable setting3966 updates the setting3967 as a developer user3968 behaves like a setting with global default3969 when disabled3970 behaves like updateable setting3971 does not update the setting3972 when enabled3973 behaves like updateable setting3974 does not update the setting3975 when global setting is enabled3976 behaves like updateable setting3977 does not update the setting3978 Updating reject_non_dco_commits rule3979 as an admin in admin mode3980 behaves like a setting with global default3981 when disabled3982 behaves like updateable setting3983 does not update the setting3984 when enabled3985 behaves like updateable setting3986 updates the setting3987 when global setting is enabled3988 behaves like updateable setting3989 updates the setting3990 as a maintainer user3991 behaves like a setting with global default3992 when disabled3993 behaves like updateable setting3994 does not update the setting3995 when enabled3996 behaves like updateable setting3997 updates the setting3998 when global setting is enabled3999 behaves like updateable setting4000 updates the setting4001 as a developer user4002 behaves like a setting with global default4003 when disabled4004 behaves like updateable setting4005 does not update the setting4006 when enabled4007 behaves like updateable setting4008 does not update the setting4009 when global setting is enabled4010 behaves like updateable setting4011 does not update the setting4012 Updating commit_committer_name_check rule4013 when commit_committer_name_check is disabled4014 as an admin4015 behaves like updates push rule commit_committer_name_check of project4016 matches the given result4017 as a maintainer user4018 behaves like updates push rule commit_committer_name_check of project4019 matches the given result4020 as a developer user4021 behaves like updates push rule commit_committer_name_check of project4022 matches the given result4023 when commit_committer_name_check is enabled4024 as an admin4025 behaves like updates push rule commit_committer_name_check of project4026 matches the given result4027 as a maintainer user4028 behaves like updates push rule commit_committer_name_check of project4029 matches the given result4030 as a developer user4031 behaves like updates push rule commit_committer_name_check of project4032 matches the given result4033Projects::LicensesController4034 GET #index4035 when the "Security and Compliance" feature is disabled4036 is expected to respond with numeric status code not_found4037 with authorized user4038 when feature is available4039 with reporter4040 counts usage of the feature4041 when requesting HTML4042 returns the necessary licenses app data4043 behaves like tracks govern usage event4044 tracks unique event4045 with existing report4046 returns success code4047 returns a hash with licenses sorted by name4048 returns status ok4049 includes the pagination headers4050 with pagination params4051 return only 1 license4052 when software policies are applied to some of the most recently detected licenses4053 when loading all policies4054 is expected to respond with numeric status code ok4055 is expected to equal 44056 sorts by name by default4057 includes a policy for an unclassified and known license that was detected in the scan report4058 includes a policy for a denied license found in the scan report4059 includes a policy for an allowed license NOT found in the latest scan report4060 includes an entry for an unclassified and unknown license found in the scan report4061 when loading software policies that match licenses detected in the most recent license scan report4062 is expected to respond with numeric status code ok4063 only includes policies for licenses detected in the most recent scan report4064 includes an unclassified policy for a known license detected in the scan report4065 includes a classified license for a known license detected in the scan report4066 includes an unclassified and unknown license discovered in the scan report4067 when loading `allowed` software policies only4068 is expected to respond with numeric status code ok4069 is expected to equal 14070 includes only `allowed` policies4071 when loading `allowed` and `denied` software policies4072 is expected to respond with numeric status code ok4073 is expected to equal 24074 includes `denied` policies4075 includes `allowed` policies4076 when loading policies ordered by `classification` in `ascending` order4077 is expected to respond with numeric status code ok4078 is expected to eq ["allowed", "unclassified", "unclassified", "denied"]4079 without existing license scanning report4080 returns status job_not_set_up4081 with maintainer4082 responds to an HTML request4083 behaves like tracks govern usage event4084 tracks unique event4085 when feature is not available4086 returns 4044087 behaves like doesn't track govern usage event4088 doesn't tracks event4089 with unauthorized user4090 returns 4044091 behaves like doesn't track govern usage event4092 doesn't tracks event4093API::GroupPushRule GroupPushRule4094 GET /groups/:id/push_rule4095 behaves like GET request permissions for admin mode4096 behaves like when admin4097 behaves like makes request4098 returns4099 behaves like makes request4100 returns4101 behaves like when user4102 returns4103 behaves like makes request4104 returns4105 when unlicensed4106 behaves like not found when feature is unavailable4107 is expected to respond with numeric status code not_found4108 authorized user4109 when licensed4110 returns attributes as expected4111 matches response schema4112 when reject_unsigned_commits is unavailable4113 is expected not to have key "reject_unsigned_commits"4114 when commit_committer_check is unavailable4115 is expected not to have key "commit_committer_check"4116 permissions4117 behaves like allow access to api based on role4118 is expected to be allowed for :owner4119 is expected to be denied for :developer4120 is expected to be denied for :reporter4121 is expected to be denied for :guest4122 is expected to be denied for :anonymous4123 when admin4124 is expected to be allowed for :admin4125 when push rule does not exist4126 returns not found4127 POST /groups/:id/push_rule4128 behaves like POST request permissions for admin mode4129 behaves like when admin4130 behaves like makes request4131 returns4132 behaves like makes request4133 returns4134 behaves like when user4135 returns4136 behaves like makes request4137 returns4138 when unlicensed4139 behaves like not found when feature is unavailable4140 is expected to respond with numeric status code not_found4141 authorized user4142 when licensed4143 is expected to respond with numeric status code created4144 is expected to change `PushRule.count` by 14145 creates record with appropriate attributes4146 when push rule exists4147 is expected to eq "Group push rule exists, try updating"4148 permissions4149 behaves like allow access to api based on role4150 is expected to be allowed for :owner4151 is expected to be denied for :developer4152 is expected to be denied for :reporter4153 is expected to be denied for :guest4154 is expected to be denied for :anonymous4155 when admin4156 is expected to be allowed for :admin4157 when no rule is specified4158 is expected to include "at least one parameter must be provided"4159 when reject_unsigned_commits is unavailable4160 returns forbidden4161 and reject_unsigned_commits is not set4162 returns created4163 when commit_committer_check is unavailable4164 is expected to respond with numeric status code forbidden4165 and commit_committer_check is not set4166 returns created4167 PUT /groups/:id/push_rule4168 behaves like PUT request permissions for admin mode4169 behaves like when admin4170 behaves like makes request4171 returns4172 behaves like makes request4173 returns4174 behaves like when user4175 returns4176 behaves like makes request4177 returns4178 when unlicensed4179 behaves like not found when feature is unavailable4180 is expected to respond with numeric status code not_found4181 authorized user4182 when licensed4183 is expected to respond with numeric status code ok4184 updates attributes as expected4185 when push rule does not exist for group4186 returns not found4187 permissions4188 behaves like allow access to api based on role4189 is expected to be allowed for :owner4190 is expected to be denied for :developer4191 is expected to be denied for :reporter4192 is expected to be denied for :guest4193 is expected to be denied for :anonymous4194 when admin4195 is expected to be allowed for :admin4196 when no rule is specified4197 is expected to include "at least one parameter must be provided"4198 when reject_unsigned_commits is unavailable4199 returns forbidden4200 and reject_unsigned_commits is not set4201 returns status ok4202 when commit_committer_check is unavailable4203 is expected to respond with numeric status code forbidden4204 and commit_committer_check is not set4205 returns status ok4206 DELETE /groups/:id/push_rule4207 behaves like DELETE request permissions for admin mode4208 behaves like when admin4209 behaves like makes request4210 returns4211 behaves like makes request4212 returns4213 behaves like when user4214 returns4215 behaves like makes request4216 returns4217 authorized user4218 when licensed4219 with group push rule4220 is expected to equal nil4221 when push rule does not exist4222 returns not found4223 when unlicensed4224 behaves like not found when feature is unavailable4225 is expected to respond with numeric status code not_found4226 permissions4227 behaves like allow access to api based on role4228 is expected to be allowed for :owner4229 is expected to be denied for :developer4230 is expected to be denied for :reporter4231 is expected to be denied for :guest4232 is expected to be denied for :anonymous4233 when admin4234 is expected to be allowed for :admin4235API::StatusChecks4236 GET :id/merge_requests/:merge_request_iid/status_checks4237 external url response4238 when access level is at least `reporter`4239 is empty4240 when access level is at least `developer`4241 has excluded the sensitive token url param4242 when current_user has access4243 when merge request has received status check responses4244 returns a 2004245 returns the total number of status checks for the MRs project4246 has the correct status values4247 POST :id/:merge_requests/:merge_request_iid/status_check_responses4248 permissions4249 user_permissions: :maintainer, applies_to_target_project: true, expected_status: :created4250 returns the correct status4251 user_permissions: :maintainer, applies_to_target_project: false, expected_status: :not_found4252 returns the correct status4253 user_permissions: :developer, applies_to_target_project: true, expected_status: :created4254 returns the correct status4255 user_permissions: :developer, applies_to_target_project: false, expected_status: :not_found4256 returns the correct status4257 user_permissions: :guest, applies_to_target_project: true, expected_status: :forbidden4258 returns the correct status4259 user_permissions: :guest, applies_to_target_project: false, expected_status: :not_found4260 returns the correct status4261 when user has access4262 when external status check ID does not belong to the requested project4263 returns a not found status4264 when sha is not the source branch HEAD4265 does not create a new approval4266 returns a conflict error4267 when user is not authenticated4268 returns an unauthorized status4269 DELETE projects/:id/external_status_checks/:check_id4270 deletes the specified rule4271 when feature is disabled, unlicensed or user has permission4272 licensed: false, project_owner: false, status: :not_found4273 returns the correct status code4274 licensed: false, project_owner: true, status: :unauthorized4275 returns the correct status code4276 licensed: true, project_owner: false, status: :not_found4277 returns the correct status code4278 licensed: true, project_owner: true, status: :success4279 returns the correct status code4280 POST projects/:id/external_status_checks4281 successfully creating new external approval rule4282 creates a new external approval rule4283 with protected branches4284 returns expected status code4285 creates protected branch records4286 responds with expected JSON4287 when feature is disabled, unlicensed or user has permission4288 licensed: false, project_owner: false, status: :not_found4289 returns the correct status code4290 licensed: false, project_owner: true, status: :unauthorized4291 returns the correct status code4292 licensed: true, project_owner: false, status: :not_found4293 returns the correct status code4294 licensed: true, project_owner: true, status: :created4295 returns the correct status code4296 GET projects/:id/external_status_checks4297 responds with expected JSON4298 paginates correctly4299 when feature is disabled, unlicensed or user has permission4300 licensed: false, project_owner: false, status: :not_found4301 returns the correct status code4302 licensed: false, project_owner: true, status: :unauthorized4303 returns the correct status code4304 licensed: true, project_owner: false, status: :not_found4305 returns the correct status code4306 licensed: true, project_owner: true, status: :success4307 returns the correct status code4308 POST projects/:id/merge_requests/:merge_request_iid/status_checks/:external_status_check_id/retry4309 when unlicensed4310 returns unauthorized status4311 when licensed4312 permissions4313 user_permissions: :maintainer, applies_to_target_project: true, expected_status: :accepted4314 returns the correct status4315 user_permissions: :maintainer, applies_to_target_project: false, expected_status: :not_found4316 returns the correct status4317 user_permissions: :developer, applies_to_target_project: true, expected_status: :accepted4318 returns the correct status4319 user_permissions: :developer, applies_to_target_project: false, expected_status: :not_found4320 returns the correct status4321 user_permissions: :guest, applies_to_target_project: true, expected_status: :forbidden4322 returns the correct status4323 user_permissions: :guest, applies_to_target_project: false, expected_status: :not_found4324 returns the correct status4325 when current_user has access4326 when status check is failed4327 calls async execute with correct data4328 returns accepted response4329 updates last status check response4330 when status check is passed4331 returns unprocessable_entity response4332 PUT projects/:id/external_status_checks/:check_id4333 successfully updating external approval rule4334 updates an approval rule4335 responds with correct http status4336 when referencing a protected branch outside of the project4337 is invalid4338 with protected branches4339 returns expected status code4340 creates protected branch records4341 responds with expected JSON4342 when feature is disabled, unlicensed or user has permission4343 licensed: false, project_owner: false, status: :not_found4344 returns the correct status code4345 licensed: false, project_owner: true, status: :unauthorized4346 returns the correct status code4347 licensed: true, project_owner: false, status: :not_found4348 returns the correct status code4349 licensed: true, project_owner: true, status: :success4350 returns the correct status code4351API::ProjectAliases4352 without premium license4353 GET /project_aliases4354 returns 4034355 behaves like GET request permissions for admin mode4356 behaves like when admin4357 behaves like makes request4358 returns4359 behaves like makes request4360 returns4361 behaves like when user4362 returns4363 behaves like makes request4364 returns4365 GET /project_aliases/:name4366 returns 4034367 behaves like GET request permissions for admin mode4368 behaves like when admin4369 behaves like makes request4370 returns4371 behaves like makes request4372 returns4373 behaves like when user4374 returns4375 behaves like makes request4376 returns4377 POST /project_aliases4378 returns 4034379 behaves like POST request permissions for admin mode4380 behaves like when admin4381 behaves like makes request4382 returns4383 behaves like makes request4384 returns4385 behaves like when user4386 returns4387 behaves like makes request4388 returns4389 DELETE /project_aliases/:name4390 returns 4034391 behaves like DELETE request permissions for admin mode4392 behaves like when admin4393 behaves like makes request4394 returns4395 behaves like makes request4396 returns4397 behaves like when user4398 returns4399 behaves like makes request4400 returns4401 with premium license4402 GET /project_aliases4403 behaves like GET request permissions for admin mode4404 behaves like when admin4405 behaves like makes request4406 returns4407 behaves like makes request4408 returns4409 behaves like when user4410 returns4411 behaves like makes request4412 returns4413 behaves like GitLab administrator only API endpoint4414 anonymous user4415 returns 4014416 regular user4417 returns 4034418 admin4419 returns the project aliases list4420 GET /project_aliases/:name4421 behaves like GET request permissions for admin mode4422 behaves like when admin4423 behaves like makes request4424 returns4425 behaves like makes request4426 returns4427 behaves like when user4428 returns4429 behaves like makes request4430 returns4431 behaves like GitLab administrator only API endpoint4432 anonymous user4433 returns 4014434 regular user4435 returns 4034436 admin4437 existing project alias4438 returns the project alias4439 non-existent project alias4440 returns 4044441 POST /project_aliases4442 behaves like POST request permissions for admin mode4443 behaves like when admin4444 behaves like makes request4445 returns4446 behaves like makes request4447 returns4448 behaves like when user4449 returns4450 behaves like makes request4451 returns4452 behaves like GitLab administrator only API endpoint4453 anonymous user4454 returns 4014455 regular user4456 returns 4034457 admin4458 existing project alias4459 returns 4004460 non-existent project alias4461 returns 2004462 DELETE /project_aliases/:name4463 behaves like DELETE request permissions for admin mode4464 behaves like when admin4465 behaves like makes request4466 returns4467 behaves like makes request4468 returns4469 behaves like when user4470 returns4471 behaves like makes request4472 returns4473 behaves like GitLab administrator only API endpoint4474 anonymous user4475 returns 4014476 regular user4477 returns 4034478 admin4479 existing project alias4480 returns 2044481 non-existent project alias4482 returns 4044483API::ProtectedBranches4484 GET /projects/:id/protected_branches/:branch4485 when authenticated as a maintainer4486 behaves like protected branch4487 returns the protected branch4488 with per user/group access levels4489 returns access level details4490 when protected branch contains a wildcard4491 behaves like protected branch4492 returns the protected branch4493 with per user/group access levels4494 returns access level details4495 when protected branch contains a period4496 behaves like protected branch4497 returns the protected branch4498 with per user/group access levels4499 returns access level details4500 when unprotect_access_level is set to DEVELOPER4501 unprotect_access_level is returned as DEVELOPER4502 when authenticated as a developer4503 behaves like protected branch4504 returns the protected branch4505 with per user/group access levels4506 returns access level details4507 when authenticated as a guest4508 behaves like 403 response4509 returns 4034510 PATCH /projects/:id/protected_branches/:branch4511 when authenticated as a maintainer4512 key: "push_access_levels", access_level_record: push_access_level, access_level_param: "allowed_to_push", new_access_level: 304513 creates an access level4514 updates an existing access level4515 deletes an existing access level4516 when no access levels are sent4517 does not update with default access levels4518 key: "merge_access_levels", access_level_record: merge_access_level, access_level_param: "allowed_to_merge", new_access_level: 304519 creates an access level4520 updates an existing access level4521 deletes an existing access level4522 when no access levels are sent4523 does not update with default access levels4524 key: "unprotect_access_levels", access_level_record: unprotect_access_level, access_level_param: "allowed_to_unprotect", new_access_level: 404525 creates an access level4526 updates an existing access level4527 deletes an existing access level4528 when no access levels are sent4529 does not update with default access levels4530 when the feature is enabled4531 updates the protected branch4532 when the feature is disabled4533 does not change the protected branch4534 when authenticated as a developer4535 returns a 403 response4536 when authenticated as a guest4537 returns a 403 response4538 POST /projects/:id/protected_branches4539 when authenticated as a maintainer4540 protects a single branch4541 protects a single branch and only admins can unprotect4542 no access is not a valid access level4543 code_owner_approval_required4544 when feature is enabled4545 sets :code_owner_approval_required to true when the param is true4546 sets :code_owner_approval_required to false when the param is false4547 when feature is not enabled4548 sets :code_owner_approval_required to false when the param is false4549 with granular access4550 can protect a branch while allowing an individual user to push4551 can protect a branch while allowing an individual user to merge4552 can protect a branch while allowing an individual user to unprotect4553 can protect a branch while allowing a group to push4554 can protect a branch while allowing a group to merge4555 can protect a branch while allowing a group to unprotect4556 fails if users don't all have access to the project4557 fails if groups aren't all invited to the project4558 avoids creating default access levels unless necessary4559 when protected_refs_for_users feature is not available4560 cannot protect a branch for a user or group only4561 when authenticated as a developer4562 returns a 403 response4563 when authenticated as a guest4564 returns a 403 response4565Groups::SsoController4566 SAML configured4567 has status 2004568 malicious redirect parameter falls back to group_path4569 passes group name to the view4570 unlinking user4571 allows account unlinking4572 with block_password_auth_for_saml_users feature flag switched off4573 does not sign out user provisioned by this group4574 with block_password_auth_for_saml_users feature flag switched on4575 signs out user provisioned by this group4576 when SAML is disabled for the group4577 renders 4044578 still allows account unlinking4579 when SAML trial has expired4580 DELETE /unlink still allows account unlinking4581 GET /saml renders 4044582 when user is not signed in4583 acts as route not found4584 when group has moved4585 redirects to new location4586 when current user has a SAML provider configured4587 renders `devise_empty` template4588 when current user does not have a SAML provider configured4589 renders `devise` template4590 saml_provider is unconfigured for the group4591 when user cannot configure Group SAML4592 renders 4044593 when user can admin group_saml4594 redirects to the Group SAML config page4595 sets a flash message explaining that setup is required4596 group does not exist4597 renders 4044598 when user is not signed in4599 acts as route not found4600 GET sign_up_form4601 with SAML configured4602 and group managed accounts enforced4603 renders 4044604 and oauth data available4605 has status 2004606 suggests first available username automatically4607 and belongs to different group4608 renders 4044609 and group managed accounts enforcing is disabled4610 renders 4044611 POST sign_up4612 calls for GroupSaml::SignUpService4613 when service fails4614 renders the form4615 when service succeeds4616 redirects to sign in4617 when user is already signed in4618 signs user out4619 POST authorize_managed_account4620 when user is already signed in4621 when service succeeds4622 redirects to group4623 when service fails4624 renders the form4625Groups::Analytics::CycleAnalytics::SummaryController4626 GET "show"4627 passes the date filter to the query class4628 behaves like summary endpoint4629 succeeds4630 when valid parameters are given4631 succeeds4632 accepts optional `project_ids` array4633 succeeds4634 when `created_before` is missing4635 succeeds4636 when `created_after` is missing4637 succeeds4638 when `created_after` is invalid, falls back to default date4639 is expected to respond with numeric status code success4640 when `created_before` is invalid4641 renders `unprocessable_entity`4642 when `created_after` is later than `created_before`4643 renders `unprocessable_entity`4644 when the date range exceeds 180 days4645 renders `unprocessable_entity`4646 when `group_id` is not found4647 renders `not_found` when group is missing4648 when user has no lower access level than `reporter`4649 renders `forbidden` response4650 when feature is not available for the group4651 renders `forbidden` response4652 GET "time_summary"4653 passes the group to RequestParams4654 uses the aggregated VSA data collector4655 behaves like summary endpoint4656 succeeds4657 when valid parameters are given4658 succeeds4659 accepts optional `project_ids` array4660 succeeds4661 when `created_before` is missing4662 succeeds4663 when `created_after` is missing4664 succeeds4665 when `created_after` is invalid, falls back to default date4666 is expected to respond with numeric status code success4667 when `created_before` is invalid4668 renders `unprocessable_entity`4669 when `created_after` is later than `created_before`4670 renders `unprocessable_entity`4671 when the date range exceeds 180 days4672 renders `unprocessable_entity`4673 when `group_id` is not found4674 renders `not_found` when group is missing4675 when user has no lower access level than `reporter`4676 renders `forbidden` response4677 when feature is not available for the group4678 renders `forbidden` response4679 time series endpoints4680 GET "lead_times"4681 returns the daily average durations4682 behaves like summary endpoint4683 succeeds4684 when valid parameters are given4685 succeeds4686 accepts optional `project_ids` array4687 succeeds4688 when `created_before` is missing4689 succeeds4690 when `created_after` is missing4691 succeeds4692 when `created_after` is invalid, falls back to default date4693 is expected to respond with numeric status code success4694 when `created_before` is invalid4695 renders `unprocessable_entity`4696 when `created_after` is later than `created_before`4697 renders `unprocessable_entity`4698 when the date range exceeds 180 days4699 renders `unprocessable_entity`4700 when `group_id` is not found4701 renders `not_found` when group is missing4702 when user has no lower access level than `reporter`4703 renders `forbidden` response4704 when feature is not available for the group4705 renders `forbidden` response4706 GET "cycle_times"4707 returns the daily average durations4708 behaves like summary endpoint4709 succeeds4710 when valid parameters are given4711 succeeds4712 accepts optional `project_ids` array4713 succeeds4714 when `created_before` is missing4715 succeeds4716 when `created_after` is missing4717 succeeds4718 when `created_after` is invalid, falls back to default date4719 is expected to respond with numeric status code success4720 when `created_before` is invalid4721 renders `unprocessable_entity`4722 when `created_after` is later than `created_before`4723 renders `unprocessable_entity`4724 when the date range exceeds 180 days4725 renders `unprocessable_entity`4726 when `group_id` is not found4727 renders `not_found` when group is missing4728 when user has no lower access level than `reporter`4729 renders `forbidden` response4730 when feature is not available for the group4731 renders `forbidden` response4732API::RelatedEpicLinks4733 GET /groups/:id/related_epic_links4734 when user has no access to the group4735 returns 4044736 when user has access to the group4737 returns only related epics links the user has access to4738 behaves like endpoint with features check4739 when epics feature is not available4740 is expected to eq 4034741 when related_epics feature is not available4742 is expected to eq 4034743 when filtered by updated_before4744 returns related epic links updated before the given parameter4745 returns no related epic links4746 when filtered by updated_after4747 returns related epic links updated before the given parameter4748 returns no related epic links4749 when filtered by created_after4750 returns related epic links created after the given parameter4751 returns no related epic links4752 when filtered by created_before4753 returns related epic links created before the given parameter4754 returns no related epic links4755 when epics links are in a sub-group4756 returns linked epic from sub-group4757 when user has access to both groups4758 returns related epic links4759 returns multiple links without N + 14760 with pagination4761 returns first page of related epics4762 returns the last page of related epics4763 GET /groups/:id/epics/:epic_id/related_epics4764 when user cannot read epics4765 returns 4044766 when user can read epics4767 returns related epics4768 returns multiple links without N + 14769 behaves like endpoint with features check4770 when epics feature is not available4771 is expected to eq 4034772 when related_epics feature is not available4773 is expected to eq 4034774 POST /groups/:id/epics/:epic_id/related_epics4775 behaves like unauthenticated resource4776 returns 4014777 when user can not access source epic4778 behaves like forbidden resource4779 returns 4034780 when user can access source epic4781 when user cannot access target epic4782 when group is private4783 behaves like not found resource4784 returns 4044785 when epic_relations_for_non_members is disabled4786 behaves like forbidden resource4787 returns 4034788 when user can access target epic group4789 returns 201 when sending full path of target group4790 returns 201 status for is_blocked_by link and contains the expected link response4791 behaves like successful response4792 returns created4793 behaves like endpoint with features check4794 when epics feature is not available4795 is expected to eq 4034796 when related_epics feature is not available4797 is expected to eq 4034798 when target epic is confidential4799 behaves like forbidden resource4800 returns 4034801 when target epic is not found4802 behaves like not found resource4803 returns 4044804 DELETE /groups/:id/epics/:epic_id/related_epics4805 behaves like unauthenticated resource4806 returns 4014807 when user can not access source epic4808 behaves like forbidden resource4809 returns 4034810 when user can access source epic4811 when target group is private4812 behaves like not found resource4813 returns 4044814 when epic_relations_for_non_members is disabled4815 behaves like not found resource4816 returns 4044817 when user can access target group4818 behaves like successful response4819 returns ok4820 behaves like endpoint with features check4821 when epics feature is not available4822 is expected to eq 4034823 when related_epics feature is not available4824 is expected to eq 4034825 when related_epic_link_id belongs to a different epic4826 behaves like not found resource4827 returns 4044828Admin::CredentialsController4829 GET #index4830 admin user4831 when `credentials_inventory` feature is enabled4832 responds with 2004833 behaves like Snowplow event tracking with RedisHLL context4834 behaves like Snowplow event tracking4835 is emitted4836 filtering by type of credential4837 no credential type specified4838 behaves like filtering by `personal_access_tokens`4839 is expected to contain exactly #<PersonalAccessToken id: 898, user_id: 1884, name: "PAT 898", revoked: false, expires_at: "2023-12-2...st_used_at: nil, after_expiry_notification_delivered: false, previous_personal_access_token_id: nil>, #<PersonalAccessToken id: 901, user_id: 1884, name: "PAT 901", revoked: false, expires_at: "2023-12-2...st_used_at: nil, after_expiry_notification_delivered: false, previous_personal_access_token_id: nil>, and #<PersonalAccessToken id: 902, user_id: 1884, name: "PAT 902", revoked: false, expires_at: "2023-12-2...st_used_at: nil, after_expiry_notification_delivered: false, previous_personal_access_token_id: nil>4840 non-existent credential type specified4841 behaves like filtering by `personal_access_tokens`4842 is expected to contain exactly #<PersonalAccessToken id: 898, user_id: 1884, name: "PAT 898", revoked: false, expires_at: "2023-12-2...st_used_at: nil, after_expiry_notification_delivered: false, previous_personal_access_token_id: nil>, #<PersonalAccessToken id: 901, user_id: 1884, name: "PAT 901", revoked: false, expires_at: "2023-12-2...st_used_at: nil, after_expiry_notification_delivered: false, previous_personal_access_token_id: nil>, and #<PersonalAccessToken id: 902, user_id: 1884, name: "PAT 902", revoked: false, expires_at: "2023-12-2...st_used_at: nil, after_expiry_notification_delivered: false, previous_personal_access_token_id: nil>4843 credential type specified as `personal_access_tokens`4844 behaves like filtering by `personal_access_tokens`4845 is expected to contain exactly #<PersonalAccessToken id: 898, user_id: 1884, name: "PAT 898", revoked: false, expires_at: "2023-12-2...st_used_at: nil, after_expiry_notification_delivered: false, previous_personal_access_token_id: nil>, #<PersonalAccessToken id: 901, user_id: 1884, name: "PAT 901", revoked: false, expires_at: "2023-12-2...st_used_at: nil, after_expiry_notification_delivered: false, previous_personal_access_token_id: nil>, and #<PersonalAccessToken id: 902, user_id: 1884, name: "PAT 902", revoked: false, expires_at: "2023-12-2...st_used_at: nil, after_expiry_notification_delivered: false, previous_personal_access_token_id: nil>4846 credential type specified as `ssh_keys`4847 filters by ssh keys4848 credential type specified as `resource_access_tokens`4849 filters by project and group access tokens4850 credential type specified as `gpg_keys`4851 filters by gpg keys4852 avoids N+1 queries4853 when `credentials_inventory` feature is disabled4854 returns 4044855 non-admin user4856 returns 4044857 DELETE #destroy4858 behaves like credentials inventory delete SSH key4859 admin user4860 when `credentials_inventory` feature is enabled4861 and the ssh_key exists4862 and it removes the key4863 renders a success message4864 notifies the key owner4865 and it fails to remove the key4866 renders a failure message4867 and the ssh_key does not exist4868 renders a not found message4869 when `credentials_inventory` feature is disabled4870 returns 4044871 non-admin user4872 returns 4044873 PUT #revoke4874 admin user4875 when `credentials_inventory` feature is enabled4876 non-existent personal access token specified4877 behaves like responds with 4044878 is expected to respond with numeric status code not_found4879 is expected to respond with numeric status code not_found4880 is expected to respond with numeric status code not_found4881 with an existing personal access token4882 does not have permissions to revoke the credential4883 behaves like displays the flash error message4884 is expected to eql "Not permitted to revoke"4885 personal access token is already revoked4886 behaves like displays the flash success message4887 is expected to start with "Revoked personal access token "4888 aggregate_failures4889 aggregate_failures4890 personal access token is already expired4891 behaves like displays the flash success message4892 is expected to start with "Revoked personal access token "4893 aggregate_failures4894 aggregate_failures4895 personal access token is not revoked or expired4896 informs the token owner4897 behaves like displays the flash success message4898 is expected to start with "Revoked personal access token "4899 aggregate_failures4900 aggregate_failures4901 when `credentials_inventory` feature is disabled4902 behaves like responds with 4044903 is expected to respond with numeric status code not_found4904 is expected to respond with numeric status code not_found4905 is expected to respond with numeric status code not_found4906 non-admin user4907 behaves like responds with 4044908 is expected to respond with numeric status code not_found4909 is expected to respond with numeric status code not_found4910 is expected to respond with numeric status code not_found4911Admin::CredentialsController4912 behaves like tracking unique visits4913 tracks unique visit if the format is HTML4914 tracks unique visit if DNT is not enabled4915 does not track unique visit if DNT is enabled4916 does not track unique visit if the format is JSON4917API::GroupBoards4918 behaves like group and project boards4919 avoids N+1 queries4920 GET /groups/:id/boards4921 when unauthenticated4922 returns authentication error4923 when authenticated4924 returns the issue boards4925 GET /groups/:id/boards/:board_id4926 get a single board by id4927 PUT /groups/:id/boards/:board_id4928 updates the board name4929 updates the issue board booleans4930 GET /groups/:id/boards/:board_id/lists4931 returns issue board lists4932 returns 404 if board not found4933 GET /groups/:id/boards/:board_id/lists/:list_id4934 returns a list4935 returns 404 if list not found4936 POST /groups/:id/boards/lists4937 creates a new issue board list for labels4938 returns 400 when creating a new list if label_id is invalid4939 returns 403 for members with guest role4940 PUT /groups/:id/boards/:board_id/lists/:list_id to update only position4941 updates a list4942 returns 404 error if list id not found4943 returns 403 for members with guest role4944 DELETE /groups/:id/boards/lists/:list_id4945 rejects a non member from deleting a list4946 rejects a user with guest role from deleting a list4947 returns 404 error if list id not found4948 when the user is parent owner4949 deletes the list if an admin requests it4950 behaves like 412 response4951 for a modified resource4952 returns 412 with a JSON error4953 for an unmodified resource4954 returns 204 with an empty body4955 behaves like multiple and scoped issue boards4956 multiple issue boards4957 POST /groups/:id/boards4958 creates a board4959 PUT /groups/:id/boards/:board_id4960 updates a board4961 does not remove missing attributes from the board4962 allows removing optional attributes4963 DELETE /groups/:id/boards/:board_id4964 deletes a board4965 with the scoped_issue_board-feature available4966 returns the milestone when the `scoped_issue_board` feature is enabled4967 hides the milestone when the `scoped_issue_board` feature is disabled4968 POST /groups/:id/boards/:board_id/lists4969 behaves like milestone board list4970 when milestone_id is sent4971 returns 400 if milestone is not found4972 returns 400 if milestone list feature is not available4973 creates a milestone list if milestone is found4974 behaves like assignee board list4975 when assignee_id is sent4976 returns 400 if user is not found4977 returns 400 if assignee list feature is not available4978 creates an assignee list if user is found4979 behaves like iteration board list4980 when iteration_id is sent4981 returns 400 if iteration is not found4982 returns 400 if not licensed4983 creates an iteration list if iteration is found4984Admin::Geo::SettingsController4985 #show4986 without a valid license4987 does not redirects to the 403 page4988 does show license alert4989 with a valid license4990 does not show license alert4991 #update4992 with a valid license4993 sets the geo node property in ApplicationSetting4994 redirects the update to the referer4995Groups::AuditEventsController4996 GET #index4997 when authorized owner4999 behaves like when audit_events feature is available5000 renders index with 200 status code5001 tracks search event5002 invokes AuditEventFinder with correct arguments5003 behaves like AuditEventFinder params5004 has the correct params5005 author5006 when no author entity type is specified5007 behaves like AuditEventFinder params5008 has the correct params5009 when the author entity type is specified5010 behaves like AuditEventFinder params5011 has the correct params5012 ordering5013 when no sort order is specified5014 behaves like orders by id descending5015 orders by id descending5016 when sorting by latest events first5017 behaves like orders by id descending5018 orders by id descending5019 when sorting by oldest events first5020 orders by id ascending5021 when sorting by an unsupported sort order5022 behaves like orders by id descending5023 orders by id descending5024 pagination5025 sets instance variables5026 paginates audit events, without casting a count query5027 behaves like Snowplow event tracking with RedisHLL context5028 behaves like Snowplow event tracking5029 is emitted5030 when invalid date5031 created_before: "invalid-date", created_after: nil5032 returns an error5033 created_before: nil, created_after: true5034 returns an error5035 created_before: "2021-13-10", created_after: nil5036 returns an error5037 created_before: nil, created_after: "2021-02-31"5038 returns an error5039 created_before: "2021-03-31", created_after: "2021-02-31"5040 returns an error5041 when date range is greater than limit5042 behaves like a date range error is returned5043 created_after: "2021-01-01", created_before: "2021-02-02"5044 returns an error5045 created_after: "2022-01-31", created_before: nil5046 returns an error5047 behaves like tracks govern usage event5048 tracks unique event5049 behaves like tracking unique visits5050 tracks unique visit if the format is HTML5051 tracks unique visit if DNT is not enabled5052 does not track unique visit if DNT is enabled5053 does not track unique visit if the format is JSON5054 when authorized auditor5056 behaves like when audit_events feature is available5057 renders index with 200 status code5058 tracks search event5059 invokes AuditEventFinder with correct arguments5060 behaves like AuditEventFinder params5061 has the correct params5062 author5063 when no author entity type is specified5064 behaves like AuditEventFinder params5065 has the correct params5066 when the author entity type is specified5067 behaves like AuditEventFinder params5068 has the correct params5069 ordering5070 when no sort order is specified5071 behaves like orders by id descending5072 orders by id descending5073 when sorting by latest events first5074 behaves like orders by id descending5075 orders by id descending5076 when sorting by oldest events first5077 orders by id ascending5078 when sorting by an unsupported sort order5079 behaves like orders by id descending5080 orders by id descending5081 pagination5082 sets instance variables5083 paginates audit events, without casting a count query5084 behaves like Snowplow event tracking with RedisHLL context5085 behaves like Snowplow event tracking5086 is emitted5087 when invalid date5088 created_before: "invalid-date", created_after: nil5089 returns an error5090 created_before: nil, created_after: true5091 returns an error5092 created_before: "2021-13-10", created_after: nil5093 returns an error5094 created_before: nil, created_after: "2021-02-31"5095 returns an error5096 created_before: "2021-03-31", created_after: "2021-02-31"5097 returns an error5098 when date range is greater than limit5099 behaves like a date range error is returned5100 created_after: "2021-01-01", created_before: "2021-02-02"5101 returns an error5102 created_after: "2022-01-31", created_before: nil5103 returns an error5104 behaves like tracks govern usage event5105 tracks unique event5106 behaves like tracking unique visits5107 tracks unique visit if the format is HTML5108 tracks unique visit if DNT is not enabled5109 does not track unique visit if DNT is enabled5110 does not track unique visit if the format is JSON5111 unauthorized5112 renders 4045113 behaves like doesn't track govern usage event5114 doesn't tracks event5115Update an external audit event destination5116 when feature is licensed5117 when current user is a group owner but destination belongs to another group5118 behaves like a mutation on an unauthorized resource5119 behaves like a mutation that returns top-level errors5120 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"5121 behaves like a mutation that does not update a destination5122 does not destroy the destination5123 does not audit the update5124 when current user is a group owner of a different group5125 behaves like a mutation on an unauthorized resource5126 behaves like a mutation that returns top-level errors5127 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"5128 behaves like a mutation that does not update a destination5129 does not destroy the destination5130 does not audit the update5131 when current user is a group owner5132 updates the destination_url5133 updates the destination name5134 behaves like audits update to external streaming destination5135 when both destination url and destination name are updated5136 audits the update5137 when only destination url is updated5138 audits the update5139 when only destination name is updated5140 audits the update5141 when there is no change in values5142 behaves like a mutation that does not update a destination5143 does not destroy the destination5144 does not audit the update5145 when current user is a group maintainer5146 behaves like a mutation that does not update a destination5147 does not destroy the destination5148 does not audit the update5149 when current user is a group developer5150 behaves like a mutation that does not update a destination5151 does not destroy the destination5152 does not audit the update5153 when current user is a group guest5154 behaves like a mutation that does not update a destination5155 does not destroy the destination5156 does not audit the update5157 when feature is unlicensed5158 does not destroy the destination5159 behaves like a mutation on an unauthorized resource5160 behaves like a mutation that returns top-level errors5161 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"5162Groups::Security::CredentialsController5163 GET #index5164 when `credentials_inventory` feature is enabled5165 for a group that enforces group managed accounts5166 for a user with access to view credentials inventory5167 responds with 2005168 filtering by type of credential5169 no credential type specified5170 behaves like filtering by `personal_access_tokens`5171 is expected to contain exactly #<PersonalAccessToken id: 963, user_id: 1914, name: "PAT 963", revoked: false, expires_at: "2023-12-2...st_used_at: nil, after_expiry_notification_delivered: false, previous_personal_access_token_id: nil>, #<PersonalAccessToken id: 964, user_id: 1913, name: "PAT 964", revoked: false, expires_at: "2023-12-2...st_used_at: nil, after_expiry_notification_delivered: false, previous_personal_access_token_id: nil>, and #<PersonalAccessToken id: 965, user_id: 1914, name: "PAT 965", revoked: false, expires_at: "2023-12-2...st_used_at: nil, after_expiry_notification_delivered: false, previous_personal_access_token_id: nil>5172 non-existent credential type specified5173 behaves like filtering by `personal_access_tokens`5174 is expected to contain exactly #<PersonalAccessToken id: 963, user_id: 1914, name: "PAT 963", revoked: false, expires_at: "2023-12-2...st_used_at: nil, after_expiry_notification_delivered: false, previous_personal_access_token_id: nil>, #<PersonalAccessToken id: 966, user_id: 1913, name: "PAT 966", revoked: false, expires_at: "2023-12-2...st_used_at: nil, after_expiry_notification_delivered: false, previous_personal_access_token_id: nil>, and #<PersonalAccessToken id: 967, user_id: 1914, name: "PAT 967", revoked: false, expires_at: "2023-12-2...st_used_at: nil, after_expiry_notification_delivered: false, previous_personal_access_token_id: nil>5175 credential type specified as `personal_access_tokens`5176 behaves like filtering by `personal_access_tokens`5177 is expected to contain exactly #<PersonalAccessToken id: 963, user_id: 1914, name: "PAT 963", revoked: false, expires_at: "2023-12-2...st_used_at: nil, after_expiry_notification_delivered: false, previous_personal_access_token_id: nil>, #<PersonalAccessToken id: 968, user_id: 1913, name: "PAT 968", revoked: false, expires_at: "2023-12-2...st_used_at: nil, after_expiry_notification_delivered: false, previous_personal_access_token_id: nil>, and #<PersonalAccessToken id: 969, user_id: 1914, name: "PAT 969", revoked: false, expires_at: "2023-12-2...st_used_at: nil, after_expiry_notification_delivered: false, previous_personal_access_token_id: nil>5178 user scope5179 does not show the credentials of a user outside the group5180 credential type specified as `ssh_keys`5181 filters by ssh keys5182 for a user without access to view credentials inventory5183 responds with 4045184 for a group that does not enforce group managed accounts5185 responds with 4045186 when `credentials_inventory` feature is disabled5187 returns 4045188 DELETE #destroy5189 behaves like credentials inventory delete SSH key5190 admin user5191 when `credentials_inventory` feature is enabled5192 and the ssh_key exists5193 and it removes the key5194 renders a success message5195 notifies the key owner5196 and it fails to remove the key5197 renders a failure message5198 and the ssh_key does not exist5199 renders a not found message5200 when `credentials_inventory` feature is disabled5201 returns 4045202 non-admin user5203 returns 4045204 PUT #revoke5205 when `credentials_inventory` feature is enabled5206 for a group that enforces group managed accounts5207 for a user with access to view credentials inventory5208 non-existent personal access token specified5209 behaves like responds with 4045210 is expected to respond with numeric status code not_found5211 with an existing personal access token5212 personal access token is already revoked5213 behaves like displays the flash success message5214 is expected to start with "Revoked personal access token "5215 personal access token is already expired5216 behaves like displays the flash success message5217 is expected to start with "Revoked personal access token "5218 does not have permissions to revoke the credential5219 behaves like responds with 4045220 is expected to respond with numeric status code not_found5221 personal access token is already revoked5222 behaves like displays the flash success message5223 is expected to start with "Revoked personal access token "5224 personal access token is already expired5225 behaves like displays the flash success message5226 is expected to start with "Revoked personal access token "5227 personal access token is not revoked or expired5228 informs the token owner5229 behaves like displays the flash success message5230 is expected to start with "Revoked personal access token "5231 for a user without access to view credentials inventory5232 behaves like responds with 4045233 is expected to respond with numeric status code not_found5234 for a group that does not enforce group managed accounts5235 responds with 4045236 when `credentials_inventory` feature is disabled5237 behaves like responds with 4045238 is expected to respond with numeric status code not_found5239API::VulnerabilityExports5240 POST /security/projects/:id/vulnerability_exports5241 behaves like creating export for exportable5242 when the request does not fulfill the requirements5243 responds with bad_request5244 when the request fulfills the requirements5245 when the user is not authorized to take the action5246 responds with 403 forbidden5247 when the user is authorized to take the action5248 when the export creation succeeds5249 returns information about new vulnerability export5250 when the export creation fails5251 returns the error message5252 behaves like forbids access to vulnerability API endpoint in case of disabled features5253 when security dashboard feature is not available5254 responds with 403 Forbidden5255 permissions5256 is expected to be allowed for :admin5257 is expected to be allowed for :owner5258 is expected to be allowed for :maintainer5259 is expected to be allowed for :developer5260 is expected to be allowed for :auditor5261 is expected to be denied for :reporter5262 is expected to be denied for :guest5263 is expected to be denied for :anonymous5264 POST /security/groups/:id/vulnerability_exports5265 behaves like creating export for exportable5266 when the request does not fulfill the requirements5267 responds with bad_request5268 when the request fulfills the requirements5269 when the user is not authorized to take the action5270 responds with 403 forbidden5271 when the user is authorized to take the action5272 when the export creation succeeds5273 returns information about new vulnerability export5274 when the export creation fails5275 returns the error message5276 behaves like forbids access to vulnerability API endpoint in case of disabled features5277 when security dashboard feature is not available5278 responds with 403 Forbidden5279 POST /security/vulnerability_exports5280 behaves like creating export for exportable5281 when the request does not fulfill the requirements5282 responds with bad_request5283 when the request fulfills the requirements5284 when the user is not authorized to take the action5285 responds with 403 forbidden5286 when the user is authorized to take the action5287 when the export creation succeeds5288 returns information about new vulnerability export5289 when the export creation fails5290 returns the error message5291 behaves like forbids access to vulnerability API endpoint in case of disabled features5292 when security dashboard feature is not available5293 responds with 403 Forbidden5294 GET /security/vulnerability_exports/:id5295 with an authorized user with proper permissions5296 when export is finished5297 returns information about vulnerability export5298 does not return Poll-Interval header5299 when export is running5300 returns information about vulnerability export5301 returns Poll-Interval header with value set to 5 seconds5302 permissions5303 is expected to be denied for :admin5304 is expected to be denied for :owner5305 is expected to be denied for :maintainer5306 is expected to be denied for :developer5307 is expected to be denied for :auditor5308 is expected to be denied for :reporter5309 is expected to be denied for :guest5310 is expected to be denied for :anonymous5311 for export author5312 is expected to be allowed for #<User id:1917 @user963>5313 GET /security/vulnerability_exports/:id/download5314 with an authorized user with proper permissions5315 when export is running5316 renders 4045317 when export is failed5318 renders 4045319 when export is finished5320 renders 200 with CSV file5321 permissions5322 is expected to be denied for :admin5323 is expected to be denied for :owner5324 is expected to be denied for :maintainer5325 is expected to be denied for :developer5326 is expected to be denied for :auditor5327 is expected to be denied for :reporter5328 is expected to be denied for :guest5329 is expected to be denied for :anonymous5330 for export author5331 is expected to be allowed for #<User id:1917 @user963>5332Projects::DependenciesController5333 GET #index5334 when the "Security and Compliance" feature is disabled5335 is expected to respond with numeric status code not_found5336 with authorized user5337 when feature is available5338 with existing report5339 without pagination params5340 returns paginated list5341 returns status ok5342 returns job path5343 returns success code5344 with params5345 with sorting params5346 does not include occurrence_id within dependencies5347 when sorted by packager5348 returns sorted list5349 return 20 dependencies5350 when sorted by severity5351 returns sorted list5352 with filter by vulnerable5353 with authorized user to see vulnerabilities5354 return vulnerable dependencies5355 returns vulnerability params5356 with pagination params5357 returns paginated list5358 with found cyclonedx report5359 includes license information in response5360 with a report of the wrong type5361 returns job_not_set_up status5362 returns a nil job_path5363 when report doesn't have dependency list field5364 returns dependencies with vulnerabilities5365 when job failed5366 returns job_failed status5367 behaves like tracks govern usage event5368 tracks unique event5369 when licensed feature is unavailable5370 returns 403 for a JSON request5371 returns a 404 for an HTML request5372 behaves like doesn't track govern usage event5373 doesn't tracks event5374 with unauthorized user5375 returns 403 for a JSON request5376 returns a 404 for an HTML request5377 behaves like doesn't track govern usage event5378 doesn't tracks event5379API::MergeRequestApprovalSettings5380 GET /groups/:id/merge_request_approval_settings5381 when the user is authorised5382 matches the response schema5383 allow_author_approval values5384 behaves like resolvable5385 instance_prevents_approval: true, group_allows_approval: true, value: false, locked: true, inherited_from: "instance"5386 has the correct value5387 has the correct locked status5388 has the correct inheritance5389 instance_prevents_approval: true, group_allows_approval: false, value: false, locked: true, inherited_from: "instance"5390 has the correct value5391 has the correct locked status5392 has the correct inheritance5393 instance_prevents_approval: false, group_allows_approval: true, value: true, locked: false, inherited_from: nil5394 has the correct value5395 has the correct locked status5396 has the correct inheritance5397 instance_prevents_approval: false, group_allows_approval: false, value: false, locked: false, inherited_from: nil5398 has the correct value5399 has the correct locked status5400 has the correct inheritance5401 allow_committer_approval values5402 behaves like resolvable5403 instance_prevents_approval: true, group_allows_approval: true, value: false, locked: true, inherited_from: "instance"5404 has the correct value5405 has the correct locked status5406 has the correct inheritance5407 instance_prevents_approval: true, group_allows_approval: false, value: false, locked: true, inherited_from: "instance"5408 has the correct value5409 has the correct locked status5410 has the correct inheritance5411 instance_prevents_approval: false, group_allows_approval: true, value: true, locked: false, inherited_from: nil5412 has the correct value5413 has the correct locked status5414 has the correct inheritance5415 instance_prevents_approval: false, group_allows_approval: false, value: false, locked: false, inherited_from: nil5416 has the correct value5417 has the correct locked status5418 has the correct inheritance5419 allow_overrides_to_approver_list_per_merge_request values5420 behaves like resolvable5421 instance_prevents_approval: true, group_allows_approval: true, value: false, locked: true, inherited_from: "instance"5422 has the correct value5423 has the correct locked status5424 has the correct inheritance5425 instance_prevents_approval: true, group_allows_approval: false, value: false, locked: true, inherited_from: "instance"5426 has the correct value5427 has the correct locked status5428 has the correct inheritance5429 instance_prevents_approval: false, group_allows_approval: true, value: true, locked: false, inherited_from: nil5430 has the correct value5431 has the correct locked status5432 has the correct inheritance5433 instance_prevents_approval: false, group_allows_approval: false, value: false, locked: false, inherited_from: nil5434 has the correct value5435 has the correct locked status5436 has the correct inheritance5437 when the group does not have existing settings5438 returns in-memory default settings5439 when the user is not authorised5440 returns 403 status5441 PUT /groups/:id/merge_request_approval_setting5442 when the user is authorised5443 returns 200 status with correct response body5444 matches the response schema5445 when update fails5446 returns 400 status5447 when invalid params5448 returns 400 status with error message5449 when the user is not authorised5450 returns 403 status5451 GET /projects/:id/merge_request_approval_settings5452 matches the response schema5453 when the project does not have existing settings5454 returns in-memory default settings5455 PUT /projects/:id/merge_request_approval_settings5456 matches the response schema and updates the params5457 when enabling selective_code_owner_removals and retain_approvals_on_push5458 updates the params5459 when enabling selective_code_owner_removals with retain_approvals_on_push disabled5460 returns error response and does not update the params5461Repositories::GitHttpController5462 when repository container is a group wiki5463 behaves like Repositories::GitHttpController5464 HEAD #info_refs5465 returns 4035466 GET #info_refs5467 returns 401 for unauthenticated requests to public repositories when http protocol is disabled5468 calls the right access checker class with the right object5469 with authorized user5470 returns 2005471 adds user info to the logs5472 POST #git_upload_pack5473 returns 2005474 when JWT token is not provided5475 returns 4035476 git audit streaming event5477 behaves like sends git audit streaming event5478 for public groups and projects5479 when user not logged in5480 sends the audit streaming event5481 for private groups and projects5482 when user logged in5483 when log_git_streaming_audit_events is enable5484 does not send the audit streaming event5485 respond the need audit to be true5486 when log_git_streaming_audit_events is disable5487 sends git streaming audit event5488 respond the need audit to be false5489 group IP restriction5490 without enforced IP allowlist5491 allows the request5492 with enforced IP allowlist5493 when IP is allowed5494 allows the request5495 when IP is not allowed5496 returns unauthorized5497 GET #git_upload_pack5498 behaves like a request without write access needed5499 and enabled for project5500 returns a successful response5501 and disabled for project5502 returns a failed response5503 POST #git_upload_pack5504 behaves like a request without write access needed5505 and enabled for project5506 returns a successful response5507 and disabled for project5508 returns a failed response5509 GET #git_receive_pack5510 behaves like a request with write access needed5511 and write access is granted5512 returns a successful response5513 and write access is not granted5514 returns a failed response5515 POST #git_receive_pack5516 behaves like a request with write access needed5517 and write access is granted5518 returns a successful response5519 and write access is not granted5520 returns a failed response5521Projects::Settings::MergeRequestsController5522 PUT #update5523 updates Merge Request Approvers attributes5524 updates Issuable Default Templates attributes5525 when merge_pipelines_enabled param is specified5526 updates the attribute5527 when license is not sufficient5528 does not update the attribute5529 when suggested_reviewers_enabled param is specified5530 updates the attribute5531 when merge_trains_enabled param is specified5532 updates the attribute5533 when license is not sufficient5534 does not update the attribute5535 when merge_trains_skip_train_allowed param is specified5536 updates the attribute5537 when license is not sufficient5538 does not update the attribute5539 when only_allow_merge_if_all_status_checks_passed param is specified5540 behaves like update only allow merge if all status checks passed5541 when only_allow_merge_if_all_status_checks_passed param is specified5542 updates the attribute5543 when license is not sufficient5544 does not update the attribute5545 when auto_rollback_enabled param is specified5546 updates the attribute5547 when license is not sufficient5548 does not update the attribute5549 merge request approvers settings5550 does not push security_orchestration_policies licensed feature5551 :disable_overriding_approvers_per_merge_request5552 behaves like merge request approvers rules5553 can_modify: true, param_value: true, final_value: true5554 updates project if needed5555 can_modify: true, param_value: false, final_value: false5556 updates project if needed5557 can_modify: false, param_value: true, final_value: nil5558 updates project if needed5559 can_modify: false, param_value: false, final_value: nil5560 updates project if needed5561 :merge_requests_author_approval5562 behaves like merge request approvers rules5563 can_modify: true, param_value: true, final_value: true5564 updates project if needed5565 can_modify: true, param_value: false, final_value: false5566 updates project if needed5567 can_modify: false, param_value: true, final_value: nil5568 updates project if needed5569 can_modify: false, param_value: false, final_value: nil5570 updates project if needed5571 :merge_requests_disable_committers_approval5572 behaves like merge request approvers rules5573 can_modify: true, param_value: true, final_value: true5574 updates project if needed5575 can_modify: true, param_value: false, final_value: false5576 updates project if needed5577 can_modify: false, param_value: true, final_value: nil5578 updates project if needed5579 can_modify: false, param_value: false, final_value: nil5580 updates project if needed5581 with security_orchestration_policies licensed feature enabled5582 pushes security_orchestration_policies licensed feature5583API::ProjectApprovals5584 GET /projects/:id/approvals5585 only shows approver groups that are visible to the user5586 when the request is correct5587 returns expected boolean values for merge request related attributes5588 returns 200 status5589 matches the response schema5590 when user is an auditor5591 allows access5592 when project is archived5593 when user has normal permissions5594 returns 4035595 when user has project admin permissions5596 allows access5597 when user is an auditor5598 allows access5599 POST /projects/:id/approvals5600 when enabling selective_code_owner_removals5601 when reset_approvals_on_push is enabled5602 returns error response and does not update the param5603 when reset_approvals_on_push is disabled5604 updates the param5605 as a project admin5606 behaves like a user with access5607 when missing parameters5608 returns 400 status5609 when the request is correct5610 returns 201 status5611 matches the response schema5612 changes settings properly5613 only shows approver groups that are visible to the current user5614 as a global admin5615 behaves like a user with access5616 when missing parameters5617 returns 400 status5618 when the request is correct5619 returns 201 status5620 matches the response schema5621 changes settings properly5622 only shows approver groups that are visible to the current user5623 updates merge requests settings5624 behaves like updates merge requests settings when possible5625 permission_value: false, param_value: false, final_value: false5626 changes settings properly5627 permission_value: false, param_value: true, final_value: false5628 changes settings properly5629 permission_value: true, param_value: false, final_value: false5630 changes settings properly5631 permission_value: true, param_value: true, final_value: true5632 changes settings properly5633 behaves like updates merge requests settings when possible5634 permission_value: false, param_value: false, final_value: false5635 changes settings properly5636 permission_value: false, param_value: true, final_value: false5637 changes settings properly5638 permission_value: true, param_value: false, final_value: false5639 changes settings properly5640 permission_value: true, param_value: true, final_value: true5641 changes settings properly5642 behaves like updates merge requests settings when possible5643 permission_value: false, param_value: false, final_value: false5644 changes settings properly5645 permission_value: false, param_value: true, final_value: false5646 changes settings properly5647 permission_value: true, param_value: false, final_value: false5648 changes settings properly5649 permission_value: true, param_value: true, final_value: true5650 changes settings properly5651 as a user without access5652 returns 4035653 as a auditor user making changes5654 returns 4035655Groups::InsightsController5656 when insights configuration project cannot be read by current user5657 when visiting the parent group5658 GET #show.html5659 behaves like 404 status5660 returns 404 status5661 GET #show.json5662 behaves like 404 status5663 returns 404 status5664 POST #query5665 behaves like 404 status5666 returns 404 status5667 when visiting a nested group5668 GET #show.html5669 behaves like 200 status5670 returns 200 status5671 GET #show.json5672 does return the default config5673 behaves like 200 status5674 returns 200 status5675 POST #query.json5676 behaves like 200 status5677 returns 200 status5678 when insights configuration project can be read by current user5679 when the configuration is attached to the current group5680 GET #show.html5681 behaves like 200 status5682 returns 200 status5683 GET #show.json5684 behaves like 200 status5685 returns 200 status5686 POST #query.json5687 behaves like 200 status5688 returns 200 status5689 GET #show5690 behaves like tracking unique visits5691 tracks unique visit if the format is HTML5692 tracks unique visit if DNT is not enabled5693 does not track unique visit if DNT is enabled5694 does not track unique visit if the format is JSON5695 behaves like Snowplow event tracking with RedisHLL context5696 behaves like Snowplow event tracking5697 is emitted5698 when the configuration is attached to a nested group5699 GET #show.html5700 behaves like 200 status5701 returns 200 status5702 GET #show.json5703 behaves like 200 status5704 returns 200 status5705 POST #query.json5706 behaves like 200 status5707 returns 200 status5708 when using the legacy format5709 behaves like 200 status5710 returns 200 status5711Groups::Security::PoliciesController5712 GET #edit5713 with authorized user5714 when feature is licensed5715 renders the edit page5716 does not contain any approver data5717 with scan result policy type5718 renders the edit page with approvers data5719 when type is missing5720 redirects to #index5721 when type is invalid5722 redirects to #index5723 when id does not exist5724 returns 4045725 when there is no policy configuration5726 returns 4045727 when policy yaml file does not exist5728 redirects to project page5729 when policy yaml is invalid5730 redirects to policy file5731 behaves like tracks govern usage event5732 tracks unique event5733 when feature is not licensed5734 returns 4045735 behaves like doesn't track govern usage event5736 doesn't tracks event5737 with unauthorized user5738 returns 4045739 behaves like doesn't track govern usage event5740 doesn't tracks event5741 with anonymous user5742 returns 4045743 behaves like doesn't track govern usage event5744 doesn't tracks event5745 GET #index5746 user_role: :reporter, license: true, status: :not_found5747 is expected to respond with numeric status code not_found5748 user_role: :developer, license: true, status: :ok5749 is expected to respond with numeric status code ok5750 user_role: :developer, license: false, status: :not_found5751 is expected to respond with numeric status code not_found5752 usage tracking5753 with license available5754 behaves like tracks govern usage event5755 tracks unique event5756 without license available5757 behaves like doesn't track govern usage event5758 doesn't tracks event5759 GET #schema5760 returns JSON schema5761Query.project(fullPath).dastSiteProfiles5762 when a user does not have access to the project5763 returns a null project5764 when a user does not have access to dast_site_profiles5765 returns an empty edges array5766 when a user has access dast_site_profiles5767 returns populated edges array5768 returns a populated edges array containing a dast_site_profile associated with the project5769 avoids N+1 queries5770 when there are fewer dast_site_profiles than the page limit5771 indicates there are no more pages available5772 when there are more dast_site_profiles than the page limit5773 indicates there are more pages available5774 when on demand scan licensed feature is not available5775 returns an empty edges array5776Create a work item5777 when user has permissions to create a work item5778 with iteration widget input5779 when creating work items in a project5780 with projectPath5781 behaves like creates work item5782 when setting iteration on work item creation5783 sets the work item's iteration5784 when iterations feature is unavailable5785 returns nil5786 when creating a key result5787 when okrs are available5788 creates the work item5789 when okrs are not available5790 returns error5791 when group_webhooks feature is available5792 creates a work item5793 with namespacePath5794 behaves like creates work item5795 when setting iteration on work item creation5796 sets the work item's iteration5797 when iterations feature is unavailable5798 returns nil5799 when creating a key result5800 when okrs are available5801 creates the work item5802 when okrs are not available5803 returns error5804 when group_webhooks feature is available5805 creates a work item5806 when creating work items in a group5807 behaves like creates work item5808 when setting iteration on work item creation5809 sets the work item's iteration5810 when iterations feature is unavailable5811 returns nil5812 when creating a key result5813 when okrs are available5814 creates the work item5815 when okrs are not available5816 returns error5817 when group_webhooks feature is available5818 creates a work item5819Projects::Settings::AccessTokensController5820 POST /:namespace/:project/-/settings/access_tokens5821 when has a bronze subscription5822 behaves like feature unavailable5823 with a free plan5824 is expected to respond with numeric status code not_found5825 when user is not a maintainer with a paid group plan5826 is expected to respond with numeric status code not_found5827 behaves like POST resource access tokens available5828 renders JSON with a token5829 creates resource access token5830 creates project bot user5831 is expected to change `User.count` by 15832 is expected to change `PersonalAccessToken.count` by 15833 when unsuccessful5834 does not create the token5835 does not add the project bot as a member5836 does not create the project bot user5837 renders JSON with an error5838 when has an active trial subscription5839 can create first token successfully5840 cannot create second token5841 when there is token under different project of same group5842 still cannot create new token5843 PUT /:namespace/:project/-/settings/access_tokens/:id/revoke5844 behaves like feature unavailable5845 with a free plan5846 is expected to respond with numeric status code not_found5847 when user is not a maintainer with a paid group plan5848 is expected to respond with numeric status code not_found5849 behaves like PUT resource access tokens available5850 calls delete user worker5851 removes membership of bot user5852 creates GhostUserMigration records to handle migration in a worker5853 when unsuccessful5854 shows a failure alert5855 when has trial subscription5856 when the trial subscription is active5857 can revoke token successfully5858 when the trial subscription is expired5859 still can revoke token successfully5860API::AwardEmoji5861 GET /groups/:id/awardable/:awardable_id/award_emoji5862 on an epic5863 returns an array of award_emoji5864 returns a 404 error when epic id not found5865 GET /groups/:id/awardable/:awardable_id/notes/:note_id/award_emoji5866 returns an array of award emoji5867 GET /groups/:id/awardable/:awardable_id/award_emoji/:award_id5868 on an epic5869 returns the award emoji5870 returns a 404 error if the award is not found5871 GET /groups/:id/awardable/:awardable_id/notes/:note_id/award_emoji/:award_id5872 returns an award emoji5873 POST /groups/:id/awardable/:awardable_id/award_emoji5874 on an epic5875 creates a new award emoji5876 returns a 400 bad request error if the name is not given5877 returns a 404 if the user is not authenticated5878 normalizes +1 as thumbsup award5879 when the emoji already has been awarded5880 returns a 404 status code5881 POST /groups/:id/awardable/:awardable_id/notes/:note_id/award_emoji5882 creates a new award emoji5883 marks Todos on the Noteable as done5884 normalizes +1 as thumbsup award5885 when the emoji already has been awarded5886 returns a 404 status code5887 DELETE /groups/:id/awardable/:awardable_id/award_emoji/:award_id5888 when the awardable is an Epic5889 deletes the award5890 returns a 404 error when the award emoji can not be found5891 behaves like 412 response5892 for a modified resource5893 returns 412 with a JSON error5894 for an unmodified resource5895 returns 204 with an empty body5896 DELETE /groups/:id/awardable/:awardable_id/award_emoji/:award_emoji_id5897 deletes the award5898 behaves like 412 response5899 for a modified resource5900 returns 412 with a JSON error5901 for an unmodified resource5902 returns 204 with an empty body5903Query.vulnerabilities.sort5904 sort by severity5905 sort by SEVERITY_ASC5906 behaves like sorted paginated query5907 behaves like requires variables5908 shared example requires variables to be set5910 when sorting5911 sorts correctly5912 when paginating5913 paginates correctly5914 sort by SEVERITY_DESC5915 behaves like sorted paginated query5916 behaves like requires variables5917 shared example requires variables to be set5919 when sorting5920 sorts correctly5921 when paginating5922 paginates correctly5923 sort by severity5924 sort by SEVERITY_ASC5925 behaves like sorted paginated query5926 behaves like requires variables5927 shared example requires variables to be set5929 when sorting5930 sorts correctly5931 when paginating5932 paginates correctly5933 sort by SEVERITY_DESC5934 behaves like sorted paginated query5935 behaves like requires variables5936 shared example requires variables to be set5938 when sorting5939 sorts correctly5940 when paginating5941 paginates correctly5942Projects::ApproversController5943 #destroy5944 on a merge request5945 when the user cannot update approvers because they do not have access5946 returns a 4045947 does not destroy any approvers5948 when the user cannot update approvers because of the project setting5949 returns a 4045950 does not destroy any approvers5951 when the user can update approvers5952 destroys the provided approver5953 on a project5954 when the user cannot update approvers because they do not have access5955 returns a 4045956 does not destroy any approvers5957 when the user can update approvers5958 destroys the provided approver5959API::Ci::Triggers5960 POST /projects/:project_id/trigger/pipeline5961 when triggering a pipeline from a job token5962 without user5963 does not leak the presence of project when using valid token5964 for unreleated user5965 does not leak the presence of project when using valid token5966 for related user5967 with reporter permissions5968 forbids to create a pipeline5969 with developer permissions5970 creates a new pipeline5971 when project is not in the job token scope5972 forbids to create a pipeline5973 when build is complete5974 does not create a pipeline5975 when variables are defined5976 creates a new pipeline with a variable5977API::Ci::Jobs5978 GET /projects/:id/jobs/:job_id/artifacts5979 when using job_token to authenticate5980 when cross-project pipelines are enabled through license5981 behaves like enabled cross-project pipelines5982 user is developer5983 returns specific job artifacts5984 when anonymous user is accessing private artifacts5985 hides artifacts and rejects request5986 when cross-project pipelines are enabled through usage ping features5987 behaves like enabled cross-project pipelines5988 user is developer5989 returns specific job artifacts5990 when anonymous user is accessing private artifacts5991 hides artifacts and rejects request5992 when cross-project pipeline are disabled5993 disallows access to the artifacts5994 when the job is not running5995 disallows access to the artifacts5996 GET /projects/:id/artifacts/:ref_name/download?job=name5997 when using job_token to authenticate5998 when cross-project pipelines are enabled through license5999 behaves like enabled cross-project pipelines6000 when user is developer6001 when artifacts are stored locally6002 returns specific job artifacts6003 when artifacts are stored remotely6004 returns location redirect6005 when user is admin, but not member6006 does not allow to see that artfiact is present6007 when cross-project pipelines are enabled through usage ping features6008 behaves like enabled cross-project pipelines6009 when user is developer6010 when artifacts are stored locally6011 returns specific job artifacts6012 when artifacts are stored remotely6013 returns location redirect6014 when user is admin, but not member6015 does not allow to see that artfiact is present6016Reposition and move epic between board lists6017 when epics are available6018 when user does not have permissions to admin the board6019 raises resource not available error6020 when user has permissions to admin the board6021 when required move params are missing6022 raises an error6023 when positionInList param is invalid6024 when move_before_id is also given6025 raises an error6026 when move_after_id is also given6027 raises an error6028 when position_in_list is invalid6029 raises an error6030 moving an epic to another list6031 moves the epic to another list6032 repositioning an epic6033 when both move_before_id and move_after_id params are present6034 repositions the epic6035 when only move_before_id param is present6036 repositions the epic6037 when only move_after_id param is present6038 repositions the epic6039 when position_in_list param is present6040 when moving an epic to the beginning of the list6041 repositions the epic6042 when moving an epic to the bottom of the list6043 repositions the epic6044SmartcardController6045 #auth6046 with smartcard_auth enabled6047 redirects to extract certificate6048 with provider param6049 forwards the provider param6050 with smartcard_auth disabled6051 renders 4046052 #extract_certificate6053 with smartcard_auth enabled6054 redirects to verify certificate6055 with provider param6056 forwards the provider param6057 missing NGINX client certificate header6058 renders unauthorized6059 request from different host / port6060 renders 4046061 with smartcard_auth disabled6062 renders 4046063 #verify_certificate6064 Smartcard::Certificate6065 behaves like a client certificate authentication6066 with smartcard_auth enabled6067 allows sign in6068 redirects to root6069 logs audit event6070 stores active session6071 user does not exist6072 signup allowed6073 creates user6074 signup disabled6075 renders 4016076 missing client certificate param6077 renders unauthorized6078 with smartcard_auth disabled6079 renders 4046080 user already exists6081 finds existing user6082 certificate header formats from NGINX6083 escaped format6084 behaves like valid certificate header6085 authenticates user6086 deprecated format6087 behaves like valid certificate header6088 authenticates user6089 Smartcard::LdapCertificate6090 sets correct parameters for LDAP search6091 behaves like a client certificate authentication6092 with smartcard_auth enabled6093 allows sign in6094 redirects to root6095 logs audit event6096 stores active session6097 user does not exist6098 signup allowed6099 creates user6100 signup disabled6101 renders 4016102 missing client certificate param6103 renders unauthorized6104 with smartcard_auth disabled6105 renders 4046106 user already exists6107 finds existing user6108 user has a different identity6109 doesn't login a user6110 doesn't create a new user entry either6111Projects::BoardsController6112 GET index6113 behaves like pushes wip limits to frontend6114 self-hosted with correct license6115 is enabled for all groups if the license is correct6116 on .com6117 for group with correct plan6118 is enabled6119 for group with incorrect or no plan6120 is not enabled6121Create a new value stream6122 when namespace is a project6123 behaves like a request to create value streams6124 when user has permissions to create value streams6125 creates a new value stream6126 returns the created value stream6127 and uses invalid arguments6128 returns error6129 when stages argument is present6130 creates value stream with stages6131 when it has invalid parameters6132 returns error6133 when the user does not have permission to create a value stream6134 behaves like a mutation that returns a top-level access error6135 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"6136 when Value Stream Analytics is not available for the namespace6137 behaves like a mutation that returns a top-level access error6138 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"6139 when namespace is a group6140 behaves like a request to create value streams6141 when user has permissions to create value streams6142 creates a new value stream6143 returns the created value stream6144 and uses invalid arguments6145 returns error6146 when stages argument is present6147 creates value stream with stages6148 when it has invalid parameters6149 returns error6150 when the user does not have permission to create a value stream6151 behaves like a mutation that returns a top-level access error6152 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"6153 when Value Stream Analytics is not available for the namespace6154 behaves like a mutation that returns a top-level access error6155 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"6156 when setting argument is present6157 saves project_ids filter6158Query.instanceSecurityDashboard.projects6159 with logged in user6160 requesting projects in the dashboard6161 behaves like a working graphql query that returns data6162 contains data6163 finds only projects that were added to instance security dashboard6164 behaves like a working graphql query6165 returns a successful response6166 when loading vulnerabilityGrades alongside with Vulnerability.userNotesCount6167 behaves like a working graphql query that returns data6168 contains data6169 finds vulnerability grades for only projects that were added to instance security dashboard6170 behaves like a working graphql query6171 returns a successful response6172 requesting clusterAgents in the dashboard6173 behaves like a working graphql query that returns data6174 contains data6175 finds only projects that were added to instance security dashboard6176 behaves like a working graphql query6177 returns a successful response6178 with no user6179 behaves like a working graphql query that returns no data6180 contains no data6181 behaves like a working graphql query6182 returns a successful response6183Updating the dependency proxy packages settings6184 post graphql mutation6185 role: :anonymous, result: :denied, existing_settings: true6186 with existing settings6187 returns the correct result6188 with a non existing project path6189 returns the resource access error6190 role: :anonymous, result: :denied, existing_settings: false6191 with non existing settings6192 returns the correct result6193 with a non existing project path6194 returns the resource access error6195 role: :developer, result: :denied, existing_settings: true6196 with existing settings6197 returns the correct result6198 with a non existing project path6199 returns the resource access error6200 role: :developer, result: :denied, existing_settings: false6201 with non existing settings6202 returns the correct result6203 with a non existing project path6204 returns the resource access error6205 role: :maintainer, result: :success, existing_settings: true6206 with existing settings6207 returns the correct result6208 with a non existing project path6209 returns the resource access error6210 role: :maintainer, result: :success, existing_settings: false6211 with non existing settings6212 returns the correct result6213 with a non existing project path6214 returns the resource access error6215 without permission6216 returns no response6217 with a maintainer6218 with config packages disabled6219 behaves like returning a graphql error6220 does not create any setting6221 with config dependency_proxy disabled6222 behaves like returning a graphql error6223 does not create any setting6224 with packages feature disabled in the project6225 behaves like returning a graphql error6226 does not create any setting6227 with licensed dependency proxy for packages disabled6228 behaves like returning a graphql error6229 does not create any setting6230 with packages_dependency_proxy_maven disabled6231 behaves like returning a graphql error6232 does not create any setting6233API::Dependencies6234 GET /projects/:id/dependencies6235 behaves like a gitlab tracking event6236 creates a gitlab tracking event view_dependencies6237 with an authorized user with proper permissions6238 when a pipeline does not exist6239 returns an empty array response6240 when a pipeline exists6241 returns paginated dependencies6242 returns vulnerabilities info6243 without cyclonedx report6244 does not include license information to response6245 with cyclonedx report6246 include license information to response6247 with nil package_manager6248 returns no dependencies6249 with filter options6250 returns yarn dependencies6251 with wrong key6252 returns error message6253 with pagination params6254 returns paginated dependencies6255 without permissions to see vulnerabilities6256 returns empty vulnerabilities6257 without permissions to see licenses6258 returns empty licenses6259 with authorized user without read permissions6260 responds with 403 Forbidden6261 with no project access6262 responds with 404 Not Found6263Adding a Note to an Epic6264 when the user does not have permission6265 behaves like a Note mutation when the user does not have permission6266 behaves like a Note mutation that does not create a Note6267 is expected not to change `Note.count`6268 behaves like a mutation that returns top-level errors6269 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"6270 when the user has permission6271 when using internal param6272 behaves like a Note mutation with confidential notes6273 returns a Note with confidentiality enabled6274 behaves like a Note mutation that creates a Note6275 is expected to change `Note.count` by 16276 when using deprecated confidential param6277 behaves like a Note mutation with confidential notes6278 returns a Note with confidentiality enabled6279 behaves like a Note mutation that creates a Note6280 is expected to change `Note.count` by 16281 when body contains quick actions6282 behaves like work item supports weights widget updates via quick actions6283 updates the work item6284 behaves like work item does not support weights widget updates via quick actions6285 ignores the quick action6286 behaves like work item supports health status widget updates via quick actions6287 updates work item health status6288 behaves like work item does not support health status widget updates via quick actions6289 ignores the quick action6290Subscriptions::GroupsController6291 GET #edit6292 with an unauthenticated user6293 is expected to respond with numeric status code redirect6294 is expected to redirect to "/users/sign_in"6295 with an authenticated user who is not an owner6296 is expected to respond with numeric status code not_found6297 with an authenticated user6298 is expected to respond with numeric status code ok6299 PUT #update6300 with an unauthenticated user6301 is expected to respond with numeric status code redirect6302 is expected to redirect to "/users/sign_in"6303 does not update the name6304 does not update the path6305 for visibility change6306 does not update visibility6307 with an authenticated user who is not a group owner6308 is expected to respond with numeric status code not_found6309 does not update the name6310 does not update the path6311 for visibility change6312 does not update visibility6313 with an authenticated user6314 is expected to respond with numeric status code redirect6315 is expected to redirect to "/new-path"6316 updates the name6317 updates the path6318 updates the visibility_level6319 sets flash notice6320 with new_user param6321 sets flash notice6322 when the group cannot be saved6323 does not update the name6324 does not update the path6325 is expected to respond with numeric status code ok6326 is expected to render template edit6327Admin::Geo::NodesController6328 #index6329 with valid license6330 does not show license alert6331 without valid license6332 does show license alert6333 does not redirects to the 403 page6334 #create6335 without add-on license6336 behaves like unlicensed geo action6337 redirects to the 403 page6338 with add-on license6339 delegates the create of the Geo node to Geo::NodeCreateService6340 #update6341 without add-on license6342 behaves like unlicensed geo action6343 redirects to the 403 page6344 with add-on license6345 updates the node6346 delegates the update of the Geo node to Geo::NodeUpdateService6347User with manage_project_access_tokens custom role6348 Projects::Settings::AccessTokensController6349 GET /:namespace/:project/-/settings/access_tokens6350 user has access via custom role6351 POST /:namespace/:project/-/settings/access_tokens6352 with custom access level same as the current user6353 behaves like POST resource access tokens available6354 renders JSON with a token6355 creates resource access token6356 creates project bot user6357 is expected to change `User.count` by 16358 is expected to change `PersonalAccessToken.count` by 16359 when unsuccessful6360 does not create the token6361 does not add the project bot as a member6362 does not create the project bot user6363 renders JSON with an error6364 with custom access level higher than the current user6365 renders JSON with an error6366 ProjectsController6367 user has access via custom role6368Projects::MetricsController6369 GET #index6370 behaves like metrics route request6371 behaves like observability csp policy6372 when there is no CSP config6373 does not add any csp header6374 frame-src6375 when frame-src exists in the CSP config6376 appends the proper url to frame-src CSP directives6377 when signin url is already present in the policy6378 does not append signin again6379 when oauth url is already present in the policy6380 does not append oauth again6381 when default-src exists in the CSP config6382 does not change default-src6383 appends the proper url to frame-src CSP directives6384 when frame-src and default-src exist in the CSP config6385 appends to frame-src CSP directives6386 connect-src6387 when connect-src exists in the CSP config6388 appends the proper url to connect-src CSP directives6389 when default-src exists in the CSP config6390 does not change default-src6391 appends the proper url to connect-src CSP directives6392 when connect-src and default-src exist in the CSP config6393 appends to connect-src CSP directives6394 when user does not have permissions6395 returns 4046396 when user has permissions6397 returns 2006398 when feature is disabled6399 returns 4046400 html response6401 renders the js-metrics element correctly6402Updating a Requirement6403 when the user does not have permission6404 behaves like requirement update fails6405 does not update requirement6406 behaves like a mutation that returns a top-level access error6407 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"6408 when the user has permission6409 when requirements are disabled6410 behaves like requirement update fails6411 does not update requirement6412 behaves like a mutation that returns a top-level access error6413 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"6414 when requirements are enabled6415 when identifying requirement by legacy iid6416 updates the requirement6417 when identifying requirement by work item iid6418 updates the requirement6419 when there are ActiveRecord validation errors6420 does not update the requirement6421 behaves like a mutation that returns errors in the response6422 is expected to contain exactly "Title can't be blank"6423 when there are no update params6424 behaves like a mutation that returns top-level errors6425 is expected to contain exactly "At least one of title, state, last_test_report_state, description is required"6426 when neither iid nor work_item_iid are given6427 behaves like a mutation that returns top-level errors6428 is expected to contain exactly "One and only one of iid or workItemIid is required"6429 when there are no update params nor iid params6430 behaves like a mutation that returns top-level errors6431 is expected to contain exactly /one of iid or workItemIid is required; At least one of title/6432 when both iid and work_item_iid are given6433 behaves like a mutation that returns top-level errors6434 is expected to contain exactly "One and only one of iid or workItemIid is required"6435Destroy Google Cloud logging configuration6436 when feature is unlicensed6437 behaves like a mutation on an unauthorized resource6438 behaves like a mutation that returns top-level errors6439 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"6440 behaves like a mutation that does not destroy a configuration6441 does not destroy the configuration6442 does not create audit event6443 when feature is licensed6444 when current user is a group owner6445 destroys the configuration6446 audits the deletion6447 when there is an error during destroy6448 does not destroy the configuration and returns the error6449 when current user is a group maintainer6450 behaves like a mutation on an unauthorized resource6451 behaves like a mutation that returns top-level errors6452 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"6453 behaves like a mutation that does not destroy a configuration6454 does not destroy the configuration6455 does not create audit event6456 when current user is a group developer6457 behaves like a mutation on an unauthorized resource6458 behaves like a mutation that returns top-level errors6459 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"6460 behaves like a mutation that does not destroy a configuration6461 does not destroy the configuration6462 does not create audit event6463 when current user is a group guest6464 behaves like a mutation on an unauthorized resource6465 behaves like a mutation that returns top-level errors6466 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"6467 behaves like a mutation that does not destroy a configuration6468 does not destroy the configuration6469 does not create audit event6470API::ResourceIterationEvents6471 when eventable is an Issue6472 behaves like resource_iteration_events API6473 GET /projects/:id/issues/:noteable_id/resource_iteration_events6474 returns an array of resource iteration events6475 returns a 404 error when eventable id not found6476 returns 404 when not authorized6477 GET /projects/:id/issues/:noteable_id/resource_iteration_events/:event_id6478 returns a resource iteration event by id6479 returns 404 when not authorized6480 returns a 404 error if resource iteration event not found6481 pagination6482 returns the second page6483Create project subscription6484 when the user has the required permissions6485 when a successful result is yielded6486 does creates a new record6487 returns the subscription6488 when the downstream path is invalid6489 returns an error6490 does not create a new record6491 when the upstream path is invalid6492 returns an error6493 does not create a new record6494 when the service returns an error6495 does not create a new record6496 behaves like a mutation that returns errors in the response6497 is expected to contain exactly "An error message."6498 when feature flag create_project_subscription_graphql_endpoint is disabled6499 returns an error6500 does not create a new record6501 when the user does not have the maintainer role6502 returns an error6503 does not create a new record6504 when the user does not have the developer role6505 returns an error6506 does not create a new record6507Query.workspaces(project_ids: [::Types::GlobalIDType[Project]!])6508 behaves like a fully working Query.workspaces query6509 behaves like multiple workspaces query6510 when remote_development feature is licensed6511 when user is authorized6512 behaves like query is a working graphql query6513 behaves like a working graphql query6514 returns a successful response6515 behaves like query returns workspaces hash containing workspace6516 includes only the expected workspace6517 when the user requests a workspace that they are not authorized for6518 does not return the unauthorized workspace6519 still returns the authorized workspace6520 when user is not authorized6521 behaves like query is a working graphql query6522 behaves like a working graphql query6523 returns a successful response6524 behaves like query returns blank6525 is expected to be blank6526 behaves like query in unlicensed environment6527 when remote_development feature is unlicensed6528 when user is authorized6529 behaves like query returns blank6530 is expected to be blank6531 behaves like query includes graphql error6532 includes a graphql error6533getting Incident Management on-call schedules6534 with project permissions6535 with unavailable feature6536 is expected to be empty6537 behaves like a working graphql query6538 returns a successful response6539 without on-call schedules6540 is expected to be empty6541 behaves like a working graphql query6542 returns a successful response6543 with on-call schedules6544 returns the correct properties of the on-call schedule6545 behaves like a working graphql query6546 returns a successful response6547 with an array of iids given6548 is expected to eq 16549 is expected to eq "1"6550 behaves like a working graphql query6551 returns a successful response6552 without project permissions6553 is expected to be nil6554 behaves like a working graphql query6555 returns a successful response6556Query.workspaces(project_ids: [::Types::GlobalIDType[Project]!])6557 behaves like a fully working Query.currentUser.workspaces query6558 behaves like multiple workspaces query6559 when remote_development feature is licensed6560 when user is authorized6561 behaves like query is a working graphql query6562 behaves like a working graphql query6563 returns a successful response6564 behaves like query returns workspaces hash containing workspace6565 includes only the expected workspace6566 when the user requests a workspace that they are not authorized for6567 does not return the unauthorized workspace6568 still returns the authorized workspace6569 when user is not authorized6570 behaves like query is a working graphql query6571 behaves like a working graphql query6572 returns a successful response6573 behaves like query returns blank6574 is expected to be blank6575 behaves like query in unlicensed environment6576 when remote_development feature is unlicensed6577 when user is authorized6578 behaves like query returns blank6579 is expected to be blank6580 behaves like query includes graphql error6581 includes a graphql error6582PipelineSecurityReportFinding6583 when loading a merge request6584 when the current user is authorized6585 returns the merge request6586getting merge request information nested in a project6587 mergeRequestDiffs6588 when there are diff and review summaries associated to MR diffs6589 returns the diff and review summaries6590 avoids N+1 queries6591 when there are no diff and review summaries associated to MR diffs6592 returns empty nodes6593 diffLlmSummaries6594 when there are MergeRequest::DiffLlmSummary records associated to MR6595 returns the diff summaries6596 when there are no MergeRequest::DiffLlmSummary records associated to MR6597 returns empty nodes6598 suggestedReviewers6599 when suggested reviewers is available for the project6600 returns the right suggested reviewers6601 when suggested reviewers is not available for the project6602 returns nil6603Subscriptions::TrialsController6604 GET new6605 when not authenticated6606 is expected to redirect to trial registration6607 when authenticated6608 is expected to respond with numeric status code ok6609 when subscriptions_trials is not available6610 is expected to respond with numeric status code not_found6611 with an unconfirmed email address present6612 does not show email confirmation warning6613 when on the trial step6614 is expected to render select namespace6615 POST create6616 when not authenticated6617 redirects to trial registration6618 when user is banned6619 redirects to sign in with banned message6620 when authenticated6621 when user is then banned6622 redirects to trial registration6623 when successful6624 redirects to group path6625 with stored location concerns on redirection6626 when the user is setup for company6627 when there is a stored location for the user6628 redirects to the stored location6629 without a stored location set for the user6630 redirects to the group path6631 when submitted with glm_content value of discover-group-security6632 redirects to the group security dashboard6633 when submitted with glm_content value of discover-project-security6634 redirects to the group security dashboard6635 with create service failures6636 when namespace is not found or not allowed to create6637 is expected to respond with numeric status code not_found6638 when lead creation fails6639 renders lead form6640 when lead creation is successful, but we need to select a namespace next to apply trial6641 redirects to new with trial step6642 with namespace creation failure6643 renders the select namespace form again with namespace creation errors only6644 with trial failure6645 renders the select namespace form again with trial creation errors only6646 with random failure6647 is expected to render select namespace6648 when subscriptions_trials is not available6649 is expected to respond with numeric status code not_found6650Query.currentUser.workspaces6651 behaves like a fully working Query.currentUser.workspaces query6652 behaves like multiple workspaces query6653 when remote_development feature is licensed6654 when user is authorized6655 behaves like query is a working graphql query6656 behaves like a working graphql query6657 returns a successful response6658 behaves like query returns workspaces hash containing workspace6659 includes only the expected workspace6660 when the user requests a workspace that they are not authorized for6661 does not return the unauthorized workspace6662 still returns the authorized workspace6663 when user is not authorized6664 behaves like query is a working graphql query6665 behaves like a working graphql query6666 returns a successful response6667 behaves like query returns blank6668 is expected to be blank6669 behaves like query in unlicensed environment6670 when remote_development feature is unlicensed6671 when user is authorized6672 behaves like query returns blank6673 is expected to be blank6674 behaves like query includes graphql error6675 includes a graphql error6676Projects::Quality::TestCasesController6677 GET6678 #index6679 behaves like test case action6680 with authorized user6681 when feature is available6682 renders the template6683 when feature is not available6684 returns 4046685 with unauthorized user6686 when feature is available6687 returns 4046688 with anonymous user6689 returns 3026690 #new6691 behaves like test case action6692 with authorized user6693 when feature is available6694 renders the template6695 when feature is not available6696 returns 4046697 with unauthorized user6698 when feature is available6699 returns 4046700 with anonymous user6701 returns 3026702 #show6703 behaves like test case action6704 with authorized user6705 when feature is available6706 renders the template6707 when feature is not available6708 returns 4046709 with unauthorized user6710 when feature is available6711 returns 4046712 with anonymous user6713 returns 3026714 when feature is enabled and user has access6715 assigns test case related variables6716 when test case is not found6717 returns 4046718API::ResourceStateEvents6719 when eventable is an Epic6720 behaves like resource_state_events API6721 GET /groups/:id/epics/:noteable_id/resource_state_events6722 returns an array of resource state events6723 returns a 404 error when eventable id not found6724 returns 404 when not authorized6725 GET /groups/:id/epics/:noteable_id/resource_state_events/:event_id6726 returns a resource state event by id6727 returns 404 when not authorized6728 returns a 404 error if resource state event not found6729 pagination6730 returns the second page6731Projects::Security::SastConfigurationController6732 GET #show6733 when the "Security and Compliance" feature is disabled6734 is expected to respond with numeric status code not_found6735 behaves like SecurityDashboardsPermissions6736 access for all actions6737 when security dashboard feature is disabled6738 returns 4046739 when security dashboard feature is enabled6740 when user has guest access6741 denies access6742 when user has developer access6743 grants access6744 with authorized user6745 renders the show template6746 with unauthorized user6747 returns a 4036748Updating an existing HTTP Integration6749 updates the custom mapping params6750 behaves like updating an existing HTTP integration6751 updates the integration6752 behaves like validating the payload_example6753 validates the payload_example size6754 with invalid payloadExample attribute6755 responds with errors6756 behaves like validating the payload_attribute_mappings6757 with invalid payloadAttributeMapping attribute does not contain fieldName6758 responds with errors6759 with invalid payloadAttributeMapping attribute does not contain path6760 responds with errors6761 with invalid payloadAttributeMapping attribute does not contain type6762 responds with errors6763 when the integration already has custom mapping params6764 when the custom mappings attributes are blank6765 resets the custom mapping params6766 when the custom mappings attributes are nils6767 resets the custom mapping params6768 when the custom mappings attributes are not part of the mutation variables6769 does not reset the custom mapping attributes6770 with the custom mappings feature unavailable6771 behaves like ignoring the custom mapping6772 updates integration without the custom mapping params6773Creating a workspace6774 creates the workspace6775 when required arguments are missing6776 returns error about required argument6777 when remote_development feature is unlicensed6778 behaves like a mutation that returns top-level errors6779 is expected to include /'remote_development' licensed feature is not available/6780 when there are service errors6781 behaves like a mutation that returns errors in the response6782 is expected to contain exactly "some error"6783 when the user cannot create a workspace for the project6784 behaves like a mutation on an unauthorized resource6785 behaves like a mutation that returns top-level errors6786 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"6787API::GroupMilestones6788 matches V4 EE-specific response schema for a list of issues6789 behaves like group and project milestone burndowns6790 GET /groups/:id/milestones/:milestone_id/burndown_events6791 returns burndown events list6792 returns 404 when user is not authorized to read milestone6793Query.vulnerabilities.issueLinks6794 when invalid linkType argument is provided6795 errors with a string6796 errors with a number6797 errors with lowercased `created`6798 errors with lowercased `related`6799 when valid linkType argument is provided6800 returns a list of VulnerabilityIssueLink with `CREATED` linkType6801 returns a list of VulnerabilityIssueLink with `RELATED` linkType6802 when no arguments are provided6803 returns a list of all VulnerabilityIssueLink6804 loading issue links in batch6805 does not cause N+1 query issue6806API::Analytics::CodeReviewAnalytics6807 GET code_review6808 is successful6809 with merge requests present6810 returns list of open MRs with pagination headers6811 with label & milestone filters6812 applies filter6813 with negation filters6814 applies filter6815 with any label filter present6816 applies filter6817 when user has no authorization6818 is not authorized6819 when feature is not available in plan6820 is not_authorized6821 when project_id is not specified6822 is not found6823Querying explain this vulnerability prompt6824 when user is logged in and permitted6825 prompt_with_code6826 when the vulnerability has code6827 is expected to eq "You are a software vulnerability developer.\nExplain the vulnerability \"My title 500 - ()\".\nThe f...with syntax highlighting on how to fix it.\nProvide the response in markdown format with headers.\n"6828 when the vulnerability does not have code6829 is expected to be nil6830 prompt_without_code6831 when the vulnerability has code6832 is expected to eq "You are a software vulnerability developer.\nExplain the vulnerability \"My title 500 - ()\".\nThe v...with syntax highlighting on how to fix it.\nProvide the response in markdown format with headers.\n"6833 when the vulnerability does not have code6834 is expected to eq "You are a software vulnerability developer.\nExplain the vulnerability \"My title 502 - (CVE-2018-12...with syntax highlighting on how to fix it.\nProvide the response in markdown format with headers.\n"6835 when user is not logged in6836 returns nothing6837 when user is not permitted on the project6838 returns nothing6839UserAddOnAssignmentRemove6840 when current_user is admin6841 behaves like success response6842 returns expected response6843 expires the cache key for that user6844 behaves like success response6845 returns expected response6846 expires the cache key for that user6847 when there are multiple add-on assignments for the user6848 avoids N+1 database queries6849 when feature flag hamilton_seat_management is disabled6850 behaves like empty response6851 returns nil6852 when add_on_purchase has expired6853 behaves like empty response6854 returns nil6855 when current_user is not owner or admin6856 behaves like empty response6857 returns nil6858 when the user does not have existing assignment6859 behaves like empty response6860 returns nil6861 when user_id does not exists6862 behaves like empty response6863 returns nil6864 when add_on_purchase_id does not exists6865 behaves like empty response6866 returns nil6867Create a Compliance Framework6868 framework feature is unlicensed6869 behaves like a mutation that returns errors in the response6870 is expected to contain exactly "Not permitted to create framework"6871 pipeline configuration feature is unlicensed6872 when pipeline_configuration_full_path is set6873 behaves like a mutation that returns errors in the response6874 is expected to contain exactly "Pipeline configuration full path feature is not available"6875 when pipeline_configuration_full_path is not set6876 behaves like a mutation that creates a compliance framework6877 creates a new compliance framework6878 returns the newly created framework6879 feature is licensed6880 namespace is a personal namespace6881 current_user is namespace owner6882 does not create a new compliance framework6883 behaves like a mutation that returns errors in the response6884 is expected to contain exactly "Failed to create framework" and "Namespace must be a group, user namespaces are not supported."6885 namespace is a group6886 current_user is group owner6887 behaves like a mutation that creates a compliance framework6888 creates a new compliance framework6889 returns the newly created framework6890 current_user is not a group owner6891 current_user is group owner6892 does not create a new compliance framework6893 behaves like a mutation that returns errors in the response6894 is expected to contain exactly "Not permitted to create framework"6895Projects::EnvironmentsController6896 GET #show6897 deployment approvals6898 preloads approvals their authors6899 #GET terminal6900 when environment is protected6901 when user does not have access to it6902 responds with access denied6903 when user has access to it6904 is successful6905 when environment is not protected6906 is successful6907 POST #cancel_auto_stop6908 when environment is set as auto-stop6909 behaves like successful response for #cancel_auto_stop6910 when request is html6911 redirects to show page6912 expires etag caching6913 when request is js6914 responds as ok6915 expires etag caching6916 when the environment is protected6917 shows not found6918Running a DAST Profile6919 behaves like an on-demand scan mutation when user cannot run an on-demand scan6920 when a user does not have access to the project6921 behaves like a mutation that returns a top-level access error6922 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"6923 when a user does not have access to run a dast scan on the project6924 behaves like a mutation that returns a top-level access error6925 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"6926 behaves like an on-demand scan mutation when user can run an on-demand scan6927 returns an empty errors array6928 returns a pipeline_url containing the correct path6929 when on demand scan licensed feature is not available6930 behaves like a mutation that returns a top-level access error6931 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"6932 when pipeline creation fails6933 behaves like a mutation that returns errors in the response6934 is expected to contain exactly "full error messages"6935Groups::ScimOauthController6936 when the feature is configured6937 POST #create6938 without token6939 creates a new SCIM token record6940 json6941 shows the token6942 shows the url6943 with token6944 does not create a new SCIM token record6945 updates the token6946 json6947 shows the token6948 shows the url6949Project Environments query6950 with protected environments6951 returns protected environment attributes6952 returns deploy access levels6953 returns approval rules6954 returns unified approval setting6955 when a specifc user is allowed to deploy6956 returns deploy access levels6957 when a specifc user is allowed to approve6958 returns approval rules6959 when a specifc group is allowed to deploy6960 returns deploy access levels6961 when a specifc group is allowed to approve6962 returns approval rules6963 when fetching protected environments for multiple environments6964 avoids N+1 query issue6965 when user does not have access to the environment6966 does not return protected environments6967Query.workspace(id: RemoteDevelopmentWorkspaceID!)6968 behaves like a fully working Query.workspace query6969 behaves like single workspace query6970 when remote_development feature is licensed6971 when user is authorized6972 behaves like query is a working graphql query6973 behaves like a working graphql query6974 returns a successful response6975 behaves like query returns workspace6976 is expected to eq "workspace-26-2445-mfxis0"6977 when the user requests a workspace that they are not authorized for6978 behaves like query returns blank6979 is expected to be blank6980 when user is not authorized6981 behaves like query is a working graphql query6982 behaves like a working graphql query6983 returns a successful response6984 behaves like query returns blank6985 is expected to be blank6986 behaves like query in unlicensed environment6987 when remote_development feature is unlicensed6988 when user is authorized6989 behaves like query returns blank6990 is expected to be blank6991 behaves like query includes graphql error6992 includes a graphql error6993Add an issue to an Epic6994 when epics feature is disabled6995 behaves like mutation without access6996 does not add issue to the epic6997 behaves like a mutation that returns a top-level access error6998 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"6999 when epics feature is enabled7000 when the user is a group member7001 adds the issue to the epic7002 when the user is not a group member7003 behaves like mutation without access7004 does not add issue to the epic7005 behaves like a mutation that returns a top-level access error7006 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"7007Projects::Integrations::Zentao::IssuesController7008 GET #index7009 renders the "index" template7010 when zentao_issues_integration licensed feature is not available7011 returns 404 status7012 behaves like unauthorized when external service denies access7013 allows access when the authorization service allows it7014 allows access when the authorization service denies it7015 json request7016 returns a list of serialized zentao issues7017 renders bad request for Error7018 GET #show7019 when zentao_issues_integration licensed feature is not available7020 returns 404 status7021 when zentao_issues_integration licensed feature is available7022 with valid request7023 renders `show` template successfully7024 returns JSON response successfully7025 with bad request7026 renders `show` template successfully7027 returns JSON response with error messages7028 when the JSON fetched from ZenTao contains HTML7029 escapes the HTML in issue7030Groups::MergeRequestsController7031 POST #bulk_update7032 when group bulk edit feature is not enabled7033 returns 404 status7034 when group bulk edit feature is enabled7035 when user has permissions to bulk update merge requests7036 returns status 2007037 updates merge requests milestone7038 when user does not have permissions to bulk update merge requests7039 returns status 4047040 does not update merge requests milestone7041API::PypiPackages7042 GET /api/v4/projects/:id/packages/pypi/files/:sha256/*file_identifier7043 behaves like applying ip restriction for group7044 in group without restriction7045 behaves like returning response status7046 returns ok7047 in group with restriction7048 with address within the range7049 behaves like returning response status7050 returns ok7051 with address outside the range7052 behaves like returning response status7053 returns not_found7054 GET /api/v4/groups/:id/-/packages/pypi/files/:sha256/*file_identifier7055 behaves like applying ip restriction for group7056 in group without restriction7057 behaves like returning response status7058 returns ok7059 in group with restriction7060 with address within the range7061 behaves like returning response status7062 returns ok7063 with address outside the range7064 behaves like returning response status7065 returns not_found7066Projects::SecretsController7067 GET /:namespace/:project/-/secrets7068 when feature flag "ci_tanukey_ui" is enabled for the root group7069 on the secrets page for a project in the group7070 behaves like renders the project secrets index template7071 is expected to render template matcher "projects/secrets/index"7072 on the secrets page for a project in a subgroup in the group7073 behaves like renders the project secrets index template7074 is expected to render template matcher "projects/secrets/index"7075 when feature flag "ci_tanukey_ui" is enabled for a subgroup7076 on the secrets page for a project outside of the subgroup7077 behaves like returns a "not found" response7078 is expected to respond with numeric status code not_found7079 on the secrets page for a project in the subgroup7080 behaves like returns a "not found" response7081 is expected to respond with numeric status code not_found7082 when feature flag "ci_tanukey_ui" is disabled7083 behaves like returns a "not found" response7084 is expected to respond with numeric status code not_found7085Admin::AuditLogsController7086 GET #index7087 licensed7088 tracks search event7089 pagination7090 paginates audit events, without casting a count query7091 behaves like tracking unique visits7092 tracks unique visit if the format is HTML7093 tracks unique visit if DNT is not enabled7094 does not track unique visit if DNT is enabled7095 does not track unique visit if the format is JSON7096 behaves like Snowplow event tracking with RedisHLL context7097 behaves like Snowplow event tracking7098 is emitted7099 when invalid date7100 created_before: "invalid-date", created_after: nil7101 returns an error7102 created_before: nil, created_after: true7103 returns an error7104 created_before: "2021-13-10", created_after: nil7105 returns an error7106 created_before: nil, created_after: "2021-02-31"7107 returns an error7108 created_before: "2021-03-31", created_after: "2021-02-31"7109 returns an error7110 when date range is greater than limit7111 behaves like a date range error is returned7112 created_after: "2021-01-01", created_before: "2021-02-02"7113 returns an error7114 created_after: "2022-01-31", created_before: nil7115 returns an error7116 by user7117 finds the user by id when provided with a entity_id7118 finds the user by username when provided with a entity_username7119creating escalation policy7120 successfully creates the policy and rules7121 when rules are provided out of order7122 successfully creates the policy and reorders the rules7123 errors7124 user does not have permission7125 raises an error7126 no rules given7127 raises an error7128Projects::Security::DastScannerProfilesController7129 GET #new7130 behaves like a GET request7131 when the "Security and Compliance" feature is disabled7132 is expected to respond with numeric status code not_found7133 feature available7134 user authorized7135 can access page7136 user not authorized7137 sees a 404 error7138 feature not available7139 sees a 404 error7140 GET #edit7141 sets scanner_profile7142 behaves like a GET request7143 when the "Security and Compliance" feature is disabled7144 is expected to respond with numeric status code not_found7145 feature available7146 user authorized7147 can access page7148 user not authorized7149 sees a 404 error7150 feature not available7151 sees a 404 error7152 record does not exist7153 sees a 404 error7154Assigns scan execution policy project to a project/namespace7155 for project7156 behaves like assigns security policy project7157 when licensed feature is available7158 when user is an owner of the container7159 assigns the security policy project7160 when user is not an owner7161 behaves like a mutation that returns top-level errors7162 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"7163 when policy_project_id is invalid7164 behaves like a mutation that returns top-level errors7165 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"7166 when feature is not licensed7167 behaves like a mutation that returns top-level errors7168 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"7169 for namespace7170 behaves like assigns security policy project7171 when licensed feature is available7172 when user is an owner of the container7173 assigns the security policy project7174 when user is not an owner7175 behaves like a mutation that returns top-level errors7176 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"7177 when policy_project_id is invalid7178 behaves like a mutation that returns top-level errors7179 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"7180 when feature is not licensed7181 behaves like a mutation that returns top-level errors7182 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"7183Groups::TodosController7184 POST create7185 when epic is not confidential7186 when epics are available7187 behaves like todos actions7188 when authorized7189 creates todo7190 returns todo path and pending count7191 when not authorized for project/group7192 does not create todo for resource that user has no access to7193 does not create todo when user is not logged in7194 when epics are not available7195 behaves like todo for inaccessible resource7196 does not create todo because resource can not be found7197 when the user can not access confidential epic in public group7198 behaves like todo for inaccessible resource7199 does not create todo because resource can not be found7200Groups::Security::DashboardController7201 GET show7202 when security dashboard feature is enabled7203 and user is allowed to access group security dashboard7204 is expected to respond with numeric status code ok7205 is expected to render template show7206 behaves like tracks govern usage event7207 tracks unique event7208 when user is not allowed to access group security dashboard7209 is expected to respond with numeric status code ok7210 is expected to render template unavailable7211 behaves like doesn't track govern usage event7212 doesn't tracks event7213 when security dashboard feature is disabled7214 is expected to respond with numeric status code ok7215 is expected to render template unavailable7216 behaves like doesn't track govern usage event7217 doesn't tracks event7218Projects::AutocompleteSourcesController7219 #epics7220 when epics feature is disabled7221 returns 404 status7222 when epics feature is enabled7223 #epics7224 returns the correct response7225 #iterations7226 when iterations feature is disabled7227 returns 404 status7228 when iterations feature is enabled7229 avoids N+1 queries7230 #iterations7231 returns the correct response7232 #vulnerabilities7233 when vulnerabilities feature is disabled7234 returns 404 status7235 when vulnerabilities feature is enabled7236 #vulnerabilities7237 returns the correct response7238API::Files7239 POST /projects/:id/repository/files/:file_path7240 with an exceeded namespace storage limit7241 rejects the request7242 PUT /projects/:id/repository/files/:file_path7243 with an exceeded namespace storage limit7244 rejects the request7245 DELETE /projects/:id/repository/files/:file_path7246 with an exceeded namespace storage limit7247 rejects the request7248Admin::AuditLogReportsController7249 GET index7250 when user has access7251 when licensed7252 invokes CSV export service with correct arguments7253 returns success status with correct headers7254 returns a csv file in response7255 when date range params are not provided7256 passes the default date range filter to the CSV export service7257 when invalid date params are provided7258 created_before: "invalid-date", created_after: nil7259 returns an error7260 created_before: nil, created_after: true7261 returns an error7262 created_before: "2021-13-10", created_after: nil7263 returns an error7264 created_before: nil, created_after: "2021-02-31"7265 returns an error7266 created_before: "2021-03-31", created_after: "2021-02-31"7267 returns an error7268 when unlicensed7269 is expected to respond with numeric status code not_found7270 when user does not have access7271 is expected to respond with numeric status code not_found7272Updating an approval_rule7273 with remove_hidden_groups7274 removes inaccessible groups7275 with users already assigned7276 adds extra users7277 with approvals_required7278 sets two required approvals to merge request rule7279getting a list of external audit event destinations for the instance7280 when user is authenticated7281 when feature is licensed7282 when user is instance admin7283 returns the instance external audit event destinations7284 when streaming headers are also present for the destination7285 returns the instance external audit event destinations with headers7286 when streaming event type filters are present for the destination7287 returns the instance external audit event destinations with event type filters7288 when streaming event type filters are present for the destination7289 returns the instance external audit event destinations with event type filters7290 when user is not instance admin7291 behaves like a request that returns no destinations7292 returns no destinations7293 when feature is not licensed7294 when user is instance admin7295 behaves like a request that returns no destinations7296 returns no destinations7297 when user is not instance admin7298 behaves like a request that returns no destinations7299 returns no destinations7300 when user is not authenticated7301 when feature is licensed7302 behaves like a request that returns no destinations7303 returns no destinations7304 when feature is not licensed7305 behaves like a request that returns no destinations7306 returns no destinations7307Querying a Milestone7308 burnupTimeSeries7309 with insufficient license7310 returns nil7311 when missing dates7312 explains why the report cannot be generated7313 when there are too many events7314 explains why the report cannot be generated7315 when "rollup_timebox_chart" feature flag is enabled7316 explains why the report cannot be generated7317 with correct license7318 returns burnup chart data7319 group milestones7320 behaves like milestones queried by timeframe7321 query for milestones by timeframe7322 without start7323 returns error7324 without end date7325 returns error7326 with start and end date7327 does not have errors7328 project milestones7329 behaves like milestones queried by timeframe7330 query for milestones by timeframe7331 without start7332 returns error7333 without end date7334 returns error7335 with start and end date7336 does not have errors7337Create an instance external audit event destination header7338 when feature is licensed7339 when current user is instance admin7340 creates the header with the correct attributes7341 when active param is also provided7342 creates the header with the correct attributes7343 when the header attributes are invalid7344 returns correct errors7345 behaves like a mutation that does not create a header7346 does not create a header7347 when the destination id is wrong7348 does not create any header7349 behaves like a mutation that returns top-level errors7350 is expected to contain exactly "Please provide valid destination id."7351 when current user is not instance admin7352 behaves like a mutation that does not create a header7353 does not create a header7354 when feature is unlicensed7355 behaves like a mutation that returns top-level errors7356 is expected to contain exactly "You do not have access to this mutation."7357 behaves like a mutation that does not create a header7358 does not create a header7359Emails::IdentityVerification7360 confirmation_instructions_email7361 is sent to the user7362 has the correct subject7363 has the mailgun suppression bypass header7364 includes the token7365 includes the expiration time7366 behaves like an email sent from GitLab7367 has the characteristics of an email sent from GitLab7368 behaves like an email with information about unconfirmed user settings7369 when delete unconfirmed users settings are present7370 delete_unconfirmed_users_license: true, delete_unconfirmed_users_application_setting: true, email_confirmation_setting: "hard", delete_after_days: 7, result: true7371 has the correct email body contents7372 delete_unconfirmed_users_license: true, delete_unconfirmed_users_application_setting: true, email_confirmation_setting: "soft", delete_after_days: 7, result: true7373 has the correct email body contents7374 delete_unconfirmed_users_license: true, delete_unconfirmed_users_application_setting: true, email_confirmation_setting: "off", delete_after_days: 7, result: false7375 has the correct email body contents7376 delete_unconfirmed_users_license: false, delete_unconfirmed_users_application_setting: true, email_confirmation_setting: "hard", delete_after_days: 7, result: false7377 has the correct email body contents7378 delete_unconfirmed_users_license: true, delete_unconfirmed_users_application_setting: false, email_confirmation_setting: "hard", delete_after_days: 7, result: false7379 has the correct email body contents7380 delete_unconfirmed_users_license: false, delete_unconfirmed_users_application_setting: false, email_confirmation_setting: "hard", delete_after_days: 7, result: false7381 has the correct email body contents7382Projects::BlobController7383 POST create7384 redirects to blob7385 behaves like handling the codeowners interaction7386 redirects to blob7387 PUT update7388 behaves like handling the codeowners interaction7389 redirects to blob7390SecurityTrainingUpdate7391 when the user has permission7392 when is_enabled is true7393 behaves like it creates a training on the project7394 is expected to eq false7395 when is_primary is not provided7396 behaves like it creates a training on the project7397 is expected to eq false7398 when is_primary is null7399 behaves like it creates a training on the project7400 is expected to eq false7401 when is_primary is true7402 behaves like it creates a training on the project7403 is expected to eq true7404 when is_enabled is false7405 removes the training from the project7406 when the user does not have permission7407 behaves like a mutation that returns a top-level access error7408 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"7409Lock/unlock project's file path7410 when the user does not have permission7411 does not create requirement7412 behaves like a mutation that returns a top-level access error7413 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"7414 when the user has permission7415 creates the path lock7416 when there are validation errors7417 behaves like a mutation that returns errors in the response7418 is expected to contain exactly "You have no permissions"7419Delete a compliance framework7420 feature is unlicensed7421 does not destroy a compliance framework7422 behaves like a mutation that returns top-level errors7423 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"7424 when licensed7425 current_user is namespace owner7426 has no errors7427 destroys a compliance framework7428 current_user is not namespace owner7429 does not destroy a compliance framework7430 behaves like a mutation that returns top-level errors7431 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"7432Projects::IssueFeatureFlagsController7433 GET #index7434 returns linked feature flags7435 does not return linked feature flags for a reporter7436 orders by feature_flag_issue id7437 does not make N+1 queries7438 when feature flag related issues feature is unlicensed7439 returns not found7440getting Incident Management escalation policies7441 avoids N+1 queries7442 includes expected data7443 with multiple rules7444 orders rules by time and status7445SessionsController7446 #new7447 on a Geo secondary node7448 when relative URL is configured7449 behaves like a valid oauth authentication redirect7450 redirects to the correct oauth_geo_auth_url7451 with a tampered HOST header7452 behaves like a valid oauth authentication redirect7453 redirects to the correct oauth_geo_auth_url7454 with a tampered X-Forwarded-Host header7455 behaves like a valid oauth authentication redirect7456 redirects to the correct oauth_geo_auth_url7457 without a tampered header7458 behaves like a valid oauth authentication redirect7459 redirects to the correct oauth_geo_auth_url7460 when login fails7461 creates a failed authentication audit event7462 #create7463 with wrong credentials7464 when is a trial form7465 redirects to new trial sign in page7466 when is a regular form7467 redirects to the regular sign in page7468 when using two-factor authentication7469 when OTP authentication fails7470 behaves like an auditable failed authentication7471 log an audit event7472 when WebAuthn authentication fails7473 behaves like an auditable failed authentication7474DEPRECATION WARNING: Invalid Feature Flag webauthn stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)7475 log an audit event7476 when user is not allowed to log in using password7477 does not authenticate the user7478Projects::RunnersController7479 #toggle_shared_runners7480 when shared runners are off7481 when user has valid credit card7482 permits enabling and disabling shared runners7483 when user does not have valid credit card7484 does not permit enabling shared runners7485Profiles::PreferencesController7486 PATCH update7487 when updating security dashboard feature7488 when the security dashboard feature is enabled7489 and valid group view choice is submitted7490 changes the user's preferences7491 and an invalid group view choice is submitted7492 responds with an error message7493 when the security dashboard feature is disabled7494 when security dashboard feature enabled7495 is expected not to change `user.reload.group_view_security_dashboard?`7496 when updating code suggestions setting7497 updates the attribute7498 when the feature flags are disabled7499 does not update attributes7500 on zoekt indexed namespaces7501 when user is not a member of any zoekt indexed namespaces7502 does not update enabled_zoekt preference of user7503 when user is a member of a zoekt indexed namespace7504 updates enabled_zoekt preference of user7505Delete an audit event type filter7506 when unlicensed7507 behaves like a mutation on an unauthorized resource7508 behaves like a mutation that returns top-level errors7509 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"7510 when licensed7511 when current user is a group maintainer7512 behaves like a mutation that returns top-level errors7513 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"7514 when current user is a group developer7515 behaves like a mutation that returns top-level errors7516 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"7517 when current user is a group guest7518 behaves like a mutation that returns top-level errors7519 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"7520 when current user is a group owner7521 returns success response7522 when event type filters in input is empty7523 returns graphql error7524getting list of branch rules for a project7525 when the user does have read_protected_branch abilities7526 queries7527 avoids N+1 queries7528 response7529 includes all fields7530 behaves like a working graphql query7531 returns a successful response7532Mutations::Analytics::DevopsAdoption::EnabledNamespaces::BulkEnable7533 creates the enabled_namespace for each passed namespace or returns existing enabled_namespace7534 when the user cannot manage enabled_namespaces at least for one namespace7535 behaves like a mutation that returns a top-level access error7536 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"7537 when the feature is not available7538 behaves like a mutation that returns a top-level access error7539 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"7540API::Ldap7541 GET /ldap/groups7542 when unauthenticated7543 returns authentication error7544 when authenticated as user7545 returns authentication error7546 when group owners are allowed to manage LDAP7547 returns an array of ldap groups7548 when authenticated as admin7549 returns an array of ldap groups7550 GET /ldap/ldapmain/groups7551 when unauthenticated7552 returns authentication error7553 when authenticated as user7554 returns authentication error7555 when group owners are allowed to manage LDAP7556 returns an array of ldap groups7557 when authenticated as admin7558 returns an array of ldap groups7559Creation of a new release7560 when the provided milestones include a group milestone7561 when the group milestone association feature is licensed7562 returns no errors7563 creates a release with both project and group milestone associations7564 when the group milestone association feature is not licensed7565 returns an error-as-data field with a message about an invalid license7566UsersController7567 #available_group_templates7568 shows the first page of the pagination7569Creating an issuable resource link7570 creates issuable resource link7571 returns error7572 when link is invalid7573 returns nil7574Admin::ElasticsearchController7575 POST #enqueue_index7576 starts indexing7577 without an index7578 does nothing and returns 4047579 POST #trigger_reindexing7580 creates a reindexing task7581 does not create a reindexing task if there is another one7582 does not create a reindexing task if a required param is nil7583 POST #cancel_index_deletion7584 sets delete_original_index_at to nil7585 POST #retry_migration7586 deletes the migration record and drops the halted cache7587Mutations::Boards::EpicBoards::Destroy7588 when the user does not have permission7589 does not destroy the board7590 behaves like a mutation that returns a top-level access error7591 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"7592 when the user has permission7593 when everything is ok7594 destroys the board7595 returns an empty board7596 when there is only 1 board for the parent7597 does destroy the board7598getting ai conversations related to a project7599 with messages that should not be returned7600 returns only the relevant messages7601DeviseMailer7602 #confirmation_instructions7603 when additional custom text is added7604 includes the additional custom text7605 behaves like an email with information about unconfirmed user settings7606 when delete unconfirmed users settings are present7607 delete_unconfirmed_users_license: true, delete_unconfirmed_users_application_setting: true, email_confirmation_setting: "hard", delete_after_days: 7, result: true7608 has the correct email body contents7609 delete_unconfirmed_users_license: true, delete_unconfirmed_users_application_setting: true, email_confirmation_setting: "soft", delete_after_days: 7, result: true7610 has the correct email body contents7611 delete_unconfirmed_users_license: true, delete_unconfirmed_users_application_setting: true, email_confirmation_setting: "off", delete_after_days: 7, result: false7612 has the correct email body contents7613 delete_unconfirmed_users_license: false, delete_unconfirmed_users_application_setting: true, email_confirmation_setting: "hard", delete_after_days: 7, result: false7614 has the correct email body contents7615 delete_unconfirmed_users_license: true, delete_unconfirmed_users_application_setting: false, email_confirmation_setting: "hard", delete_after_days: 7, result: false7616 has the correct email body contents7617 delete_unconfirmed_users_license: false, delete_unconfirmed_users_application_setting: false, email_confirmation_setting: "hard", delete_after_days: 7, result: false7618 has the correct email body contents7619Emails::MergeCommits7620 #merge_requests_csv_email7621 is expected to eq "Kombucha lovers | Exported Chain of Custody Report"7622 is expected to contain exactly "current@email.com"7623 is expected to match "Your Chain of Custody CSV export for the group Kombucha lovers has been added to this email as an attachment."7624 is expected to match /Your Chain of Custody CSV export for the group (?-mix:<a .*?href="http:\/\/localhost\/kombucha_lovers".*?>Kombucha lovers<\/a>) has been added to this email as an attachment./7625Security::DashboardController7626 GET #show7627 behaves like Security::ApplicationController7628 when the user is authenticated7629 responds with success7630 and the instance does not have an Ultimate license7631 404s7632 when the user is not authenticated7633 redirects the user to the sign in page7634 when security dashboard feature7635 is enabled7636 is expected to render template instance_security7637 is disabled7638 is expected to respond with numeric status code not_found7639 is expected to render template errors/not_found7640getting a list of work item types for a group EE7641 behaves like graphql work item type list request spec7642 when user has access to the group7643 returns all default work item types7644 prevents N+1 queries7645 behaves like a working graphql query that returns data7646 contains data7647 behaves like a working graphql query7648 returns a successful response7649 when user doesn't have access to the parent7650 does not return the parent7651API::NugetProjectPackages7652 GET /api/v4/projects/:id/packages/nuget/download/*package_name/*package_version/*package_filename7653 behaves like applying ip restriction for group7654 in group without restriction7655 behaves like returning response status7656 returns ok7657 in group with restriction7658 with address within the range7659 behaves like returning response status7660 returns ok7661 with address outside the range7662 behaves like returning response status7663 returns not_found7664Query.vulnerabilities.details7665 returns a vulnerability details7666Emails::MergeRequests7667 #changed_reviewer_of_merge_request_email7668 when SummarizeDiffService is enabled7669 when merge_request_diff_llm_summary exists7670 when the recipient is a new reviewer7671 include a diff summary7672 when the recipient is not a new reviewer7673 does not include a diff summary7674 when merge_request_diff_llm_summary does not exists7675 does not include a diff summary7676 when SummarizeDiffService is disabled7677 does not include a diff summary7678API::Ci::Runner7679 PATCH /api/v4/jobs/:id/trace7680 tracks CI minutes usage of running job7681 when CI minutes usage is exceeded7682 drops the job7683 when CI minutes usage is not exceeded7684 does not drop the job7685UsersController7686 GET #available_project_templates7687 a user requests templates for themselves7688 responds successfully7689 a user requests templates for another user7690 responds with not found error7691 GET #available_group_templates7692 a user requests templates for themselves7693 responds successfully7694 a user requests templates for another user7695 responds with not found error7696AiAction for Fill In Merge Request Template7697 successfully performs an explain code request7698 when experiment_features_enabled disabled7699 returns nil7700 when ai_global_switch feature flag is disabled7701 returns nil7702API::GenericPackages7703 GET /api/v4/projects/:id/packages/generic/:package_name/:package_version/:file_name7704 behaves like applying ip restriction for group7705 in group without restriction7706 behaves like returning response status7707 returns ok7708 in group with restriction7709 with address within the range7710 behaves like returning response status7711 returns ok7712 with address outside the range7713 behaves like returning response status7714 returns not_found7715Create a label or backlog board list7716 behaves like board lists create request7717 the user is not allowed to read board lists7718 behaves like a mutation that returns a top-level access error7719 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"7720 when user has permissions to admin board lists7721 backlog list7722 creates the list7723 label list7724 creates the list7725GitlabSubscriptions::SeatCountAlert7726 #generate_seat_count_alert_data7727 when the user is not authenticated7728 does not set the seat count data7729 when the user is authenticated7730 when the namespace is nil7731 does not set the seat count data7732 when supplied a project7733 sets the data based on the root ancestor7734 when supplied a top level group7735 sets the data based on that group7736 when supplied a subgroup7737 sets the data based on the root ancestor7738Groups::LdapsController7739 POST #sync7740 transitions to the pending state7741 notifies user that the group is already pending7742 returns an error if the group does not validate7743OmniauthCallbacksController7744 with strategies7745 when user is not registered yet7746 when onboarding is enabled7747 wipes the previously stored location for user7748 when onboarding is disabled7749 does not wipe the previously stored location for user7750 when user is in subscription onboarding7751 preserves the previously stored location for user7752Admin::RunnersController7753 #edit7754 enables runner_maintenance_note licensed feature7755 #index7756 enables runner_performance_insights and runner_upgrade_management licensed feature7757 when fetching runner releases is disabled7758 enables only runner_performance_insights licensed feature7759 #show7760 enables runner_upgrade_management, runner_maintenance_note licensed features7761 when fetching runner releases is disabled7762 enables only runner_maintenance_note licensed feature7763 #dashboard7764 when licensed7765 shows dashboard page7766 when unlicensed7767 returns a 4047768Projects::RepositoriesController7769 GET /archive7770 when user is banned from the project's top-level group7771 prevents the archive download7772 when user is not banned from the project's top-level group7773 proceeds with the archive download7774API::Markdown Snapshot7775 for 08_04_07__gitlab_internal_extension_markdown__migrated_golden_master_examples__attachment_link_for_group_wiki__0017776 verifies conversion of GLFM to HTML7777 for 08_03_00__gitlab_internal_extension_markdown__markdown_preview_api_request_overrides__0067778 verifies conversion of GLFM to HTML7779Query.single_member_role7780 with custom roles feature7781 returns the requested member role7782 behaves like a working graphql query7783 returns a successful response7784 without custom roles feature7785 does not return a member role7786API::Ci::Pipelines7787 DELETE /projects/:id/pipelines/:pipeline_id7788 authorized user7789 when audit events is enabled7790 logs an audit event7791OmniAuth Kerberos SPNEGO7792 asks for an SPNEGO token7793 when an SPNEGO token is provided7794 passes the token to spnego_negotiate!7795 when the final SPNEGO token is provided7796 redirects to the omniauth callback7797 stores the users principal name in the session7798 send the final SPNEGO response7799Groups::IterationCadencesController7800 behaves like accessing iteration cadences7801 index7802 role: :none, status: :not_found7803 behaves like returning response status7804 returns not_found7805 role: :guest, status: :success7806 behaves like returning response status7807 returns success7808 role: :developer, status: :success7809 behaves like returning response status7810 returns success7811Groups::VariablesController7812 PATCH #update7813 scoped variables are available7814 updates the environment scope7815 scoped variables are not available7816 does not update the environment scope7817Groups::Settings::CiCdController7818 as an owner7819 GET #show7820 renders group protected environments7821 excludes the deployment tier from dropdown if a corresponding environment is protected7822Ci/Cd settings through GroupQuery7823 when group has no associated ci_cd_settings7824 returns false for allowStaleRunnerPruning7825 when group has associated ci_cd_settings7826 with allow_stale_runner_pruning set to false7827 returns false for allowStaleRunnerPruning7828 with allow_stale_runner_pruning set to true7829 returns true for allowStaleRunnerPruning7830Admin::GroupsController7831 POST #reset_runner_minutes7832 when the reset is successful7833 redirects to group path7834 PUT #update7835 converts the user entered MiB value into bytes7836Emails::NamespaceStorageUsageMailer7837 #notify_out_of_storage7838 creates an email message for a namespace7839 #notify_limit_warning7840 creates an email message for a namespace7841Groups::Security::MergeCommitReportsController7842 GET index7843 when feature is enabled7844 when user has access to dashboard7845 tells the service to enqueue a job7846 when user does not have access to dashboard7847 behaves like returns not found7848 is expected to respond with numeric status code not_found7849 when feature is not enabled7850 behaves like returns not found7851 is expected to respond with numeric status code not_found7852contribution analytics7853 redirects from -/analytics to -/analytics/value_stream_analytics7854API::UsageData7855 POST /usage_data/increment_counter7856 with authentication7857 with correct params7858 prefix: "users", event: "clicking_license_testing_visiting_external_website"7859 returns status :ok7860 prefix: "users", event: "visiting_testing_license_compliance_full_report"7861 returns status :ok7862Admin::ImpersonationsController7863 DELETE destroy7864 when signed in7865 when impersonating7866 enqueues a new worker7867Oauth::ApplicationsController7868 project members7869 POST #create7870 logs the audit event7871Emails::UserCap7872 #user_cap_reached7873 sends mail with expected contents7874auto_explain log contains 1707 entries for main, writing to /builds/gitlab-org/gitlab/auto_explain/rspec-ee-integration-pg14-4-5.339.main.ndjson.gz7875took 51.718309487876auto_explain log contains 1708 entries for ci, writing to /builds/gitlab-org/gitlab/auto_explain/rspec-ee-integration-pg14-4-5.339.ci.ndjson.gz7877took 50.311988457878Knapsack report was generated. Preview:7879{7880 "ee/spec/requests/api/dependency_proxy/packages/maven_spec.rb": 179.35986115900005,7881 "ee/spec/requests/api/vulnerabilities_spec.rb": 189.04783168100016,7882 "ee/spec/requests/api/projects_spec.rb": 176.44928587799996,7883 "ee/spec/requests/api/vulnerability_findings_spec.rb": 132.90346731299996,7884 "ee/spec/requests/api/project_approval_rules_spec.rb": 90.69247079000024,7885 "ee/spec/requests/search_controller_spec.rb": 109.01024980400007,7886 "ee/spec/controllers/groups/omniauth_callbacks_controller_spec.rb": 88.88105810099978,7887 "ee/spec/requests/api/project_approval_settings_spec.rb": 74.03537286900018,7888 "ee/spec/requests/api/notes_spec.rb": 66.57290772500028,7889 "ee/spec/controllers/groups/epics_controller_spec.rb": 53.81066143800035,7890 "ee/spec/controllers/projects/push_rules_controller_spec.rb": 50.29141644499987,7891 "ee/spec/controllers/projects/licenses_controller_spec.rb": 42.463548230000015,7892 "ee/spec/requests/api/group_push_rule_spec.rb": 30.63746240699993,7893 "ee/spec/requests/api/status_checks_spec.rb": 32.560342752999986,7894 "ee/spec/requests/api/project_aliases_spec.rb": 31.68254316799994,7895 "ee/spec/requests/api/protected_branches_spec.rb": 29.92744873799984,7896 "ee/spec/controllers/groups/sso_controller_spec.rb": 30.780396696000025,7897 "ee/spec/controllers/groups/analytics/cycle_analytics/summary_controller_spec.rb": 24.846721938999963,7898 "ee/spec/requests/api/related_epic_links_spec.rb": 21.02992294600017,7899 "ee/spec/requests/admin/credentials_controller_spec.rb": 20.98326005400031,7900 "ee/spec/requests/api/group_boards_spec.rb": 20.74096356400014,7901 "ee/spec/controllers/admin/geo/settings_controller_spec.rb": 26.552357162000135,7902 "ee/spec/controllers/groups/audit_events_controller_spec.rb": 16.399530248000247,7903 "ee/spec/requests/api/graphql/mutations/audit_events/external_audit_event_destinations/update_spec.rb": 18.683701536999706,7904 "ee/spec/requests/groups/security/credentials_controller_spec.rb": 19.501179141000193,7905 "ee/spec/requests/api/vulnerability_exports_spec.rb": 17.486339151000266,7906 "ee/spec/requests/projects/dependencies_controller_spec.rb": 18.640966042999935,7907 "ee/spec/requests/api/merge_request_approval_settings_spec.rb": 11.512226999000177,7908 "ee/spec/controllers/repositories/git_http_controller_spec.rb": 18.27235144999986,7909 "ee/spec/controllers/projects/settings/merge_requests_controller_spec.rb": 14.956867019999663,7910 "ee/spec/requests/api/project_approvals_spec.rb": 13.818493035000301,7911 "ee/spec/controllers/groups/insights_controller_spec.rb": 14.619096831999741,7912 "ee/spec/controllers/groups/security/policies_controller_spec.rb": 14.371865450000314,7913 "ee/spec/requests/api/graphql/project/dast_site_profiles_spec.rb": 14.50347402999978,7914 "ee/spec/requests/api/graphql/mutations/work_items/create_spec.rb": 14.246868938000262,7915 "ee/spec/requests/projects/settings/access_tokens_controller_spec.rb": 12.972148615000151,7916 "ee/spec/requests/api/award_emoji_spec.rb": 10.36410316499996,7917 "ee/spec/requests/api/graphql/vulnerabilities/sort_spec.rb": 12.445078016000025,7918 "ee/spec/controllers/projects/approvers_controller_spec.rb": 11.521971005000069,7919 "ee/spec/requests/api/ci/triggers_spec.rb": 13.38470461299994,7920 "ee/spec/requests/api/ci/jobs_spec.rb": 11.502438702999825,7921 "ee/spec/requests/api/graphql/mutations/boards/epic_boards/epic_move_list_spec.rb": 9.550168335000308,7922 "ee/spec/requests/smartcard_controller_spec.rb": 5.784808026000064,7923 "ee/spec/controllers/projects/boards_controller_spec.rb": 11.091837452000163,7924 "ee/spec/requests/api/graphql/mutations/analytics/cycle_analytics/value_streams/create_spec.rb": 8.888437208000141,7925 "ee/spec/requests/api/graphql/instance_security_dashboard_spec.rb": 9.565910613000142,7926 "ee/spec/requests/api/graphql/mutations/dependency_proxy/packages/settings/update_spec.rb": 9.127569737000158,7927 "ee/spec/requests/api/dependencies_spec.rb": 7.365640046999943,7928 "ee/spec/requests/api/graphql/mutations/notes/create/note_spec.rb": 7.878038988999833,7929 "ee/spec/controllers/subscriptions/groups_controller_spec.rb": 5.186808307999854,7930 "ee/spec/controllers/admin/geo/nodes_controller_spec.rb": 9.645131028999913,7931 "ee/spec/requests/custom_roles/manage_project_access_tokens/request_spec.rb": 9.151595332999932,7932 "ee/spec/requests/projects/metrics_controller_spec.rb": 7.907595004000086,7933 "ee/spec/requests/api/graphql/mutations/requirements_management/update_requirement_spec.rb": 5.999969760000113,7934 "ee/spec/requests/api/graphql/mutations/audit_events/google_cloud_logging_configurations/destroy_spec.rb": 6.077948126000138,7935 "ee/spec/requests/api/resource_iteration_events_spec.rb": 8.608517545999803,7936 "ee/spec/requests/api/graphql/mutations/ci/project_subscriptions/create_spec.rb": 5.011095766999915,7937 "ee/spec/requests/api/graphql/remote_development/workspaces/with_project_ids_arg_spec.rb": 6.284124540999983,7938 "ee/spec/requests/api/graphql/project/incident_management/oncall_schedules_spec.rb": 5.010031357000116,7939 "ee/spec/requests/api/graphql/remote_development/current_user/workspaces/with_project_ids_arg_spec.rb": 6.042427862000295,7940 "ee/spec/requests/api/graphql/pipeline_security_report_finding_spec.rb": 7.954190105999714,7941 "ee/spec/requests/api/graphql/project/merge_request_spec.rb": 7.5813578100001,7942 "ee/spec/requests/subscriptions/trials_controller_spec.rb": 3.8478417750002336,7943 "ee/spec/requests/api/graphql/remote_development/current_user/workspaces/with_no_args_spec.rb": 6.240050867999798,7944 "ee/spec/controllers/projects/quality/test_cases_controller_spec.rb": 3.8358373369997025,7945 "ee/spec/requests/api/resource_state_events_spec.rb": 5.145510124999873,7946 "ee/spec/controllers/projects/security/sast_configuration_controller_spec.rb": 5.49966008399997,7947 "ee/spec/requests/api/graphql/mutations/alert_management/http_integration/update_spec.rb": 4.346637389999614,7948 "ee/spec/requests/api/graphql/mutations/remote_development/workspaces/create_spec.rb": 4.414900158999899,7949 "ee/spec/requests/api/group_milestones_spec.rb": 4.64721611899995,7950 "ee/spec/requests/api/graphql/vulnerabilities/issue_links_spec.rb": 5.195250005999696,7951 "ee/spec/requests/api/analytics/code_review_analytics_spec.rb": 5.448319803000231,7952 "ee/spec/requests/api/graphql/explain_vulnerability_prompt_spec.rb": 5.3642324370002825,7953 "ee/spec/requests/api/graphql/gitlab_subscriptions/user_add_on_assignments/remove_spec.rb": 4.483542997999848,7954 "ee/spec/requests/api/graphql/mutations/compliance_management/frameworks/create_spec.rb": 4.078467286999967,7955 "ee/spec/controllers/projects/environments_controller_spec.rb": 4.291802068999914,7956 "ee/spec/requests/api/graphql/mutations/dast/profiles/run_spec.rb": 3.6594642169998224,7957 "ee/spec/controllers/groups/scim_oauth_controller_spec.rb": 3.851713455999743,7958 "ee/spec/requests/api/graphql/project/environments_spec.rb": 4.803524563000337,7959 "ee/spec/requests/api/graphql/remote_development/workspace/with_id_arg_spec.rb": 4.498133994,7960 "ee/spec/requests/api/graphql/mutations/epics/add_issue_spec.rb": 3.949862029000087,7961 "ee/spec/controllers/projects/integrations/zentao/issues_controller_spec.rb": 3.7286813460000303,7962 "ee/spec/controllers/groups/merge_requests_controller_spec.rb": 4.073656687000039,7963 "ee/spec/requests/api/pypi_packages_spec.rb": 2.9651822649998394,7964 "ee/spec/requests/projects/secrets_controller_spec.rb": 2.582067800999994,7965 "ee/spec/controllers/admin/audit_logs_controller_spec.rb": 1.8694075419998626,7966 "ee/spec/requests/api/graphql/mutations/incident_management/escalation_policy/create_spec.rb": 2.1719788400000652,7967 "ee/spec/requests/projects/security/dast_scanner_profiles_controller_spec.rb": 3.6750133140003527,7968 "ee/spec/requests/api/graphql/mutations/security_policy/assign_security_policy_project_spec.rb": 3.450823021999895,7969 "ee/spec/controllers/groups/todos_controller_spec.rb": 2.1576114330000564,7970 "ee/spec/controllers/groups/security/dashboard_controller_spec.rb": 5.230926610000097,7971 "ee/spec/controllers/ee/projects/autocomplete_sources_controller_spec.rb": 3.127054247999695,7972 "ee/spec/requests/api/files_spec.rb": 4.0566268699999455,7973 "ee/spec/controllers/admin/audit_log_reports_controller_spec.rb": 1.108459880999817,7974 "ee/spec/requests/api/graphql/mutations/merge_requests/update_approval_rule_spec.rb": 3.6041554369999176,7975 "ee/spec/requests/api/graphql/audit_events/instance_external_audit_event_destination_spec.rb": 2.1580962029997863,7976 "ee/spec/requests/api/graphql/milestone_spec.rb": 2.980035673999737,7977 "ee/spec/requests/api/graphql/audit_events/streaming/instance_headers/create_spec.rb": 2.1658555509998223,7978 "ee/spec/mailers/ee/emails/identity_verification_spec.rb": 2.6557822280001346,7979 "ee/spec/controllers/ee/projects/blob_controller_spec.rb": 3.485874906999925,7980 "ee/spec/requests/api/graphql/mutations/security/training_provider_update_spec.rb": 2.312944506000349,7981 "ee/spec/requests/api/graphql/mutations/projects/lock_path_spec.rb": 1.8707498920002763,7982 "ee/spec/requests/api/graphql/mutations/compliance_management/frameworks/destroy_spec.rb": 2.6308139220000157,7983 "ee/spec/requests/projects/issue_feature_flags_controller_spec.rb": 2.9430351199998768,7984 "ee/spec/requests/api/graphql/project/incident_management/escalation_policy/rules_spec.rb": 2.257104295999852,7985 "ee/spec/controllers/ee/sessions_controller_spec.rb": 2.4790012690000367,7986 "ee/spec/controllers/projects/runners_controller_spec.rb": 2.5602248449999934,7987 "ee/spec/controllers/ee/profiles/preferences_controller_spec.rb": 2.0965204329995686,7988 "ee/spec/requests/api/graphql/audit_events/streaming/event_type_filters/delete_spec.rb": 2.5846024000002217,7989 "ee/spec/requests/api/graphql/project/branch_rules_spec.rb": 3.28948618000004,7990 "ee/spec/requests/api/graphql/mutations/analytics/devops_adoption/enabled_namespaces/bulk_enable_spec.rb": 2.322701075000168,7991 "ee/spec/requests/api/ldap_spec.rb": 1.213069034,7992 "ee/spec/requests/api/graphql/mutations/releases/create_spec.rb": 2.7493217829996865,7993 "ee/spec/requests/users_controller_spec.rb": 2.512265591999949,7994 "ee/spec/requests/api/graphql/mutations/incident_management/issuable_resource_link/create_spec.rb": 2.4083093309996,7995 "ee/spec/controllers/admin/elasticsearch_controller_spec.rb": 1.7101190989997122,7996 "ee/spec/requests/api/graphql/mutations/boards/epic_boards/destroy_spec.rb": 2.147094885000115,7997 "ee/spec/requests/api/graphql/project/ai_conversations_spec.rb": 1.2382635089998075,7998 "ee/spec/mailers/devise_mailer_spec.rb": 1.2784753030000502,7999 "ee/spec/mailers/emails/merge_commits_spec.rb": 2.540147588000309,8000 "ee/spec/controllers/security/dashboard_controller_spec.rb": 0.9818529230001332,8001 "ee/spec/requests/api/graphql/group/work_item_types_spec.rb": 1.9899785719999272,8002 "ee/spec/requests/api/nuget_project_packages_spec.rb": 1.9187371530001656,8003 "ee/spec/requests/api/graphql/vulnerabilities/details_spec.rb": 2.0205784469999344,8004 "ee/spec/mailers/emails/merge_requests_spec.rb": 2.272740833000171,8005 "ee/spec/requests/api/ci/runner/jobs_trace_spec.rb": 1.7633977300001789,8006 "ee/spec/controllers/users_controller_spec.rb": 0.6534284879999177,8007 "ee/spec/requests/api/graphql/mutations/projects/fill_in_merge_request_template_spec.rb": 1.6405116209998596,8008 "ee/spec/requests/api/generic_packages_spec.rb": 1.8911416379996808,8009 "ee/spec/requests/api/graphql/mutations/boards/epic_lists/create_spec.rb": 1.5240384310000081,8010 "ee/spec/controllers/concerns/gitlab_subscriptions/seat_count_alert_spec.rb": 0.5698983239999507,8011 "ee/spec/controllers/groups/ldaps_controller_spec.rb": 1.9853707219999706,8012 "ee/spec/requests/ee/omniauth_callbacks_controller_spec.rb": 1.0819685060000666,8013 "ee/spec/controllers/admin/runners_controller_spec.rb": 0.781254287000138,8014 "ee/spec/requests/ee/projects/repositories_controller_spec.rb": 1.4844213779997517,8015 "ee/spec/requests/api/markdown_snapshot_spec.rb": 1.5698049829998126,8016 "ee/spec/requests/api/graphql/member_role/single_member_role_spec.rb": 1.3670708969998486,8017 "ee/spec/requests/api/ci/pipelines_spec.rb": 1.4886169770002198,8018 "ee/spec/requests/omniauth_kerberos_spec.rb": 1.0049838300001284,8019 "ee/spec/controllers/groups/iteration_cadences_controller_spec.rb": 0.946202070000254,8020 "ee/spec/controllers/ee/groups/variables_controller_spec.rb": 0.9936905310000839,8021 "ee/spec/controllers/ee/groups/settings/ci_cd_controller_spec.rb": 1.1086859310003092,8022 "ee/spec/requests/api/graphql/group/ci_cd_settings_spec.rb": 0.6128035950000594,8023 "ee/spec/controllers/admin/groups_controller_spec.rb": 0.9576541780002117,8024 "ee/spec/mailers/emails/namespace_storage_usage_mailer_spec.rb": 0.47308036899994477,8025 "ee/spec/controllers/groups/security/merge_commit_reports_controller_spec.rb": 0.6943134029997964,8026 "ee/spec/requests/groups/contribution_analytics_spec.rb": 0.6741593450001346,8027 "ee/spec/requests/api/usage_data_spec.rb": 0.5912364499999967,8028 "ee/spec/controllers/admin/impersonations_controller_spec.rb": 0.5266542610002034,8029 "ee/spec/controllers/oauth/applications_controller_spec.rb": 0.4333297160001166,8030 "ee/spec/mailers/emails/user_cap_spec.rb": 0.34915131999969168031}8032Knapsack global time execution for tests: 36m 28s8033Finished in 38 minutes 15 seconds (files took 1 minute 29.76 seconds to load)80343076 examples, 0 failures8035Randomized with seed 103418036[TEST PROF INFO] Time spent in factories: 15:50.865 (40.62% of total time)8037RSpec exited with 0.8038No examples to retry, congrats!8040Running after script...8041$ echo -e "\e[0Ksection_start:`date +%s`:report_results_section[collapsed=true]\r\e[0KReport results"8049$ tooling/bin/push_job_metrics || true8050[job-metrics] Pushing job metrics file for the CI/CD job.8051[job-metrics] Pushed 4 CI job metric entries to InfluxDB.8053Not uploading cache ruby-gems-debian-bullseye-ruby-3.1-16 due to policy8055Uploading artifacts...8056auto_explain/: found 3 matching artifact files and directories 8057coverage/: found 5 matching artifact files and directories 8058crystalball/: found 2 matching artifact files and directories 8059deprecations/: found 6 matching artifact files and directories 8060knapsack/: found 4 matching artifact files and directories 8061rspec/: found 16 matching artifact files and directories 8062WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8063log/*.log: found 19 matching artifact files and directories 8064WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/5597251755/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com8065WARNING: Retrying... context=artifacts-uploader error=request redirected8066Uploading artifacts as "archive" to coordinator... 201 Created id=5597251755 responseStatus=201 Created token=64_chYk98067Uploading artifacts...8068rspec/rspec-*.xml: found 1 matching artifact files and directories 8069WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/5597251755/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com8070WARNING: Retrying... context=artifacts-uploader error=request redirected8071Uploading artifacts as "junit" to coordinator... 201 Created id=5597251755 responseStatus=201 Created token=64_chYk98073Job succeeded