From da10347975c3e96ca40f2905cea417d76f30f9cb Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Fri, 2 May 2025 06:07:45 +0000 Subject: [PATCH] Add latest changes from gitlab-org/gitlab@master --- GITLAB_KAS_VERSION | 2 +- .../javascripts/admin/users/constants.js | 8 + app/assets/javascripts/gl_field_errors.js | 1 + .../components/users_table/user_avatar.vue | 14 +- app/controllers/admin/users_controller.rb | 2 +- app/controllers/concerns/uploads_actions.rb | 11 +- .../organization_users_resolver.rb | 2 +- app/helpers/users_helper.rb | 1 + app/models/user.rb | 9 +- .../beta/duo_code_review_full_file.yml | 10 + .../invitation_flow_enforcement_setting.yml | 2 +- ...resource_iteration_events_namespace_id.yml | 8 + ..._resource_iteration_events_namespace_id.rb | 27 + db/schema_migrations/20250409172701 | 1 + .../database/ci_mirrored_tables.md | 2 +- .../database/multiple_databases.md | 40 +- doc/user/compliance/compliance_frameworks.md | 38 +- doc/user/markdown.md | 791 +++++++------ ..._resource_iteration_events_namespace_id.rb | 29 + .../ci/pipeline/chain/config/content.rb | 11 - locale/gitlab.pot | 37 +- .../example_runtimes/master_report.json | 1001 +++++++++-------- qa/knapsack/master_report.json | 560 ++++----- .../admin/users/admin_sees_user_spec.rb | 2 +- spec/features/admin/users/users_spec.rb | 2 +- .../components/admin_users_filter_app_spec.js | 20 +- spec/frontend/admin/users/mock_data.js | 67 ++ spec/helpers/users_helper_spec.rb | 107 +- ...urce_iteration_events_namespace_id_spec.rb | 126 +++ .../ci/pipeline/chain/config/content_spec.rb | 10 - spec/lib/gitlab/database/sharding_key_spec.rb | 1 + ...urce_iteration_events_namespace_id_spec.rb | 27 + spec/models/user_spec.rb | 14 + spec/requests/admin/users_controller_spec.rb | 10 + .../ci/create_pipeline_service_spec.rb | 5 - spec/support/database/prevent_cross_joins.rb | 2 +- .../uploads_actions_shared_examples.rb | 26 + 37 files changed, 1677 insertions(+), 1349 deletions(-) create mode 100644 config/feature_flags/beta/duo_code_review_full_file.yml create mode 100644 db/docs/batched_background_migrations/backfill_resource_iteration_events_namespace_id.yml create mode 100644 db/post_migrate/20250409172701_queue_backfill_resource_iteration_events_namespace_id.rb create mode 100644 db/schema_migrations/20250409172701 create mode 100644 lib/gitlab/background_migration/backfill_resource_iteration_events_namespace_id.rb create mode 100644 spec/lib/gitlab/background_migration/backfill_resource_iteration_events_namespace_id_spec.rb create mode 100644 spec/migrations/20250409172701_queue_backfill_resource_iteration_events_namespace_id_spec.rb diff --git a/GITLAB_KAS_VERSION b/GITLAB_KAS_VERSION index c2e9efc99f5..eb814dbc244 100644 --- a/GITLAB_KAS_VERSION +++ b/GITLAB_KAS_VERSION @@ -1 +1 @@ -02ff05833da52a69f4c16fa94e539c6f3ab306ea +e8c0552b8152cf9363ccd1d9e9002225904d5202 diff --git a/app/assets/javascripts/admin/users/constants.js b/app/assets/javascripts/admin/users/constants.js index 90f03cef0a5..41ba4e83105 100644 --- a/app/assets/javascripts/admin/users/constants.js +++ b/app/assets/javascripts/admin/users/constants.js @@ -76,6 +76,14 @@ export const TOKENS = [ unique: true, options: [{ value: 'placeholder', title: s__('UserMapping|Placeholder') }], }, + { + title: s__('AdminUsers|LDAP sync'), + type: 'ldap_sync', + token: GlFilteredSearchToken, + operators: OPERATORS_IS, + unique: true, + options: [{ value: 'ldap_sync', title: __('True') }], + }, ]; export const SOLO_OWNED_ORGANIZATIONS_REQUESTED_COUNT = 10; diff --git a/app/assets/javascripts/gl_field_errors.js b/app/assets/javascripts/gl_field_errors.js index f8e6999c562..e39b23d680e 100644 --- a/app/assets/javascripts/gl_field_errors.js +++ b/app/assets/javascripts/gl_field_errors.js @@ -21,6 +21,7 @@ export default class GlFieldErrors { 'input[type=email]', 'input[type=url]', 'input[type=number]', + 'input[type=tel]', 'textarea', 'select', ].join(','); diff --git a/app/assets/javascripts/vue_shared/components/users_table/user_avatar.vue b/app/assets/javascripts/vue_shared/components/users_table/user_avatar.vue index 499c7e22fae..24a1b9726bb 100644 --- a/app/assets/javascripts/vue_shared/components/users_table/user_avatar.vue +++ b/app/assets/javascripts/vue_shared/components/users_table/user_avatar.vue @@ -71,15 +71,13 @@ export default {
-
- {{ badge.text }} -
+ +
+
+ {{ badge.text }} +
+
diff --git a/app/controllers/admin/users_controller.rb b/app/controllers/admin/users_controller.rb index 18dc7fb292c..fc478e3332f 100644 --- a/app/controllers/admin/users_controller.rb +++ b/app/controllers/admin/users_controller.rb @@ -327,7 +327,7 @@ class Admin::UsersController < Admin::ApplicationController end def users_with_included_associations(users) - users.includes(:authorized_projects, :trusted_with_spam_attribute) # rubocop: disable CodeReuse/ActiveRecord + users.includes(:authorized_projects, :trusted_with_spam_attribute, :identities) # rubocop: disable CodeReuse/ActiveRecord end def admin_making_changes_for_another_user? diff --git a/app/controllers/concerns/uploads_actions.rb b/app/controllers/concerns/uploads_actions.rb index 9a2450da8a1..7393304e59f 100644 --- a/app/controllers/concerns/uploads_actions.rb +++ b/app/controllers/concerns/uploads_actions.rb @@ -10,6 +10,13 @@ module UploadsActions UPLOAD_MOUNTS = %w[avatar attachment file logo pwa_icon header_logo favicon screenshot].freeze + # We need to avoid setting certain formats. For example, using the :js format + # would trigger Rails' cross-origin JavaScript protection. To avoid this, we use + # the :text format for JS files instead. + CUSTOM_REQUEST_FORMAT_MAPPING = { + js: :text + }.freeze + included do prepend_before_action :set_request_format_from_path_extension rescue_from FileUploader::InvalidSecret, with: :render_404 @@ -85,7 +92,9 @@ module UploadsActions format = Mime[match.captures.first] - request.format = format.symbol if format + return if format.blank? + + request.format = CUSTOM_REQUEST_FORMAT_MAPPING[format.symbol] || format.symbol end def content_disposition diff --git a/app/graphql/resolvers/organizations/organization_users_resolver.rb b/app/graphql/resolvers/organizations/organization_users_resolver.rb index b4790da6c0a..c77137bae8e 100644 --- a/app/graphql/resolvers/organizations/organization_users_resolver.rb +++ b/app/graphql/resolvers/organizations/organization_users_resolver.rb @@ -28,7 +28,7 @@ module Resolvers def preloads { - user: [:user] + user: [{ user: [:identities] }] } end end diff --git a/app/helpers/users_helper.rb b/app/helpers/users_helper.rb index f5ebe52e7f4..fc7c01e911b 100644 --- a/app/helpers/users_helper.rb +++ b/app/helpers/users_helper.rb @@ -141,6 +141,7 @@ module UsersHelper badges << { text: s_("AdminUsers|It's you!"), variant: 'muted' } if current_user == user badges << { text: s_("AdminUsers|Locked"), variant: 'warning' } if user.access_locked? badges << { text: s_("UserMapping|Placeholder"), variant: 'muted' } if user.placeholder? + badges << { text: s_('AdminUsers|LDAP'), variant: 'info' } if user.ldap_user? end end diff --git a/app/models/user.rb b/app/models/user.rb index 8cfa37f2116..da039b39fc0 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -682,6 +682,7 @@ class User < ApplicationRecord scope :dormant, -> { with_state(:active).human_or_service_user.where('last_activity_on <= ?', Gitlab::CurrentSettings.deactivate_dormant_users_period.day.ago.to_date) } scope :with_no_activity, -> { with_state(:active).human_or_service_user.where(last_activity_on: nil).where('created_at <= ?', MINIMUM_DAYS_CREATED.day.ago.to_date) } scope :by_provider_and_extern_uid, ->(provider, extern_uid) { joins(:identities).merge(Identity.with_extern_uid(provider, extern_uid)) } + scope :ldap, -> { joins(:identities).where('identities.provider LIKE ?', 'ldap%') } scope :by_ids, ->(ids) { where(id: ids) } scope :by_ids_or_usernames, ->(ids, usernames) { where(username: usernames).or(where(id: ids)) } scope :without_forbidden_states, -> { where.not(state: FORBIDDEN_SEARCH_STATES) } @@ -886,12 +887,14 @@ class User < ApplicationRecord without_projects when 'external' external - when "trusted" + when 'trusted' trusted - when "placeholder" + when 'placeholder' placeholder - when "without_placeholders" + when 'without_placeholders' without_placeholders + when 'ldap_sync' + ldap else all_without_ghosts end diff --git a/config/feature_flags/beta/duo_code_review_full_file.yml b/config/feature_flags/beta/duo_code_review_full_file.yml new file mode 100644 index 00000000000..094281b5936 --- /dev/null +++ b/config/feature_flags/beta/duo_code_review_full_file.yml @@ -0,0 +1,10 @@ +--- +name: duo_code_review_full_file +description: +feature_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/510266 +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/189314 +rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/537556 +milestone: '18.0' +group: group::code review +type: beta +default_enabled: false diff --git a/config/feature_flags/development/invitation_flow_enforcement_setting.yml b/config/feature_flags/development/invitation_flow_enforcement_setting.yml index acd701b8f00..6d1df6f8460 100644 --- a/config/feature_flags/development/invitation_flow_enforcement_setting.yml +++ b/config/feature_flags/development/invitation_flow_enforcement_setting.yml @@ -4,5 +4,5 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/92218 rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/367666 milestone: '15.4' type: development -group: group::organizations +group: group::authorization default_enabled: false diff --git a/db/docs/batched_background_migrations/backfill_resource_iteration_events_namespace_id.yml b/db/docs/batched_background_migrations/backfill_resource_iteration_events_namespace_id.yml new file mode 100644 index 00000000000..a6f63af8350 --- /dev/null +++ b/db/docs/batched_background_migrations/backfill_resource_iteration_events_namespace_id.yml @@ -0,0 +1,8 @@ +--- +migration_job_name: BackfillResourceIterationEventsNamespaceId +description: Backfills sharding key for resource_iteration_events.namespace_id +feature_category: team_planning +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/187487 +milestone: '17.11' +queued_migration_version: 20250409172701 +finalized_by: # version of the migration that finalized this BBM diff --git a/db/post_migrate/20250409172701_queue_backfill_resource_iteration_events_namespace_id.rb b/db/post_migrate/20250409172701_queue_backfill_resource_iteration_events_namespace_id.rb new file mode 100644 index 00000000000..d358caa34e6 --- /dev/null +++ b/db/post_migrate/20250409172701_queue_backfill_resource_iteration_events_namespace_id.rb @@ -0,0 +1,27 @@ +# frozen_string_literal: true + +class QueueBackfillResourceIterationEventsNamespaceId < Gitlab::Database::Migration[2.2] + milestone '17.11' + + restrict_gitlab_migration gitlab_schema: :gitlab_main + + MIGRATION = "BackfillResourceIterationEventsNamespaceId" + DELAY_INTERVAL = 2.minutes + BATCH_SIZE = 10000 + SUB_BATCH_SIZE = 100 + + def up + queue_batched_background_migration( + MIGRATION, + :resource_iteration_events, + :id, + job_interval: DELAY_INTERVAL, + batch_size: BATCH_SIZE, + sub_batch_size: SUB_BATCH_SIZE + ) + end + + def down + delete_batched_background_migration(MIGRATION, :resource_iteration_events, :id, []) + end +end diff --git a/db/schema_migrations/20250409172701 b/db/schema_migrations/20250409172701 new file mode 100644 index 00000000000..260315f3b58 --- /dev/null +++ b/db/schema_migrations/20250409172701 @@ -0,0 +1 @@ +9b9e08f01422c89998b6dcd36552eda1219bd2aec90d6da4e6eb763aeae546f6 \ No newline at end of file diff --git a/doc/development/database/ci_mirrored_tables.md b/doc/development/database/ci_mirrored_tables.md index 17063b5231b..8e4f15fb671 100644 --- a/doc/development/database/ci_mirrored_tables.md +++ b/doc/development/database/ci_mirrored_tables.md @@ -10,7 +10,7 @@ title: CI mirrored tables As part of the database [decomposition work](https://gitlab.com/groups/gitlab-org/-/epics/6168), which had the goal of splitting the single database GitLab is using, into two databases: `main` and `ci`, came the big challenge of -[removing all joins between the `main` and the `ci` tables](multiple_databases.md#removing-joins-between-ci-and-non-ci-tables). +[removing all joins between the `main` and the `ci` tables](multiple_databases.md#removing-joins-between-main-and-non-main-tables). That is because PostgreSQL doesn't support joins between tables that belong to different databases. However, some core application models in the main database are queried very often by the CI side. For example: diff --git a/doc/development/database/multiple_databases.md b/doc/development/database/multiple_databases.md index 6f69deb3119..732cddbf046 100644 --- a/doc/development/database/multiple_databases.md +++ b/doc/development/database/multiple_databases.md @@ -7,7 +7,7 @@ title: Multiple Databases To allow GitLab to scale further we [decomposed the GitLab application database into multiple databases](https://gitlab.com/groups/gitlab-org/-/epics/6168). -The main databases are `main`, `ci`, and (optionally) `sec`. GitLab supports being run with one, two, or three databases. +The main databases are `main`, `ci`, and `sec`. GitLab supports being run with one, two, or three databases. On GitLab.com we are using separate `main` `ci`, and `sec` databases. For the purpose of building the [Cells](https://handbook.gitlab.com/handbook/engineering/architecture/design-documents/cells/) architecture, we are decomposing @@ -68,7 +68,7 @@ The `gitlab_schema` primary purpose is to introduce a barrier between different This is used as a primary source of classification for: -- [Discovering cross-joins across tables from different schemas](#removing-joins-between-ci-and-non-ci-tables) +- [Discovering cross-joins across tables from different schemas](#removing-joins-between-main-and-non-main-tables) - [Discovering cross-database transactions across tables from different schemas](#removing-cross-database-transactions) ### The special purpose of `gitlab_shared` @@ -102,7 +102,7 @@ might be missing some of those application-defined `gitlab_shared` tables (like Read [Migrations for Multiple Databases](migrations_for_multiple_databases.md). -## CI/CD Database +## CI and Sec Databases ### Configure single database @@ -111,7 +111,7 @@ By default, GDK is configured to run with multiple databases. {{< alert type="warning" >}} Switching back-and-forth between single and multiple databases in -the same development instance is discouraged. Any data in the `ci` +the same development instance is discouraged. Any data in the `ci` or `sec` database will not be accessible in single database mode. For single database, you should use a separate development instance. {{< /alert >}} @@ -122,6 +122,7 @@ To configure GDK to use a single database: ```shell gdk config set gitlab.rails.databases.ci.enabled false + gdk config set gitlab.rails.databases.sec.enabled false ``` 1. Reconfigure GDK: @@ -130,7 +131,7 @@ To configure GDK to use a single database: gdk reconfigure ``` -To switch back to using multiple databases, set `gitlab.rails.databases.ci.enabled` to `true` and run `gdk reconfigure`. +To switch back to using multiple databases, set `gitlab.rails.databases..enabled` to `true` and run `gdk reconfigure`. -### Removing joins between `ci` and non `ci` tables +### Removing joins between `main` and non `main` tables Queries that join across databases raise an error. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/68620) in GitLab 14.3, for new queries only. Pre-existing queries do not raise an error. -Because GitLab can be run with multiple separate databases, referencing `ci` -tables with non `ci` tables in a single query is not possible. Therefore, +Because GitLab can be run with multiple separate databases, referencing `main` +tables with non `main` tables in a single query is not possible. Therefore, using any kind of `JOIN` in SQL queries will not work. #### Suggestions for removing cross-database joins @@ -296,13 +297,13 @@ met: 1. The data does not update often (for example, the `project_id` column is almost never updated for most tables). -One example we found was the `security_scans` table. This table has a foreign -key `security_scans.build_id` which allows you to join to the build. Therefore +One example we found was the `terraform_state_versions` table. This table has a foreign +key `terraform_state_versions.ci_build_id` which allows you to join to the build. Therefore you could join to the project like so: ```sql -select projects.* from security_scans -inner join ci_builds on security_scans.build_id = ci_builds.id +select projects.* from terraform_state_versions +inner join ci_builds on terraform_state_versions.ci_build_id = ci_builds.id inner join projects on ci_builds.project_id = projects.id ``` @@ -310,14 +311,14 @@ The problem with this query is that `ci_builds` is in a different database from the other two tables. The solution in this case is to add the `project_id` column to -`security_scans`. This doesn't use much extra storage, and due to the way +`terraform_state_versions`. This doesn't use much extra storage, and due to the way these features work, it's never updated (a build never moves projects). This simplified the query to: ```sql -select projects.* from security_scans -inner join projects on security_scans.project_id = projects.id +select projects.* from terraform_state_versions +inner join projects on terraform_state_versions.project_id = projects.id ``` This also improves performance because you don't need to join through an extra @@ -754,12 +755,13 @@ to limit the modes where tests can run, and skip them on any other modes. ## Locking writes on the tables that don't belong to the database schemas -When the CI database is promoted and the two databases are fully split, +When a separate database is promoted and the split from main, as an extra safeguard against creating a split brain situation, run the Rake task `gitlab:db:lock_writes`. This command locks writes on: -- The `gitlab_main` tables on the CI Database. -- The `gitlab_ci` tables on the Main Database. +- Legacy tables on `gitlab_ci` belonging to the Main or Sec Databases. +- Legacy tables on `gitlab_main` belonging to the CI or Sec Databases. +- Legacy tables on `gitlab_sec` belonging to the CI or Main Databases. This Rake task adds triggers to all the tables, to prevent any `INSERT`, `UPDATE`, `DELETE`, or `TRUNCATE` statements from running @@ -832,7 +834,7 @@ end ## Truncating tables -When the databases `main` and `ci` are fully split, we can free up disk +When separate databases from `main` are fully split, we can free up disk space by truncating tables. This results in a smaller data set: For example, the data in `users` table on CI database is no longer read and also no longer updated. So this data can be removed by truncating the tables. diff --git a/doc/user/compliance/compliance_frameworks.md b/doc/user/compliance/compliance_frameworks.md index 0dbef3aff37..0d3e3843d3b 100644 --- a/doc/user/compliance/compliance_frameworks.md +++ b/doc/user/compliance/compliance_frameworks.md @@ -198,29 +198,29 @@ behavior of projects that are assigned to a compliance framework. | Control name | Control ID | Description | |:---------------------------------------------------------|:-----------------------------------------------------------|:------------| -| API Security Running | `scanner_api_security_running` | Ensures that [API security scanning](../application_security/api_security/_index.md) is configured and running in the project pipelines. | +| API security running | `scanner_api_security_running` | Ensures that [API security scanning](../application_security/api_security/_index.md) is configured and running in the project pipelines. | | At least two approvals | `minimum_approvals_required_2` | Ensures that merge requests [require at least two approvals](../project/merge_requests/approvals/_index.md) before merging. | -| Auth SSO Enabled | `auth_sso_enabled` | Ensures that [Single Sign-On (SSO) authentication](../group/saml_sso/_index.md) is enabled for the project. | +| Auth SSO enabled | `auth_sso_enabled` | Ensures that [Single Sign-On (SSO) authentication](../group/saml_sso/_index.md) is enabled for the project. | | Author approved merge request | `merge_request_prevent_author_approval` | Ensures that the author of a merge request [cannot approve their own changes](../project/merge_requests/approvals/_index.md). | -| Branch Deletion Disabled | `branch_deletion_disabled` | Ensures that [branches can't be deleted](../project/repository/branches/protected.md). | -| CICD Job Token Scope Enabled | `cicd_job_token_scope_enabled` | Ensures that [CI/CD job token](../../ci/jobs/ci_job_token.md) scope restrictions are enabled. | -| Code Changes Requires Code Owners | `code_changes_requires_code_owners` | Ensures that code changes require approval from [code owners](../project/codeowners/_index.md). | -| Code Quality Running | `scanner_code_quality_running` | Ensures that [code quality scanning](../../ci/testing/code_quality.md) is configured and running in the project pipelines. | +| Branch deletion disabled | `branch_deletion_disabled` | Ensures that [branches can't be deleted](../project/repository/branches/protected.md). | +| CI/CD job token scope enabled | `cicd_job_token_scope_enabled` | Ensures that [CI/CD job token](../../ci/jobs/ci_job_token.md) scope restrictions are enabled. | +| Code changes requires code owners | `code_changes_requires_code_owners` | Ensures that code changes require approval from [code owners](../project/codeowners/_index.md). | +| Code quality running | `scanner_code_quality_running` | Ensures that [code quality scanning](../../ci/testing/code_quality.md) is configured and running in the project pipelines. | | Committers approved merge request | `merge_request_prevent_committers_approval` | Ensures that users who have [committed to a merge request cannot approve it](../project/merge_requests/approvals/_index.md). | -| Container Scanning Running | `scanner_container_scanning_running` | Ensures that [container scanning](../application_security/container_scanning/_index.md) is configured and running in the project pipelines. | -| DAST Running | `scanner_dast_running` | Ensures that [Dynamic Application Security Testing](../application_security/dast/_index.md) (DAST) is configured and running in the project pipelines. | +| Container scanning running | `scanner_container_scanning_running` | Ensures that [container scanning](../application_security/container_scanning/_index.md) is configured and running in the project pipelines. | +| DAST running | `scanner_dast_running` | Ensures that [Dynamic Application Security Testing](../application_security/dast/_index.md) (DAST) is configured and running in the project pipelines. | | Default branch protected | `default_branch_protected` | Ensures that the default branch has [protection rules](../project/repository/branches/protected.md) enabled. | -| Default branch Protected From Direct Push | `default_branch_protected_from_direct_push` | [Prevents direct pushes to the default branch](../project/repository/branches/protected.md). | -| Default branch Users Can Merge | `default_branch_users_can_merge` | Controls [whether users can merge changes to the default branch](../project/repository/branches/protected.md). | -| Default branch Users Can Push | `default_branch_users_can_push` | Controls [whether users can push directly to the default branch](../project/repository/branches/protected.md). | -| Dependency Scanning Running | `scanner_dep_scanning_running` | Ensures that [dependency scanning](../application_security/dependency_scanning/_index.md) is configured and running in the project pipelines. | -| Ensure 2 Admins per Repository | `ensure_2_admins_per_repo` | Ensures that [at least two administrators](../project/members/_index.md) are assigned to each repository. | -| Error Tracking Enabled | `error_tracking_enabled` | Ensures that [error tracking](../../operations/error_tracking.md) is enabled for the project. | -| Force Push Disabled | `force_push_disabled` | Prevents [force pushing](../project/repository/branches/protected.md) to repositories. | -| Fuzz Testing Running | `scanner_fuzz_testing_running` | Ensures that [fuzz testing](../application_security/coverage_fuzzing/_index.md) is configured and running in the project pipelines. | -| GitLab License Level Ultimate | `gitlab_license_level_ultimate` | Ensures that the GitLab instance is using an [Ultimate license](https://about.gitlab.com/pricing/feature-comparison/). | -| Has valid Ci Config | `has_valid_ci_config` | Ensures that the project has a [valid CI/CD configuration](../../ci/yaml/_index.md). | -| IaC Scanning Running | `scanner_iac_running` | Ensures [Infrastructure as Code (IaC) scanning](../application_security/iac_scanning/_index.md) is configured and running in the project pipelines. | +| Default branch protected from direct push | `default_branch_protected_from_direct_push` | [Prevents direct pushes to the default branch](../project/repository/branches/protected.md). | +| Default branch users can merge | `default_branch_users_can_merge` | Controls [whether users can merge changes to the default branch](../project/repository/branches/protected.md). | +| Default branch users can push | `default_branch_users_can_push` | Controls [whether users can push directly to the default branch](../project/repository/branches/protected.md). | +| Dependency scanning running | `scanner_dep_scanning_running` | Ensures that [dependency scanning](../application_security/dependency_scanning/_index.md) is configured and running in the project pipelines. | +| Ensure two administrators per repository | `ensure_2_admins_per_repo` | Ensures that [at least two administrators](../project/members/_index.md) are assigned to each repository. | +| Error tracking enabled | `error_tracking_enabled` | Ensures that [error tracking](../../operations/error_tracking.md) is enabled for the project. | +| Force push disabled | `force_push_disabled` | Prevents [force pushing](../project/repository/branches/protected.md) to repositories. | +| Fuzz testing running | `scanner_fuzz_testing_running` | Ensures that [fuzz testing](../application_security/coverage_fuzzing/_index.md) is configured and running in the project pipelines. | +| GitLab license level Ultimate | `gitlab_license_level_ultimate` | Ensures that the GitLab instance is using an [Ultimate license](https://about.gitlab.com/pricing/feature-comparison/). | +| Has valid CI/CD configuration | `has_valid_ci_config` | Ensures that the project has a [valid CI/CD configuration](../../ci/yaml/_index.md). | +| IaC scanning running | `scanner_iac_running` | Ensures [Infrastructure as Code (IaC) scanning](../application_security/iac_scanning/_index.md) is configured and running in the project pipelines. | | Internal visibility is forbidden | `project_visibility_not_internal` | Ensures that projects are not set to [internal visibility](../public_access.md). | | Issue Tracking Enabled | `issue_tracking_enabled` | Ensures that [issue tracking](../project/issues/_index.md) is enabled for the project. | | License Compliance Running | `scanner_license_compliance_running` | Ensures that [license compliance scanning](license_approval_policies.md) is configured and running in the project pipelines. | diff --git a/doc/user/markdown.md b/doc/user/markdown.md index 40799f44554..4db4b4c49c7 100644 --- a/doc/user/markdown.md +++ b/doc/user/markdown.md @@ -40,14 +40,18 @@ to do so. For more information, see the [`gitlab-markup` gem project](https://gi {{< alert type="note" >}} -As this Markdown specification is **valid for GitLab only**, you should -[view these styles as they appear on GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md). +This Markdown specification is valid for GitLab only. We do our best to render the Markdown faithfully here, +however the [GitLab documentation website](https://docs.gitlab.com) and the [GitLab handbook](https://handbook.gitlab.com) +use a different Markdown renderer. {{< /alert >}} -We do our best to render the Markdown faithfully here, however the -[GitLab documentation website](https://docs.gitlab.com) and the [GitLab handbook](https://handbook.gitlab.com) -use a different Markdown processor. +To see exact examples of how GitLab renders any of these examples: + +1. Copy the relevant raw Markdown example (not the rendered version of the example). +1. Paste the Markdown somewhere in GitLab that supports Markdown previews, for example + issue or merge request comments or descriptions, or a new Markdown file. +1. Select **Preview** to view the GitLab-rendered Markdown. ## Differences with standard Markdown @@ -149,8 +153,6 @@ Alt-H2 {{< /history >}} -[View this topic rendered in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#heading-ids-and-links). - All Markdown-rendered headings automatically get IDs that can be linked to, except in comments. @@ -190,8 +192,6 @@ Would generate the following link IDs: ## Line breaks -[View this topic rendered in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#line-breaks). - A line break is inserted (a new paragraph starts) if the previous text is ended with two newlines. For example, when you press Enter twice in a row. If you only use one newline (press Enter once), the next sentence remains part of the @@ -209,14 +209,16 @@ so they *do not break* and just follow the previous lines in the *same paragraph*. ``` -Here's a line for us to start with. +When rendered, the example looks similar to: -This longer line is separated from the one above by two newlines, so it is a *separate paragraph*. - -This line is also a separate paragraph, but... -These lines are only separated by single newlines, -so they *do not break* and just follow the previous lines -in the *same paragraph*. +> Here's a line for us to start with. +> +> This longer line is separated from the one above by two newlines, so it is a *separate paragraph*. +> +> This line is also a separate paragraph, but... +> These lines are only separated by single newlines, +> so they *do not break* and just follow the previous lines +> in the *same paragraph*. ### Newlines @@ -241,9 +243,18 @@ Another line, this time ending with a backslash.\ A new line due to the previous backslash. ``` -## Emphasis +When rendered, the example looks similar to: -[View this topic rendered in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#emphasis). +> First paragraph. +> Another line in the same paragraph. +> A third line in the same paragraph, but this time ending with two spaces.
+> A new line directly under the first paragraph. +> +> Second paragraph. +> Another line, this time ending with a backslash.\ +> A new line due to the previous backslash. + +## Emphasis You can emphasize text in multiple ways. Use italics, bold, strikethrough, or combine these emphasis styles together. @@ -260,22 +271,18 @@ Combined emphasis with **asterisks and _underscores_**. Strikethrough with double tildes. ~~Scratch this.~~ ``` - +When rendered, the example looks similar to: -Emphasis, or italics, with *asterisks* or _underscores_. - -Strong emphasis, or bold, with double **asterisks** or __underscores__. - -Combined emphasis with **asterisks and _underscores_**. - -Strikethrough with double tildes. ~~Scratch this.~~ - - +> Emphasis, or italics, with *asterisks* or _underscores_. +> +> Strong emphasis, or bold, with double **asterisks** or **underscores**. +> +> Combined emphasis with **asterisks and _underscores_**. +> +> Strikethrough with double tildes. ~~Scratch this.~~ ### Mid-word emphasis -[View this topic rendered in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#multiple-underscores-in-words). - Avoid italicizing a portion of a word, especially when you're dealing with code and names that often appear with multiple underscores. @@ -290,18 +297,18 @@ do_this_and_do_that_and_another_thing but_emphasis is_desired _here_ ``` +When rendered, the example looks similar to: + -perform_complicated_task - -do_this_and_do_that_and_another_thing - -but_emphasis is_desired _here_ +> perform_complicated_task +> +> do_this_and_do_that_and_another_thing +> +> but_emphasis is_desired _here_ ---- - If you wish to emphasize only a part of a word, it can still be done with asterisks: ```markdown @@ -310,14 +317,14 @@ perform*complicated*task do*this*and*do*that*and*another thing ``` -perform*complicated*task +When rendered, the example looks similar to: -do*this*and*do*that*and*another thing +> perform*complicated*task +> +> do*this*and*do*that*and*another thing ### Inline diff -[View this topic rendered in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#inline-diff). - With inline diff tags, you can display `{+ additions +}` or `[- deletions -]`. The wrapping tags can be either curly braces or square brackets: @@ -355,8 +362,6 @@ each backtick with a backslash ` \ `: ### Horizontal rule -[View this topic rendered in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#horizontal-rule). - Create a horizontal rule by using three or more hyphens, asterisks, or underscores: ```markdown @@ -367,16 +372,12 @@ Create a horizontal rule by using three or more hyphens, asterisks, or underscor ___ ``` ---- - ---- +When rendered, all horizontal rules look similar to: --- ## Lists -[View this topic rendered in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#lists). - You can create ordered and unordered lists. For an ordered list, add the number you want the list @@ -404,13 +405,15 @@ standards on docs.gitlab.com. See https://docs.gitlab.com/ee/development/documentation/styleguide/#lists --> -1. First ordered list item -1. Another item - - Unordered sub-list. -1. Actual numbers don't matter, just that it's a number - 1. Ordered sub-list - 1. Next ordered sub-list item -1. And another item. +When rendered, the example looks similar to: + +> 1. First ordered list item +> 1. Another item +> - Unordered sub-list. +> 1. Actual numbers don't matter, just that it's a number +> 1. Ordered sub-list +> 1. Next ordered sub-list item +> 1. And another item. For an unordered list, add a `-`, `*` or `+`, followed by a space, at the start of each line. Don't mix the characters in the same list. @@ -438,20 +441,22 @@ standards on docs.gitlab.com. See https://docs.gitlab.com/ee/development/documentation/styleguide/#lists --> -Unordered lists can: +When rendered, the example looks similar to: -- use -- minuses - -They can also: - -- use -- asterisks - -They can even: - -- use -- pluses +> Unordered lists can: +> +> - use +> - minuses +> +> They can also: +> +> - use +> - asterisks +> +> They can even: +> +> - use +> - pluses --- @@ -468,13 +473,13 @@ Example: 1. Another item ``` -1. First ordered list item +When rendered, the example looks similar to: - Second paragraph of first item. - -1. Another item - ---- +> 1. First ordered list item +> +> Second paragraph of first item. +> +> 1. Another item If the first item's paragraph isn't indented with the proper number of spaces, the paragraph appears outside the list. @@ -484,22 +489,28 @@ For example: ```markdown 1. First ordered list item - (Paragraph of first item.) + (Misaligned paragraph of first item.) 1. Another item ``` -1. First ordered list item +When rendered, the example looks similar to: - (Paragraph of first item.) + -1. Another item +> 1. First ordered list item +> +> (Misaligned paragraph of first item.) +> +> 1. Another item + + --- Ordered lists that are the first sub-item of an unordered list item must have a preceding blank line if they don't start with `1.`. -**Good** +For example, with a blank line: ```markdown - Unordered list item @@ -507,13 +518,28 @@ Ordered lists that are the first sub-item of an unordered list item must have a 5. First ordered list item ``` -**Bad** +When rendered, the example looks similar to: + + + +> - Unordered list item +> +> 5. First ordered list item + + + +If the blank line is missing, the second list item renders as part of the first one: ```markdown - Unordered list item 5. First ordered list item ``` +When rendered, the example looks similar to: + +> - Unordered list item +> 5. First ordered list item + --- CommonMark ignores blank lines between ordered and unordered list items, and considers them part of a single list. The items are rendered as a @@ -529,6 +555,13 @@ For example: - A different list ``` +When rendered, the example looks similar to: + +> - First list item +> - Second list item +> +> - A different list + CommonMark ignores the blank line and renders this as one list with paragraph spacing. ### Description lists @@ -581,8 +614,6 @@ plain text editor. For more information, see [issue 535956](https://gitlab.com/g {{< /history >}} -[View this topic rendered in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#task-lists). - You can add task lists anywhere Markdown is supported. - In issues, merge requests, epics, and comments, you can select the boxes. @@ -616,27 +647,51 @@ To include task lists in tables, [use HTML list tags or HTML tables](#task-lists ## Links -[View this topic rendered in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#links). +You can create links in multiple ways: -You can create links two ways: inline-style and reference-style. For example: +```markdown +- This line shows an [inline-style link](https://www.google.com) +- This line shows a [link to a repository file in the same directory](permissions.md) +- This line shows a [relative link to a file one directory higher](../_index.md) +- This line shows a [link that also has title text](https://www.google.com "This link takes you to Google!") +``` + +When rendered, the examples look similar to: + +> - This line shows an [inline-style link](https://www.google.com) +> - This line shows a [link to a repository file in the same directory](permissions.md) +> - This line shows a [relative link to a file one directory higher](../_index.md) +> - This line shows a [link that also has title text](https://www.google.com "This link takes you to Google!") + +{{< alert type="note" >}} + +You cannot use relative links to reference project files in a wiki +page, or a wiki page in a project file. This limitation exists because wikis are always +in separate Git repositories in GitLab. For example, `[I'm a reference-style link](style)` +points to `wikis/style` only when the link is inside a wiki Markdown file. + +{{< /alert >}} + +Use heading ID anchors to link to a specific section in a page: + +```markdown +- This line links to [a section on a different Markdown page, using a "#" and the heading ID](permissions.md#project-members-permissions) +- This line links to [a different section on the same page, using a "#" and the heading ID](#heading-ids-and-links) +``` + +When rendered, the examples look similar to: + +> - This line links to [a section on a different Markdown page, using a "#" and the heading ID](permissions.md#project-members-permissions) +> - This line links to [a different section on the same page, using a "#" and the heading ID](#heading-ids-and-links) + +Using link references: -
- This line shows an [inline-style link](https://www.google.com)
-- This line shows a [link to a repository file in the same directory](permissions.md)
-- This line shows a [relative link to a file one directory higher](../_index.md)
-- This line shows a [link that also has title text](https://www.google.com "This link takes you to Google!")
-
-Using heading ID anchors:
-
-- This line links to [a section on a different Markdown page, using a "#" and the heading ID](permissions.md#project-features-permissions)
-- This line links to [a different section on the same page, using a "#" and the heading ID](#heading-ids-and-links)
-
-Using references:
-
+

 - This line shows a [reference-style link, see below][Arbitrary case-insensitive reference text]
 - You can [use numbers for reference-style link definitions, see below][1]
 - Or leave it empty and use the [link text itself][], see below.
@@ -648,42 +703,21 @@ Some text to show that the reference links can follow later.
 [link text itself]: https://about.gitlab.com/
 
-- This line shows an [inline-style link](https://www.google.com) -- This line shows a [link to a repository file in the same directory](permissions.md) -- This line shows a [relative link to a file one directory higher](../_index.md) -- This line shows a [link that also has title text](https://www.google.com "This link takes you to Google!") - -Using heading ID anchors: - -- This line links to [a section on a different Markdown page, using a "#" and the heading ID](permissions.md#project-members-permissions) -- This line links to [a different section on the same page, using a "#" and the heading ID](#heading-ids-and-links) - -Using references: - -- This line is a [reference-style link, see below](https://www.mozilla.org/en-US/) -- You can [use numbers for reference-style link definitions, see below](https://slashdot.org) -- Or leave it empty and use the [link text itself](https://about.gitlab.com/), see below. +When rendered, the example look similar to: -Some text to show that the reference links can follow later. - -{{< alert type="note" >}} - -Relative links do not allow the referencing of project files in a wiki -page, or a wiki page in a project file. The reason: a wiki is always -in a separate Git repository in GitLab. For example, `[I'm a reference-style link](style)` -points the link to `wikis/style` only when the link is inside of a wiki Markdown file. - -{{< /alert >}} +> - This line is a [reference-style link, see below](https://www.mozilla.org/en-US/) +> - You can [use numbers for reference-style link definitions, see below](https://slashdot.org) +> - Or leave it empty and use the [link text itself](https://about.gitlab.com/), see below. +> +> Some text to show that the reference links can follow later. ### URL auto-linking -[View this topic rendered in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#url-auto-linking). - Almost any URL you put into your text is auto-linked: ```markdown @@ -695,12 +729,14 @@ Almost any URL you put into your text is auto-linked: - http://localhost:3000 ``` -- -- -- -- smb://foo/bar/baz -- irc://irc.freenode.net -- +When rendered, the example looks similar to: + +> - +> - +> - +> - smb://foo/bar/baz +> - irc://irc.freenode.net +> - ## GitLab-specific references @@ -850,8 +886,6 @@ To embed an Observability dashboard URL: ## Tables -[View this topic rendered in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#tables-1). - When creating tables: - The first line contains the headers, separated by pipe characters (`|`). @@ -876,16 +910,16 @@ Example: | cell 7 | | cell 9 | ``` -| header 1 | header 2 | header 3 | -| --- | --- | --- | -| cell 1 | cell 2 | cell 3 | -| cell 4 | cell 5 is longer | cell 6 is much longer than the others, but that's ok. It eventually wraps the text when the cell is too large for the display size. | -| cell 7 | | cell 9 | +When rendered, the example looks similar to: + +> | header 1 | header 2 | header 3 | +> | --- | --- | --- | +> | cell 1 | cell 2 | cell 3 | +> | cell 4 | cell 5 is longer | cell 6 is much longer than the others, but that's ok. It eventually wraps the text when the cell is too large for the display size. | +> | cell 7 | | cell 9 | ### Alignment -[View this topic rendered in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#alignment). - Additionally, you can choose the alignment of text in columns by adding colons (`:`) to the sides of the "dash" lines in the second row. This affects every cell in the column: @@ -896,18 +930,18 @@ to the sides of the "dash" lines in the second row. This affects every cell in t | Cell 4 | Cell 5 | Cell 6 | ``` -| Left Aligned | Centered | Right Aligned | -| :--- | :---: | ---: | -| Cell 1 | Cell 2 | Cell 3 | -| Cell 4 | Cell 5 | Cell 6 | +When rendered, the example looks similar to: + +> | Left Aligned | Centered | Right Aligned | +> | :--- | :---: | ---: | +> | Cell 1 | Cell 2 | Cell 3 | +> | Cell 4 | Cell 5 | Cell 6 | [In GitLab itself](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#tables), the headers are always left-aligned in Chrome and Firefox, and centered in Safari. ### Cells with multiple lines -[View this topic rendered in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#cells-with-multiple-lines). - You can use HTML formatting to adjust the rendering of tables. For example, you can use `
` tags to force a cell to have multiple lines: @@ -918,10 +952,12 @@ use `
` tags to force a cell to have multiple lines: | Item2 | This item has:
- Multiple items
- That we want listed separately | ``` -| Name | Details | -| --- | --- | -| Item1 | This text is on one line | -| Item2 | This item has:
- Multiple items
- That we want listed separately | +When rendered, the example looks similar to: + +> | Name | Details | +> | --- | --- | +> | Item1 | This text is on one line | +> | Item2 | This item has:
- Multiple items
- That we want listed separately | ### Task lists in tables @@ -1167,50 +1203,32 @@ in the rendered output. ### Images -Embed images using inline or reference links. -To see title text, hover over the image. - -The text in square brackets (`[ ]`) becomes the image alt text. -To learn about creating accessible alt text, see -[Accessible images and videos](#accessible-images-and-videos). - - +Embed images using inline or reference [links](#links) prepended with a `!`. For example: - - -Inline-style: - -
![GitLab logo](img/markdown_logo_v17_11.png "Title Text")
-
- +```markdown ![GitLab logo](img/markdown_logo_v17_11.png "Title Text") +``` -Reference-style: - -
![GitLab logo][logo]
-[logo]: img/markdown_logo_v17_11.png "Title Text"
-
- -![GitLab logo](img/markdown_logo_v17_11.png "Title Text") +> ![GitLab logo](img/markdown_logo_v17_11.png "Title Text") -### Videos +In image links: -[View this topic rendered in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#videos). +- Text in the square brackets (`[ ]`) becomes the image alt text. +- Text in double quotes after the image link path becomes the title text. + To see title text, hover over the image. + +To learn about creating accessible alt text, see [Accessible images and videos](#accessible-images-and-videos). + +### Videos Image tags that link to files with a video extension are automatically converted to a video player. The valid video extensions are `.mp4`, `.m4v`, `.mov`, `.webm`, and `.ogv`: @@ -1221,7 +1239,9 @@ Here's an example video: ![Sample Video](img/markdown_video.mp4) ``` -![Sample Video](img/markdown_video.mp4) +This example only works when [rendered in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#videos): + +> ![Sample Video](img/markdown_video.mp4) ### Change image or video dimensions @@ -1232,8 +1252,6 @@ Here's an example video: {{< /history >}} -[View this topic rendered in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#change-the-image-or-video-dimensions). - You can control the width and height of an image or video by following the image with an attribute list. The value must an integer with a unit of either `px` (default) or `%`. @@ -1246,7 +1264,9 @@ For example ![GitLab logo](img/markdown_logo_v17_11.png "Title Text"){width=75%} ``` -![GitLab logo](img/markdown_logo_v17_11.png "Title Text"){width=100 height=100px} +This example only works when [rendered in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#change-image-or-video-dimensions): + +> ![GitLab logo](img/markdown_logo_v17_11.png "Title Text"){width=100 height=100px} You can also use the `img` HTML tag instead of Markdown and set its `height` and `width` parameters. @@ -1259,8 +1279,6 @@ resized to 75% of its dimensions. ### Audio -[View this topic rendered in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#audio). - Similar to videos, link tags for files with an audio extension are automatically converted to an audio player. The valid audio extensions are `.mp3`, `.oga`, `.ogg`, `.spx`, and `.wav`: @@ -1270,12 +1288,12 @@ Here's an example audio clip: ![Sample Audio](img/markdown_audio.mp3) ``` -![Sample Audio](img/markdown_audio.mp3) +This example only works when [rendered in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#audio): + +> ![Sample Audio](img/markdown_audio.mp3) ## Blockquotes -[View this topic rendered in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#blockquotes). - Use a blockquote to highlight information, such as a side note. It's generated by starting the lines of the blockquote with `>`: @@ -1288,17 +1306,17 @@ Quote break. > This very long line is still quoted properly when it wraps. Keep writing to make sure this line is long enough to actually wrap for everyone. You can also *use* **Markdown** in a blockquote. ``` -> Blockquotes help you emulate reply text. -> This line is part of the same quote. +When rendered, the example looks similar to: -Quote break. - -> This very long line is still quoted properly when it wraps. Keep writing to make sure this line is long enough to actually wrap for everyone. You can also *use* **Markdown** in a blockquote. +> > Blockquotes help you emulate reply text. +> > This line is part of the same quote. +> +> Quote break. +> +> > This very long line is still quoted properly when it wraps. Keep writing to make sure this line is long enough to actually wrap for everyone. You can also *use* **Markdown** in a blockquote. ### Multiline blockquote -[View this topic rendered in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#multiline-blockquote). - Create multi-line blockquotes fenced by `>>>`: ```markdown @@ -1311,9 +1329,13 @@ you can quote that without having to manually prepend `>` to every line! >>> ``` -## Code spans and blocks +> > If you paste a message from somewhere else +> > +> > that spans multiple lines, +> > +> > you can quote that without having to manually prepend `>` to every line! -[View this topic rendered in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#code-spans-and-blocks). +## Code spans and blocks Highlight anything that should be viewed as code and not standard text. @@ -1323,120 +1345,89 @@ Inline code is formatted with single backticks `` ` ``: Inline `code` has `back-ticks around` it. ``` -Inline `code` has `back-ticks around` it. +When rendered, the example looks similar to: ---- +> Inline `code` has `back-ticks around` it. -To achieve a similar effect for a larger code example, you can: +For a similar effect with a larger code example, you can use a code block. +To create a code block: -- Fence an entire block of code with triple backticks (```` ``` ````). - - You can use more than three backticks, as long as both the opening and closing set have the same number. - When you create a [multi-line suggestion](project/merge_requests/reviews/suggestions.md) - containing a code block, the number of backticks automatically increases. +- Fence an entire block of code with triple backticks (```` ``` ````). You can use more than three backticks, + as long as both the opening and closing set have the same number. - Fence an entire block of code with triple tildes (`~~~`). - Indent it four or more spaces. -````markdown -```python -def function(): - #indenting works just fine in the fenced code block - s = "Python code" - print s -``` +For example: - Using 4 spaces - is like using - 3-backtick fences. -```` +- ````markdown + ```python + def function(): + #indenting works just fine in the fenced code block + s = "Python code" + print s + ``` + ```` -```plaintext -~~~ -Tildes are OK too. -~~~ -``` +- ```markdown + Using 4 spaces + is like using + 3-backtick fences. + ``` + +- ```markdown + ~~~javascript + var s = "JavaScript syntax highlighting"; + alert(s); + ~~~ + ``` The three examples above render as: -```python -def function(): - #indenting works just fine in the fenced code block - s = "Python code" - print s -``` +- > ```python + > def function(): + > #indenting works just fine in the fenced code block + > s = "Python code" + > print s + > ``` -```plaintext -Using 4 spaces -is like using -3-backtick fences. -``` +- > ```plaintext + > Using 4 spaces + > is like using + > 3-backtick fences. + > ``` -```plaintext -Tildes are OK too. -``` +- > ```javascript + > var s = "JavaScript syntax highlighting"; + > alert(s); + > ``` ### Syntax highlighting -[View this topic rendered in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#syntax-highlighting). - GitLab uses the [Rouge Ruby library](https://github.com/rouge-ruby/rouge) for more colorful syntax highlighting in code blocks. For a list of supported languages visit the [Rouge project wiki](https://github.com/rouge-ruby/rouge/wiki/List-of-supported-languages-and-lexers). Syntax highlighting is supported only in code blocks, so you can't highlight inline code. To fence and apply syntax highlighting to a block of code, append the code language -to the opening code declaration, three back-ticks (```` ``` ````) or three tildes (`~~~`): +to the opening code declaration, after the three back-ticks (```` ``` ````) or three tildes (`~~~`). -````markdown -```javascript -var s = "JavaScript syntax highlighting"; -alert(s); -``` +Code blocks that use `plaintext` or have no code language specified have no syntax highlighting: -```python -def function(): - #indenting works just fine in the fenced code block - s = "Python syntax highlighting" - print s +````plaintext ``` - -```ruby -require 'redcarpet' -markdown = Redcarpet.new("Hello World!") -puts markdown.to_html -``` - -``` -No language indicated, so no syntax highlighting. +No language indicated, so **no** syntax highlighting. s = "No highlighting is shown for this line." But let's throw in a tag. ``` ```` -The four examples above render as: +When rendered, the example looks similar to: -```javascript -var s = "JavaScript syntax highlighting"; -alert(s); -``` - -```python -def function(): - #indenting works just fine in the fenced code block - s = "Python syntax highlighting" - print s -``` - -```ruby -require 'redcarpet' -markdown = Redcarpet.new("Hello World!") -puts markdown.to_html -``` - -```plaintext -No language indicated, so no syntax highlighting. -s = "No highlighting is shown for this line." -But let's throw in a tag. -``` +> ```plaintext +> No language indicated, so **no** syntax highlighting. +> s = "No highlighting is shown for this line." +> But let's throw in a tag. +> ``` ## Diagrams and flowcharts @@ -1456,8 +1447,6 @@ In wikis, you can also add and edit diagrams created with the [diagrams.net edit {{< /history >}} -[View this topic rendered in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#mermaid). - Visit the [official page](https://mermaidjs.github.io/) for more details. The [Mermaid Live Editor](https://mermaid-js.github.io/mermaid-live-editor/) helps you learn Mermaid and debug issues in your Mermaid code. Use it to identify and resolve @@ -1475,6 +1464,8 @@ graph TD; ``` ```` +When rendered, the example looks similar to: + ```mermaid graph TD; A-->B; @@ -1504,6 +1495,8 @@ graph TB ``` ```` +When rendered, the example looks similar to: + ```mermaid graph TB SubGraph1 --> SubGraph1Flow @@ -1554,8 +1547,6 @@ For more information, see the [Kroki integration](../administration/integration/ {{< /history >}} -[View this topic rendered in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#math). - Math written in LaTeX syntax is rendered with [KaTeX](https://github.com/KaTeX/KaTeX). _KaTeX only supports a [subset](https://katex.org/docs/supported.html) of LaTeX._ This syntax also works in AsciiDoc wikis and files using `:stem: latexmath`. For details, see @@ -1593,6 +1584,8 @@ a^2+b^2=c^2 $$ ````` +When rendered, the example looks like: + ![Example of math in GitLab](img/markdown_math_v17_2.png) {{< alert type="note" >}} @@ -1731,8 +1724,6 @@ The alerts render as: ## Colors -[View this topic rendered in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#colors). - Markdown does not support changing text color. You can write a color code in the formats: `HEX`, `RGB`, or `HSL`. @@ -1758,6 +1749,8 @@ display a color chip next to the color code. For example: - `HSLA(540,70%,50%,0.3)` ``` +This example only works when [rendered in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#colors): + - `#F00` - `#F00A` - `#FF0000` @@ -1770,38 +1763,12 @@ display a color chip next to the color code. For example: ## Emoji -[View this topic rendered in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#emoji). - -Sometimes you want to :monkey: -around a bit and add some :star2: -to your :speech_balloon:. -Well we have a gift for you: - -:zap: You can use emoji anywhere GitLab Flavored Markdown is supported. -:v: - -You can use it to point out a :bug: -or warn about :speak_no_evil: -patches. If someone improves your really :snail: -code, send them some :birthday:. -People :heart: -you for that. - -If you're new to this, don't be :fearful:. -You can join the emoji :family:. -Just look up one of the supported codes. - -Consult the [TanukiEmoji reference](https://gitlab-org.gitlab.io/ruby/gems/tanuki_emoji/) for a list -of all supported emoji codes. :thumbsup: - -The above paragraphs in raw Markdown: +For example: ```markdown Sometimes you want to :monkey: around a bit and add some :star2: to your -:speech_balloon:. Well we have a gift for you: - -:zap: You can use emoji anywhere GitLab Flavored Markdown is supported. :v: +:speech_balloon:. Well we have a gift for you: emoji! You can use it to point out a :bug: or warn about :speak_no_evil: patches. And if someone improves your really :snail: code, send them some :birthday:. @@ -1809,10 +1776,28 @@ People :heart: you for that. If you're new to this, don't be :fearful:. You can join the emoji :family:. Just look up one of the supported codes. +``` + +When rendered, the example looks similar to: + +> Sometimes you want to :monkey: +> around a bit and add some :star2: +> to your :speech_balloon:. +> Well we have a gift for you: emoji! +> +> You can use it to point out a :bug: +> or warn about :speak_no_evil: +> patches. If someone improves your really :snail: +> code, send them some :birthday:. +> People :heart: +> you for that. +> +> If you're new to this, don't be :fearful:. +> You can join the emoji :family:. +> Just look up one of the supported codes. Consult the [Emoji Cheat Sheet](https://www.webfx.com/tools/emoji-cheat-sheet/) -for a list of all supported emoji codes. :thumbsup: -``` +for a list of all supported emoji codes. ### Emoji and your operating system @@ -1977,19 +1962,17 @@ Our script contains: ``` ```` -The content renders as: +When rendered, the example looks similar to: -Our script contains: - -```javascript -var s = "JavaScript syntax highlighting"; -alert(s); -``` +> Our script contains: +> +> ```javascript +> var s = "JavaScript syntax highlighting"; +> alert(s); +> ``` ## Escape characters -[View this topic rendered in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#escape-characters). - Markdown reserves the following ASCII characters to format the page: ```plaintext @@ -2013,21 +1996,15 @@ Examples: \**Not bold, just italic text placed between some asterisks*\* ``` -When rendered, the escaped characters look like this: +When rendered, the example looks similar to: ---- - -\# Not a heading - -| Food | Do you like this food? (circle)| -|-----------------|--------------------------------| -| Pizza | Yes \| No | - -\**Not bold, just italic text placed between some asterisks*\* - ---- - -Exceptions: +> \# Not a heading +> +> | Food | Do you like this food? (circle)| +> |-----------------|--------------------------------| +> | Pizza | Yes \| No | +> +> \**Not bold, just italic text placed between some asterisks*\* A backslash doesn't always escape the character that follows it. The backslash appears as regular text in the following cases: @@ -2050,16 +2027,12 @@ for example: Use the backslash ` \ ` character to escape inline code that ends in a ` backslash\ `. ``` -When rendered, the inline code looks like this: +When rendered, the example looks similar to: ---- - -Use the backslash ` \ ` character to escape inline code that ends in a ` backslash\ `. +> Use the backslash ` \ ` character to escape inline code that ends in a ` backslash\ `. ## Footnotes -[View this topic rendered in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#footnotes). - Footnotes add a link to a note rendered at the end of a Markdown file. To make a footnote, you need both a reference tag and a separate line (anywhere in the file) with @@ -2068,34 +2041,33 @@ the note content. Regardless of the tag names, the relative order of the reference tags determines the rendered numbering. -Regardless where you put the note, it's always shown at the bottom of the file. +Regardless where you put the note, it's always shown at the bottom of the rendered file. - +For example: -
A footnote reference tag looks like this: [^1]
+- Referencing footnotes:
 
-This reference tag is a mix of letters and numbers. [^footnote-42]
+  ```markdown
+  A footnote reference tag looks like this:[^1]
 
-[^1]: This text is inside a footnote.
+  This reference tag is a mix of letters and numbers. [^footnote-42]
+  ```
 
-[^footnote-42]: This text is another footnote.
-
+- Defining footnotes in a different part of the file: -A footnote reference tag looks like this:[^1] + ```markdown + [^1]: This text is inside a footnote. + [footnote-42]: This text is another footnote. + ``` -This reference tag is a mix of letters and numbers.[^footnote-42] +When rendered, footnotes look similar to: - - - [^1]: This text is inside a footnote. - - [^footnote-42]: This text is another footnote. +> A footnote reference tag looks like this:[^1] +> +> This reference tag is a mix of letters and numbers.[^footnote-42] +> +> [^1]: This text is inside a footnote. +> [^footnote-42]: This text is another footnote. {{< alert type="note" >}} @@ -2106,8 +2078,6 @@ plain text editor. For more information, see [issue 365265](https://gitlab.com/g ## Inline HTML -[View this topic rendered in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#inline-html). - You can also use raw HTML in your Markdown, and it usually works pretty well. See the documentation for `HTML::Pipeline`'s [SanitizationFilter](https://github.com/gjtorikian/html-pipeline/blob/v2.12.3/lib/html/pipeline/sanitization_filter.rb#L42) @@ -2125,15 +2095,15 @@ class for the list of allowed HTML tags and attributes. In addition to the defau ``` -
-
Definition list
-
Is something people use sometimes.
+When rendered, the example looks similar to: -
Markdown in HTML
-
Does *not* work **very** well. HTML tags do work, in most cases.
-
- ---- +>
+>
Definition list
+>
Is something people use sometimes.
+> +>
Markdown in HTML
+>
Does *not* work **very** well. HTML tags do work, in most cases.
+>
It's still possible to use Markdown inside HTML tags, but only if the lines containing Markdown are separated into their own lines: @@ -2141,10 +2111,6 @@ are separated into their own lines: ```html
Markdown in HTML
-
Does *not* work **very** well. HTML tags work, in most cases.
- -
Markdown in HTML with proper spacing
-
Does *not* work **very** well. HTML tags work, in most cases. @@ -2152,27 +2118,27 @@ are separated into their own lines:
``` +When rendered, the example looks similar to: + -
-
Markdown in HTML
-
Does *not* work **very** well. HTML tags work, in most cases.
+ -
Markdown in HTML with proper spacing
-
+>
+>
Markdown in HTML
+> +> Does not work very well. HTML tags work, in most cases. +> +>
+>
- Does not work very well. HTML tags work, in most cases. - - - + ### Collapsible section -[View this topic rendered in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#details-and-summary). - Content can be collapsed using HTML's [`
`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/details) and [``](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/summary) tags. For example, collapse a long log file so it takes up less screen space. @@ -2188,14 +2154,16 @@ These details remain hidden until expanded.
``` -
-Click to expand +When rendered, the example looks similar to: -These details remain hidden until expanded. - -
PASTE LOGS HERE
- -
+>
+> Click to expand +> +> These details remain hidden until expanded. +> +>
PASTE LOGS HERE
+> +>
--- @@ -2225,31 +2193,32 @@ The example below uses HTML to force correct rendering on docs.gitlab.com, Markd works correctly in GitLab. --> -
-Click to expand. +When rendered, the example looks similar to: -These details remain hidden until expanded. - -
PASTE LOGS HERE
- -
+>
+> Click to expand. +> +> These details remain hidden until expanded. +> +>
PASTE LOGS HERE
+> +>
### Keyboard HTML tag -[View this topic rendered in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#keyboard-html-tag). - The `` element is used to identify text that represents user keyboard input. Text surrounded by `` tags is typically displayed in the browser's default monospace font. ```html Press Enter to go to the next page. ``` -Press Enter to go to the next page. +When rendered, the example looks similar to: + +> Press Enter to go to the next page. ### Superscripts and subscripts -[View this topic rendered in GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/user/markdown.md#superscripts-subscripts). - +GitLab Flavored Markdown doesn't support the Redcarpet superscript syntax ( `x^2` ). For superscripts and subscripts, use the standard HTML syntax: ```html @@ -2259,8 +2228,10 @@ while the equation for the theory of relativity is E = mc2. -The formula for water is H2O -while the equation for the theory of relativity is E = mc2. +When rendered, the example looks similar to: + +> The formula for water is H2O +> while the equation for the theory of relativity is E = mc2. diff --git a/lib/gitlab/background_migration/backfill_resource_iteration_events_namespace_id.rb b/lib/gitlab/background_migration/backfill_resource_iteration_events_namespace_id.rb new file mode 100644 index 00000000000..7dbc27799d7 --- /dev/null +++ b/lib/gitlab/background_migration/backfill_resource_iteration_events_namespace_id.rb @@ -0,0 +1,29 @@ +# frozen_string_literal: true + +module Gitlab + module BackgroundMigration + class BackfillResourceIterationEventsNamespaceId < BatchedMigrationJob + operation_name :update_namespace_id + feature_category :team_planning + + def perform + each_sub_batch do |sub_batch| + connection.execute( + <<~SQL + WITH sub_batch AS MATERIALIZED (#{sub_batch.select(:id, :iteration_id).limit(sub_batch_size).to_sql}) + UPDATE + "resource_iteration_events" + SET + "namespace_id" = "sprints"."group_id" + FROM + "sub_batch" + INNER JOIN "sprints" ON "sprints"."id" = "sub_batch"."iteration_id" + WHERE + "resource_iteration_events"."id" = "sub_batch"."id" + SQL + ) + end + end + end + end +end diff --git a/lib/gitlab/ci/pipeline/chain/config/content.rb b/lib/gitlab/ci/pipeline/chain/config/content.rb index 7995f0e9f34..ff98adc6323 100644 --- a/lib/gitlab/ci/pipeline/chain/config/content.rb +++ b/lib/gitlab/ci/pipeline/chain/config/content.rb @@ -11,7 +11,6 @@ module Gitlab def perform! if pipeline_config&.exists? - build_pipeline_config @command.config_content = pipeline_config.content @pipeline.config_source = pipeline_config.source @command.pipeline_config = pipeline_config @@ -40,16 +39,6 @@ module Gitlab ) end end - - def build_pipeline_config - # Inputs may contain secrets, so we don't want to save them in the DB as plain text. - # It's safe to not save a pipeline-config because we are currently considering - # dropping the `p_ci_pipelines_config` table because it's not used anywhere. - # https://gitlab.com/gitlab-org/gitlab/-/issues/520828#note_2364398251 - return if @command.inputs.present? - - @pipeline.build_pipeline_config(content: pipeline_config.content, project_id: @pipeline.project_id) - end end end end diff --git a/locale/gitlab.pot b/locale/gitlab.pot index 57a96a5e1e4..b5f8fcbfed4 100644 --- a/locale/gitlab.pot +++ b/locale/gitlab.pot @@ -2644,9 +2644,6 @@ msgstr "" msgid "About this feature" msgstr "" -msgid "About your company" -msgstr "" - msgid "Abuse reports" msgstr "" @@ -5171,9 +5168,15 @@ msgstr "" msgid "AdminUsers|It's you!" msgstr "" +msgid "AdminUsers|LDAP" +msgstr "" + msgid "AdminUsers|LDAP Blocked" msgstr "" +msgid "AdminUsers|LDAP sync" +msgstr "" + msgid "AdminUsers|Learn more about %{link_start}banned users.%{link_end}" msgstr "" @@ -31788,10 +31791,13 @@ msgstr "" msgid "InProductMarketing|%{upper_start}Free 60-day trial%{upper_end} %{lower_start}GitLab Ultimate & GitLab Duo Enterprise%{lower_end} %{last_start}Sign up for a free trial of the most comprehensive AI-powered DevSecOps Platform%{last_end}" msgstr "" +msgid "InProductMarketing|60-day trial period" +msgstr "" + msgid "InProductMarketing|Boost efficiency and collaboration" msgstr "" -msgid "InProductMarketing|Built-in security" +msgid "InProductMarketing|Build in security" msgstr "" msgid "InProductMarketing|End-to-end security and compliance" @@ -31800,6 +31806,9 @@ msgstr "" msgid "InProductMarketing|Ensure compliance" msgstr "" +msgid "InProductMarketing|Experience the power of Ultimate + GitLab Duo Enterprise" +msgstr "" + msgid "InProductMarketing|Free guest users" msgstr "" @@ -31824,9 +31833,6 @@ msgstr "" msgid "InProductMarketing|Start a Self-Managed trial" msgstr "" -msgid "InProductMarketing|Start your 60-day free trial" -msgstr "" - msgid "InProductMarketing|Team members collaborating" msgstr "" @@ -59976,6 +59982,9 @@ msgstr "" msgid "Telephone number" msgstr "" +msgid "Tell us about your company" +msgstr "" + msgid "Tell us what you think" msgstr "" @@ -63685,9 +63694,6 @@ msgstr "" msgid "TrialDiscover|Why Ultimate & GitLab Duo Enterprise?" msgstr "" -msgid "TrialRegistration|To complete registration, we need additional details from you." -msgstr "" - msgid "TrialWidget|%{daysLeft} days left in trial" msgstr "" @@ -63763,6 +63769,9 @@ msgstr "" msgid "Trial|Continue" msgstr "" +msgid "Trial|Continue with trial" +msgstr "" + msgid "Trial|Cookie Policy." msgstr "" @@ -63781,9 +63790,6 @@ msgstr "" msgid "Trial|Select state or province" msgstr "" -msgid "Trial|Start free Ultimate + GitLab Duo Enterprise trial" -msgstr "" - msgid "Trial|Start your free Ultimate and GitLab Duo Enterprise trial" msgstr "" @@ -63793,7 +63799,7 @@ msgstr "" msgid "Trial|State or province" msgstr "" -msgid "Trial|To activate your trial, we need additional details from you." +msgid "Trial|We need a few more details from you to activate your trial." msgstr "" msgid "Trial|Your free Ultimate & GitLab Duo Enterprise Trial lasts for 60 days. After this period, you can maintain a GitLab Free account forever, or upgrade to a paid plan." @@ -67715,9 +67721,6 @@ msgstr "" msgid "Webhooks|You've reached the maximum number of custom headers." msgstr "" -msgid "Website" -msgstr "" - msgid "Website:" msgstr "" diff --git a/qa/knapsack/example_runtimes/master_report.json b/qa/knapsack/example_runtimes/master_report.json index 9ab8bb0771d..4d08ddf54dd 100644 --- a/qa/knapsack/example_runtimes/master_report.json +++ b/qa/knapsack/example_runtimes/master_report.json @@ -1,492 +1,521 @@ { - "./qa/specs/features/api/10_govern/group_access_token_spec.rb[1:1:1]": 23.136464929, - "./qa/specs/features/api/10_govern/group_access_token_spec.rb[1:1:2]": 18.755062981, - "./qa/specs/features/api/10_govern/project_access_token_spec.rb[1:1:1:1]": 18.971487815, - "./qa/specs/features/api/10_govern/project_access_token_spec.rb[1:1:1:2]": 12.21778901, - "./qa/specs/features/api/10_govern/project_access_token_spec.rb[1:1:2:1]": 22.811940724, - "./qa/specs/features/api/10_govern/project_access_token_spec.rb[1:1:2:2]": 16.850659482, - "./qa/specs/features/api/12_systems/gitaly/automatic_failover_and_recovery_spec.rb[1:1:1]": 64.594007601, - "./qa/specs/features/api/12_systems/gitaly/automatic_failover_and_recovery_spec.rb[1:1:2:1]": 30.838441992, - "./qa/specs/features/api/12_systems/gitaly/backend_node_recovery_spec.rb[1:1:1]": 99.391011406, - "./qa/specs/features/api/12_systems/gitaly/distributed_reads_spec.rb[1:1:1]": 51.057889367, - "./qa/specs/features/api/12_systems/gitaly/distributed_reads_spec.rb[1:1:2:1]": 58.409825723, - "./qa/specs/features/api/12_systems/gitaly/gitaly_mtls_spec.rb[1:1:1]": 17.343291911, - "./qa/specs/features/api/1_manage/import/import_github_repo_spec.rb[1:1:1:1]": 129.164534484, - "./qa/specs/features/api/1_manage/integrations/webhook_events_spec.rb[1:1:1]": 13.478628017, - "./qa/specs/features/api/1_manage/integrations/webhook_events_spec.rb[1:1:2]": 10.74624841, - "./qa/specs/features/api/1_manage/integrations/webhook_events_spec.rb[1:1:3]": 6.676646933, - "./qa/specs/features/api/1_manage/integrations/webhook_events_spec.rb[1:1:4]": 20.564316589, - "./qa/specs/features/api/1_manage/integrations/webhook_events_spec.rb[1:1:5]": 13.763883795, - "./qa/specs/features/api/1_manage/migration/gitlab_migration_group_spec.rb[1:1:2:1]": 48.070470498, - "./qa/specs/features/api/1_manage/migration/gitlab_migration_issue_spec.rb[1:1:2:1]": 106.156666355, - "./qa/specs/features/api/1_manage/migration/gitlab_migration_issue_spec.rb[1:1:3:1]": 100.969691938, - "./qa/specs/features/api/1_manage/migration/gitlab_migration_pipeline_spec.rb[1:1:1:1]": 93.817009078, - "./qa/specs/features/api/1_manage/migration/gitlab_migration_project_spec.rb[1:1:4:1]": 88.488855084, - "./qa/specs/features/api/1_manage/rate_limits_spec.rb[1:1:1]": 10.817814349, - "./qa/specs/features/api/2_plan/closes_issue_via_pushing_a_commit_spec.rb[1:1:1]": 25.181362408, - "./qa/specs/features/api/3_create/merge_request/push_options_mwps_spec.rb[1:1:1]": 21.039227909, - "./qa/specs/features/api/3_create/merge_request/push_options_remove_source_branch_spec.rb[1:1:1]": 14.02142123, - "./qa/specs/features/api/3_create/merge_request/push_options_spec.rb[1:1:1]": 14.30335558, - "./qa/specs/features/api/3_create/merge_request/push_options_spec.rb[1:1:2]": 23.561761574, - "./qa/specs/features/api/3_create/merge_request/view_merge_requests_spec.rb[1:1:1:1]": 0.626406801, - "./qa/specs/features/api/3_create/repository/add_list_delete_branches_spec.rb[1:1:1]": 17.916767084, - "./qa/specs/features/api/3_create/repository/commit_to_templated_project_spec.rb[1:1:1]": 20.598149251, - "./qa/specs/features/api/3_create/repository/default_branch_name_setting_spec.rb[1:1:1]": 7.943842876, - "./qa/specs/features/api/3_create/repository/default_branch_name_setting_spec.rb[1:1:2]": 6.088428491, - "./qa/specs/features/api/3_create/repository/files_spec.rb[1:1:1]": 8.070920294, - "./qa/specs/features/api/3_create/repository/files_spec.rb[1:1:2:1]": 5.464832697, - "./qa/specs/features/api/3_create/repository/project_archive_compare_spec.rb[1:1:1]": 15.889818879, - "./qa/specs/features/api/3_create/repository/push_postreceive_idempotent_spec.rb[1:1:1]": 21.785407327, - "./qa/specs/features/api/3_create/repository/storage_size_spec.rb[1:1:1]": 28.971710849, - "./qa/specs/features/api/3_create/repository/tag_revision_trigger_prereceive_hook_spec.rb[1:1:1:1:1]": 6.921551015, - "./qa/specs/features/api/4_verify/api_variable_inheritance_with_forward_pipeline_variables_spec.rb[1:1:1]": 71.715082498, - "./qa/specs/features/api/4_verify/cancel_pipeline_when_block_user_spec.rb[1:1:1]": 17.328745451, + "./qa/specs/features/api/10_govern/group_access_token_spec.rb[1:1:1]": 19.622407143, + "./qa/specs/features/api/10_govern/group_access_token_spec.rb[1:1:2]": 13.367585937, + "./qa/specs/features/api/10_govern/project_access_token_spec.rb[1:1:1:1]": 17.809082389, + "./qa/specs/features/api/10_govern/project_access_token_spec.rb[1:1:1:2]": 15.7929937, + "./qa/specs/features/api/10_govern/project_access_token_spec.rb[1:1:2:1]": 23.979754862, + "./qa/specs/features/api/10_govern/project_access_token_spec.rb[1:1:2:2]": 18.043521259, + "./qa/specs/features/api/12_systems/gitaly/automatic_failover_and_recovery_spec.rb[1:1:1]": 66.806835574, + "./qa/specs/features/api/12_systems/gitaly/automatic_failover_and_recovery_spec.rb[1:1:2:1]": 31.16457133, + "./qa/specs/features/api/12_systems/gitaly/backend_node_recovery_spec.rb[1:1:1]": 99.394917952, + "./qa/specs/features/api/12_systems/gitaly/distributed_reads_spec.rb[1:1:1]": 52.596430217, + "./qa/specs/features/api/12_systems/gitaly/distributed_reads_spec.rb[1:1:2:1]": 58.606479186, + "./qa/specs/features/api/12_systems/gitaly/gitaly_mtls_spec.rb[1:1:1]": 23.128792633, + "./qa/specs/features/api/1_manage/import/import_github_repo_spec.rb[1:1:1:1]": 98.601690677, + "./qa/specs/features/api/1_manage/integrations/webhook_events_spec.rb[1:1:1]": 12.579267718, + "./qa/specs/features/api/1_manage/integrations/webhook_events_spec.rb[1:1:2]": 12.138697134, + "./qa/specs/features/api/1_manage/integrations/webhook_events_spec.rb[1:1:3]": 15.831599416, + "./qa/specs/features/api/1_manage/integrations/webhook_events_spec.rb[1:1:4]": 11.951984228, + "./qa/specs/features/api/1_manage/integrations/webhook_events_spec.rb[1:1:5]": 11.382760942, + "./qa/specs/features/api/1_manage/migration/gitlab_migration_group_spec.rb[1:1:2:1]": 60.555716827, + "./qa/specs/features/api/1_manage/migration/gitlab_migration_issue_spec.rb[1:1:2:1]": 95.74637414, + "./qa/specs/features/api/1_manage/migration/gitlab_migration_issue_spec.rb[1:1:3:1]": 89.373776451, + "./qa/specs/features/api/1_manage/migration/gitlab_migration_pipeline_spec.rb[1:1:1:1]": 97.451122042, + "./qa/specs/features/api/1_manage/migration/gitlab_migration_project_spec.rb[1:1:4:1]": 101.663654195, + "./qa/specs/features/api/1_manage/rate_limits_spec.rb[1:1:1]": 14.907381728, + "./qa/specs/features/api/2_plan/closes_issue_via_pushing_a_commit_spec.rb[1:1:1]": 25.755076546, + "./qa/specs/features/api/3_create/merge_request/push_options_mwps_spec.rb[1:1:1]": 16.82332341, + "./qa/specs/features/api/3_create/merge_request/push_options_remove_source_branch_spec.rb[1:1:1]": 22.433046338, + "./qa/specs/features/api/3_create/merge_request/push_options_spec.rb[1:1:1]": 15.885700713, + "./qa/specs/features/api/3_create/merge_request/push_options_spec.rb[1:1:2]": 23.919461707, + "./qa/specs/features/api/3_create/merge_request/view_merge_requests_spec.rb[1:1:1:1]": 1.38181908, + "./qa/specs/features/api/3_create/repository/add_list_delete_branches_spec.rb[1:1:1]": 25.431371545, + "./qa/specs/features/api/3_create/repository/commit_to_templated_project_spec.rb[1:1:1]": 22.631262867, + "./qa/specs/features/api/3_create/repository/default_branch_name_setting_spec.rb[1:1:1]": 10.744866525, + "./qa/specs/features/api/3_create/repository/default_branch_name_setting_spec.rb[1:1:2]": 16.048828318, + "./qa/specs/features/api/3_create/repository/project_archive_compare_spec.rb[1:1:1]": 16.670677201, + "./qa/specs/features/api/3_create/repository/push_postreceive_idempotent_spec.rb[1:1:1]": 25.454150535, + "./qa/specs/features/api/3_create/repository/storage_size_spec.rb[1:1:1]": 28.961005929, + "./qa/specs/features/api/3_create/repository/tag_revision_trigger_prereceive_hook_spec.rb[1:1:1:1:1]": 10.547959073, + "./qa/specs/features/api/4_verify/api_variable_inheritance_with_forward_pipeline_variables_spec.rb[1:1:1]": 95.84142065, + "./qa/specs/features/api/4_verify/cancel_pipeline_when_block_user_spec.rb[1:1:1]": 26.575834034, "./qa/specs/features/api/4_verify/file_variable_spec.rb[1:1:1]": 38.339438099, - "./qa/specs/features/api/4_verify/file_variable_spec.rb[1:1:2]": 26.275060548, - "./qa/specs/features/api/4_verify/job_downloads_artifacts_spec.rb[1:1:1]": 30.637977485, - "./qa/specs/features/api/8_monitor/metrics_spec.rb[1:1:2:1]": 2.45174108, - "./qa/specs/features/api/8_monitor/metrics_spec.rb[1:2:1:1]": 2.543010226, - "./qa/specs/features/api/9_tenant_scale/user_inherited_access_spec.rb[1:1:1:1]": 17.709128147, - "./qa/specs/features/api/9_tenant_scale/user_inherited_access_spec.rb[1:1:1:2]": 15.363558925, - "./qa/specs/features/api/9_tenant_scale/user_inherited_access_spec.rb[1:1:1:3]": 11.661238487, - "./qa/specs/features/api/9_tenant_scale/user_inherited_access_spec.rb[1:1:2:1]": 36.005602414, - "./qa/specs/features/api/9_tenant_scale/user_inherited_access_spec.rb[1:1:2:2]": 9.31880064, - "./qa/specs/features/api/9_tenant_scale/user_inherited_access_spec.rb[1:1:2:3]": 9.215154656, - "./qa/specs/features/api/9_tenant_scale/users_spec.rb[1:1:1]": 1.094880454, - "./qa/specs/features/api/9_tenant_scale/users_spec.rb[1:1:2]": 3.32602321, - "./qa/specs/features/api/9_tenant_scale/users_spec.rb[1:1:3]": 3.010533149, - "./qa/specs/features/browser_ui/10_govern/group/group_access_token_spec.rb[1:1:1]": 19.842973029, - "./qa/specs/features/browser_ui/10_govern/login/2fa_recovery_spec.rb[1:1:1]": 54.068209482, - "./qa/specs/features/browser_ui/10_govern/login/2fa_ssh_recovery_spec.rb[1:1:1]": 50.374047094, - "./qa/specs/features/browser_ui/10_govern/login/log_in_spec.rb[1:1:1]": 13.416315795, - "./qa/specs/features/browser_ui/10_govern/login/log_in_with_2fa_spec.rb[1:1:1]": 99.725940112, - "./qa/specs/features/browser_ui/10_govern/login/log_into_gitlab_via_ldap_spec.rb[1:1:1]": 2.246884586, - "./qa/specs/features/browser_ui/10_govern/login/log_into_mattermost_via_gitlab_spec.rb[1:1:1]": 30.622130294, - "./qa/specs/features/browser_ui/10_govern/login/login_via_instance_wide_saml_sso_spec.rb[1:1:1]": 16.142231526, - "./qa/specs/features/browser_ui/10_govern/login/oauth_login_with_github_spec.rb[1:1:1]": 41.299020436, - "./qa/specs/features/browser_ui/10_govern/login/register_spec.rb[1:1:1]": 4.095034301, - "./qa/specs/features/browser_ui/10_govern/login/register_spec.rb[1:2:1:1:1]": 26.826007444, - "./qa/specs/features/browser_ui/10_govern/login/register_spec.rb[1:2:1:2:1]": 8.352220816, - "./qa/specs/features/browser_ui/10_govern/login/register_spec.rb[1:2:2:1]": 45.179710849, - "./qa/specs/features/browser_ui/10_govern/project/project_access_token_spec.rb[1:1:1]": 23.872107364, - "./qa/specs/features/browser_ui/10_govern/user/impersonation_token_spec.rb[1:1:1]": 28.468018175, - "./qa/specs/features/browser_ui/10_govern/user/user_access_termination_spec.rb[1:1:1:1]": 16.019191671, - "./qa/specs/features/browser_ui/10_govern/user/user_access_termination_spec.rb[1:1:1:2]": 10.414160088, - "./qa/specs/features/browser_ui/10_govern/user/user_access_termination_spec.rb[1:1:1:3]": 11.20809648, - "./qa/specs/features/browser_ui/14_analytics/performance_bar_spec.rb[1:1:1:1]": 40.632777364, - "./qa/specs/features/browser_ui/14_analytics/service_ping_default_enabled_spec.rb[1:1:1:1]": 12.320565322, - "./qa/specs/features/browser_ui/14_analytics/service_ping_disabled_spec.rb[1:1:1:1]": 13.042966732, - "./qa/specs/features/browser_ui/1_manage/integrations/jenkins/jenkins_build_status_spec.rb[1:1:1]": 56.880689742, - "./qa/specs/features/browser_ui/1_manage/integrations/jira/jira_basic_integration_spec.rb[1:1:1]": 27.282742596, - "./qa/specs/features/browser_ui/1_manage/integrations/jira/jira_basic_integration_spec.rb[1:1:2]": 29.790416676, - "./qa/specs/features/browser_ui/1_manage/integrations/jira/jira_issue_import_spec.rb[1:1:1]": 50.263795869, - "./qa/specs/features/browser_ui/1_manage/integrations/pipeline_status_emails_spec.rb[1:1:1:1]": 32.827748582, - "./qa/specs/features/browser_ui/1_manage/integrations/pipeline_status_emails_spec.rb[1:1:2:1]": 29.164181829, - "./qa/specs/features/browser_ui/1_manage/migration/gitlab_migration_group_spec.rb[1:1:1]": 59.967414554, - "./qa/specs/features/browser_ui/1_manage/migration/gitlab_migration_user_contribution_reassignment_spec.rb[1:1:1:1]": 178.914027498, - "./qa/specs/features/browser_ui/2_plan/design_management/add_design_content_spec.rb[1:1:1]": 20.491100126, - "./qa/specs/features/browser_ui/2_plan/design_management/archive_design_content_spec.rb[1:1:1]": 26.178544114, - "./qa/specs/features/browser_ui/2_plan/design_management/modify_design_content_spec.rb[1:1:1]": 20.094203457, - "./qa/specs/features/browser_ui/2_plan/email/trigger_email_notification_spec.rb[1:1:1]": 22.630998895, - "./qa/specs/features/browser_ui/2_plan/issue/collapse_comments_in_discussions_spec.rb[1:1:1]": 23.429482699, - "./qa/specs/features/browser_ui/2_plan/issue/comment_issue_spec.rb[1:1:1]": 23.141392028, - "./qa/specs/features/browser_ui/2_plan/issue/create_issue_spec.rb[1:1:1]": 37.946056538, - "./qa/specs/features/browser_ui/2_plan/issue/create_issue_spec.rb[1:1:2]": 77.327870074, + "./qa/specs/features/api/4_verify/file_variable_spec.rb[1:1:2]": 22.450624381, + "./qa/specs/features/api/4_verify/job_downloads_artifacts_spec.rb[1:1:1]": 39.828565691, + "./qa/specs/features/api/5_package/container_registry/saas/container_registry_spec.rb[1:1:1]": 69.770433031, + "./qa/specs/features/api/8_monitor/metrics_spec.rb[1:1:2:1]": 3.441019971, + "./qa/specs/features/api/8_monitor/metrics_spec.rb[1:2:1:1]": 2.555842671, + "./qa/specs/features/api/9_tenant_scale/user_inherited_access_spec.rb[1:1:1:1]": 19.348896522, + "./qa/specs/features/api/9_tenant_scale/user_inherited_access_spec.rb[1:1:1:2]": 24.170824672, + "./qa/specs/features/api/9_tenant_scale/user_inherited_access_spec.rb[1:1:1:3]": 14.626259052, + "./qa/specs/features/api/9_tenant_scale/user_inherited_access_spec.rb[1:1:2:1]": 51.001471196, + "./qa/specs/features/api/9_tenant_scale/user_inherited_access_spec.rb[1:1:2:2]": 23.674467476, + "./qa/specs/features/api/9_tenant_scale/user_inherited_access_spec.rb[1:1:2:3]": 13.010208369, + "./qa/specs/features/api/9_tenant_scale/users_spec.rb[1:1:1]": 1.336549888, + "./qa/specs/features/api/9_tenant_scale/users_spec.rb[1:1:2]": 1.366246076, + "./qa/specs/features/api/9_tenant_scale/users_spec.rb[1:1:3]": 1.184921356, + "./qa/specs/features/browser_ui/10_govern/group/group_access_token_spec.rb[1:1:1]": 18.955245548, + "./qa/specs/features/browser_ui/10_govern/login/2fa_recovery_spec.rb[1:1:1]": 51.379482902, + "./qa/specs/features/browser_ui/10_govern/login/2fa_ssh_recovery_spec.rb[1:1:1]": 63.15838517, + "./qa/specs/features/browser_ui/10_govern/login/log_in_spec.rb[1:1:1]": 13.427990734, + "./qa/specs/features/browser_ui/10_govern/login/log_in_with_2fa_spec.rb[1:1:1]": 94.549567111, + "./qa/specs/features/browser_ui/10_govern/login/log_into_gitlab_via_ldap_spec.rb[1:1:1]": 4.26200593, + "./qa/specs/features/browser_ui/10_govern/login/log_into_mattermost_via_gitlab_spec.rb[1:1:1]": 30.355360322, + "./qa/specs/features/browser_ui/10_govern/login/login_via_instance_wide_saml_sso_spec.rb[1:1:1]": 16.78395848, + "./qa/specs/features/browser_ui/10_govern/login/oauth_login_with_github_spec.rb[1:1:1]": 41.820836674, + "./qa/specs/features/browser_ui/10_govern/login/register_spec.rb[1:1:1]": 5.349373207, + "./qa/specs/features/browser_ui/10_govern/login/register_spec.rb[1:2:1:1:1]": 30.407343205, + "./qa/specs/features/browser_ui/10_govern/login/register_spec.rb[1:2:1:2:1]": 11.27543333, + "./qa/specs/features/browser_ui/10_govern/login/register_spec.rb[1:2:2:1]": 54.859950452, + "./qa/specs/features/browser_ui/10_govern/project/project_access_token_spec.rb[1:1:1]": 25.906346348, + "./qa/specs/features/browser_ui/10_govern/user/impersonation_token_spec.rb[1:1:1]": 30.138602861, + "./qa/specs/features/browser_ui/10_govern/user/user_access_termination_spec.rb[1:1:1:1]": 17.501210842, + "./qa/specs/features/browser_ui/10_govern/user/user_access_termination_spec.rb[1:1:1:2]": 14.857275617, + "./qa/specs/features/browser_ui/10_govern/user/user_access_termination_spec.rb[1:1:1:3]": 11.779740276, + "./qa/specs/features/browser_ui/14_analytics/performance_bar_spec.rb[1:1:1:1]": 60.04423653, + "./qa/specs/features/browser_ui/14_analytics/service_ping_default_enabled_spec.rb[1:1:1:1]": 18.762676849, + "./qa/specs/features/browser_ui/14_analytics/service_ping_disabled_spec.rb[1:1:1:1]": 13.578009866, + "./qa/specs/features/browser_ui/1_manage/integrations/jenkins/jenkins_build_status_spec.rb[1:1:1]": 61.994387357, + "./qa/specs/features/browser_ui/1_manage/integrations/jira/jira_basic_integration_spec.rb[1:1:1]": 32.323934519, + "./qa/specs/features/browser_ui/1_manage/integrations/jira/jira_basic_integration_spec.rb[1:1:2]": 32.903286345, + "./qa/specs/features/browser_ui/1_manage/integrations/jira/jira_issue_import_spec.rb[1:1:1]": 46.776170762, + "./qa/specs/features/browser_ui/1_manage/integrations/pipeline_status_emails_spec.rb[1:1:1:1]": 31.463382563, + "./qa/specs/features/browser_ui/1_manage/integrations/pipeline_status_emails_spec.rb[1:1:2:1]": 42.321370407, + "./qa/specs/features/browser_ui/1_manage/migration/gitlab_migration_group_spec.rb[1:1:1]": 57.03791635, + "./qa/specs/features/browser_ui/1_manage/migration/gitlab_migration_user_contribution_reassignment_spec.rb[1:1:1:1]": 181.520241604, + "./qa/specs/features/browser_ui/2_plan/design_management/add_design_content_spec.rb[1:1:1]": 23.031130269, + "./qa/specs/features/browser_ui/2_plan/design_management/archive_design_content_spec.rb[1:1:1]": 29.780177896, + "./qa/specs/features/browser_ui/2_plan/design_management/modify_design_content_spec.rb[1:1:1]": 30.636613756, + "./qa/specs/features/browser_ui/2_plan/email/trigger_email_notification_spec.rb[1:1:1]": 16.470446876, + "./qa/specs/features/browser_ui/2_plan/issue/collapse_comments_in_discussions_spec.rb[1:1:1]": 23.402340109, + "./qa/specs/features/browser_ui/2_plan/issue/comment_issue_spec.rb[1:1:1]": 26.608420993, + "./qa/specs/features/browser_ui/2_plan/issue/create_issue_spec.rb[1:1:1]": 50.166656359, + "./qa/specs/features/browser_ui/2_plan/issue/create_issue_spec.rb[1:1:2]": 79.755011129, "./qa/specs/features/browser_ui/2_plan/issue/create_issue_spec.rb[1:1:3:1]": 19.192317945, - "./qa/specs/features/browser_ui/2_plan/issue/create_issue_spec.rb[1:1:3]": 43.486121815, - "./qa/specs/features/browser_ui/2_plan/issue/create_issue_spec.rb[1:1:4:1]": 32.48329391, - "./qa/specs/features/browser_ui/2_plan/issue/custom_issue_template_spec.rb[1:1:1]": 22.576892653, - "./qa/specs/features/browser_ui/2_plan/issue/export_as_csv_spec.rb[1:1:1]": 38.055066272, - "./qa/specs/features/browser_ui/2_plan/issue/filter_issue_comments_spec.rb[1:1:1]": 22.468371256, - "./qa/specs/features/browser_ui/2_plan/issue/issue_suggestions_spec.rb[1:1:1]": 24.090504464, - "./qa/specs/features/browser_ui/2_plan/issue/mentions_spec.rb[1:1:1]": 28.753010077, - "./qa/specs/features/browser_ui/2_plan/issue/real_time_assignee_spec.rb[1:1:1]": 22.667435895, - "./qa/specs/features/browser_ui/2_plan/issue_boards/focus_mode_spec.rb[1:1:1]": 11.468357899, - "./qa/specs/features/browser_ui/2_plan/milestone/assign_milestone_spec.rb[1:1:1:1:1]": 24.081942784, - "./qa/specs/features/browser_ui/2_plan/milestone/assign_milestone_spec.rb[1:1:1:2:1]": 28.921730977, - "./qa/specs/features/browser_ui/2_plan/milestone/assign_milestone_spec.rb[1:1:2:1:1]": 20.003303148, - "./qa/specs/features/browser_ui/2_plan/milestone/assign_milestone_spec.rb[1:1:2:2:1]": 34.461559868, - "./qa/specs/features/browser_ui/2_plan/milestone/create_group_milestone_spec.rb[1:1:1]": 15.670750371, - "./qa/specs/features/browser_ui/2_plan/milestone/create_project_milestone_spec.rb[1:1:1]": 26.489814779, - "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_content_creation_spec.rb[1:1:1]": 17.480163238, - "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_content_creation_spec.rb[1:1:2]": 16.161782883, - "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_content_creation_spec.rb[1:1:3]": 8.963587306, - "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_content_creation_spec.rb[1:1:4]": 16.785923168, - "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_content_creation_spec.rb[1:1:5]": 11.198987282, - "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_content_manipulation_spec.rb[1:1:1]": 20.485155021, - "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_content_manipulation_spec.rb[1:1:2]": 13.118540923, - "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_content_manipulation_spec.rb[1:1:3]": 14.05758908, - "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_directory_management_spec.rb[1:1:1]": 13.196745475, - "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_file_upload_spec.rb[1:1:1]": 33.939516299, - "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_list_spec.rb[1:1:1:1]": 19.302693031, - "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_list_spec.rb[1:1:2:1]": 45.684139675, - "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_page_deletion_spec.rb[1:1:1]": 14.591434131, - "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_page_deletion_spec.rb[1:1:2]": 24.004936456, - "./qa/specs/features/browser_ui/2_plan/related_issues/related_issues_spec.rb[1:1:1]": 23.637905719, - "./qa/specs/features/browser_ui/3_create/merge_request/add_batch_comments_in_merge_request_spec.rb[1:1:1]": 52.769548662, - "./qa/specs/features/browser_ui/3_create/merge_request/add_batch_comments_in_merge_request_spec.rb[1:1:2]": 42.035416384, - "./qa/specs/features/browser_ui/3_create/merge_request/cherry_pick/cherry_pick_a_merge_spec.rb[1:1:1]": 61.876072121, - "./qa/specs/features/browser_ui/3_create/merge_request/cherry_pick/cherry_pick_commit_spec.rb[1:1:1]": 38.641931169, - "./qa/specs/features/browser_ui/3_create/merge_request/create_merge_request_spec.rb[1:1:1]": 42.64082497, - "./qa/specs/features/browser_ui/3_create/merge_request/create_merge_request_spec.rb[1:1:2]": 56.632219461, - "./qa/specs/features/browser_ui/3_create/merge_request/merge_merge_request_from_fork_spec.rb[1:1:1]": 32.097362975, - "./qa/specs/features/browser_ui/3_create/merge_request/merge_request_set_to_auto_merge_spec.rb[1:1:1]": 98.399291819, - "./qa/specs/features/browser_ui/3_create/merge_request/rebase_merge_request_spec.rb[1:1:1]": 78.358625484, - "./qa/specs/features/browser_ui/3_create/merge_request/revert/revert_commit_spec.rb[1:1:1]": 29.099789056, - "./qa/specs/features/browser_ui/3_create/merge_request/revert/reverting_merge_request_spec.rb[1:1:1]": 63.884452512, - "./qa/specs/features/browser_ui/3_create/merge_request/suggestions/batch_suggestion_spec.rb[1:1:1]": 73.312219981, - "./qa/specs/features/browser_ui/3_create/merge_request/suggestions/custom_commit_suggestion_spec.rb[1:1:1]": 59.663104611, - "./qa/specs/features/browser_ui/3_create/merge_request/view_merge_request_diff_patch_spec.rb[1:1:1]": 32.396078123, - "./qa/specs/features/browser_ui/3_create/merge_request/view_merge_request_diff_patch_spec.rb[1:1:2]": 16.132714962, - "./qa/specs/features/browser_ui/3_create/repository/add_file_template_spec.rb[1:1:1]": 23.227132854, - "./qa/specs/features/browser_ui/3_create/repository/add_new_branch_rule_spec.rb[1:1:1]": 20.079322063, - "./qa/specs/features/browser_ui/3_create/repository/branch_with_unusual_name_spec.rb[1:1:1:1]": 11.048957115, - "./qa/specs/features/browser_ui/3_create/repository/clone_spec.rb[1:1:1]": 23.36198926, - "./qa/specs/features/browser_ui/3_create/repository/clone_spec.rb[1:1:2]": 13.015738711, - "./qa/specs/features/browser_ui/3_create/repository/license_detection_spec.rb[1:1:1:1:1]": 16.35847164, - "./qa/specs/features/browser_ui/3_create/repository/license_detection_spec.rb[1:1:2:1:1]": 19.224709842, - "./qa/specs/features/browser_ui/3_create/repository/protected_tags_spec.rb[1:1:1:1:1]": 15.99065385, - "./qa/specs/features/browser_ui/3_create/repository/protected_tags_spec.rb[1:1:1:2:1]": 13.471928766, - "./qa/specs/features/browser_ui/3_create/repository/protected_tags_spec.rb[1:1:2:1:1]": 30.205651993, - "./qa/specs/features/browser_ui/3_create/repository/protected_tags_spec.rb[1:1:2:2:1]": 32.359674218, - "./qa/specs/features/browser_ui/3_create/repository/protocol_v2_push_http_spec.rb[1:1:1]": 11.203736041, - "./qa/specs/features/browser_ui/3_create/repository/protocol_v2_push_ssh_spec.rb[1:1:1]": 28.745375984, - "./qa/specs/features/browser_ui/3_create/repository/push_http_private_token_spec.rb[1:1:1]": 25.42428777, - "./qa/specs/features/browser_ui/3_create/repository/push_mirroring_lfs_over_http_spec.rb[1:1:1]": 61.079432326, - "./qa/specs/features/browser_ui/3_create/repository/push_mirroring_over_http_spec.rb[1:1:1]": 74.21166571, - "./qa/specs/features/browser_ui/3_create/repository/push_over_http_file_size_spec.rb[1:1:1]": 6.181773063, - "./qa/specs/features/browser_ui/3_create/repository/push_over_http_file_size_spec.rb[1:1:2]": 37.065303769, - "./qa/specs/features/browser_ui/3_create/repository/push_over_http_spec.rb[1:1:1]": 22.355002941, - "./qa/specs/features/browser_ui/3_create/repository/push_over_http_spec.rb[1:1:2]": 7.257366591, - "./qa/specs/features/browser_ui/3_create/repository/push_over_ssh_file_size_spec.rb[1:1:1]": 13.150204156, - "./qa/specs/features/browser_ui/3_create/repository/push_over_ssh_file_size_spec.rb[1:1:2]": 40.21140093, - "./qa/specs/features/browser_ui/3_create/repository/push_over_ssh_spec.rb[1:1:1]": 34.840660095, + "./qa/specs/features/browser_ui/2_plan/issue/create_issue_spec.rb[1:1:3]": 41.653582947, + "./qa/specs/features/browser_ui/2_plan/issue/create_issue_spec.rb[1:1:4:1]": 35.53447155, + "./qa/specs/features/browser_ui/2_plan/issue/custom_issue_template_spec.rb[1:1:1]": 30.203090855, + "./qa/specs/features/browser_ui/2_plan/issue/export_as_csv_spec.rb[1:1:1]": 40.13231434, + "./qa/specs/features/browser_ui/2_plan/issue/filter_issue_comments_spec.rb[1:1:1]": 24.860881753, + "./qa/specs/features/browser_ui/2_plan/issue/issue_suggestions_spec.rb[1:1:1]": 24.575106282, + "./qa/specs/features/browser_ui/2_plan/issue/mentions_spec.rb[1:1:1]": 33.018544554, + "./qa/specs/features/browser_ui/2_plan/issue/real_time_assignee_spec.rb[1:1:1]": 26.291870234, + "./qa/specs/features/browser_ui/2_plan/issue_boards/focus_mode_spec.rb[1:1:1]": 17.561810633, + "./qa/specs/features/browser_ui/2_plan/milestone/assign_milestone_spec.rb[1:1:1:1:1]": 22.440761271, + "./qa/specs/features/browser_ui/2_plan/milestone/assign_milestone_spec.rb[1:1:1:2:1]": 31.444776575, + "./qa/specs/features/browser_ui/2_plan/milestone/assign_milestone_spec.rb[1:1:2:1:1]": 23.178259523, + "./qa/specs/features/browser_ui/2_plan/milestone/assign_milestone_spec.rb[1:1:2:2:1]": 29.272861013, + "./qa/specs/features/browser_ui/2_plan/milestone/create_group_milestone_spec.rb[1:1:1]": 22.587552274, + "./qa/specs/features/browser_ui/2_plan/milestone/create_project_milestone_spec.rb[1:1:1]": 28.049283666, + "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_content_creation_spec.rb[1:1:1]": 23.12513144, + "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_content_creation_spec.rb[1:1:2]": 23.443624658, + "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_content_creation_spec.rb[1:1:3]": 20.226439048, + "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_content_creation_spec.rb[1:1:4]": 21.256583969, + "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_content_creation_spec.rb[1:1:5]": 20.823287252, + "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_content_manipulation_spec.rb[1:1:1]": 21.090504447, + "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_content_manipulation_spec.rb[1:1:2]": 25.64451491, + "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_content_manipulation_spec.rb[1:1:3]": 22.684120766, + "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_directory_management_spec.rb[1:1:1]": 25.037219196, + "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_file_upload_spec.rb[1:1:1]": 38.413254353, + "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_list_spec.rb[1:1:1:1]": 26.433149641, + "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_list_spec.rb[1:1:2:1]": 44.164948365, + "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_page_deletion_spec.rb[1:1:1]": 21.702903312, + "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_page_deletion_spec.rb[1:1:2]": 37.389795155, + "./qa/specs/features/browser_ui/2_plan/related_issues/related_issues_spec.rb[1:1:1]": 24.049024633, + "./qa/specs/features/browser_ui/3_create/merge_request/add_batch_comments_in_merge_request_spec.rb[1:1:1]": 39.380097829, + "./qa/specs/features/browser_ui/3_create/merge_request/add_batch_comments_in_merge_request_spec.rb[1:1:2]": 43.974151901, + "./qa/specs/features/browser_ui/3_create/merge_request/cherry_pick/cherry_pick_a_merge_spec.rb[1:1:1]": 65.769218013, + "./qa/specs/features/browser_ui/3_create/merge_request/cherry_pick/cherry_pick_commit_spec.rb[1:1:1]": 30.017509364, + "./qa/specs/features/browser_ui/3_create/merge_request/create_merge_request_spec.rb[1:1:1]": 43.686323806, + "./qa/specs/features/browser_ui/3_create/merge_request/create_merge_request_spec.rb[1:1:2]": 48.765681966, + "./qa/specs/features/browser_ui/3_create/merge_request/merge_merge_request_from_fork_spec.rb[1:1:1]": 46.535589667, + "./qa/specs/features/browser_ui/3_create/merge_request/merge_request_set_to_auto_merge_spec.rb[1:1:1]": 85.059614424, + "./qa/specs/features/browser_ui/3_create/merge_request/rebase_merge_request_spec.rb[1:1:1]": 58.678788745, + "./qa/specs/features/browser_ui/3_create/merge_request/revert/revert_commit_spec.rb[1:1:1]": 38.031947034, + "./qa/specs/features/browser_ui/3_create/merge_request/revert/reverting_merge_request_spec.rb[1:1:1]": 107.744959716, + "./qa/specs/features/browser_ui/3_create/merge_request/suggestions/batch_suggestion_spec.rb[1:1:1]": 64.079688598, + "./qa/specs/features/browser_ui/3_create/merge_request/suggestions/custom_commit_suggestion_spec.rb[1:1:1]": 60.464588091, + "./qa/specs/features/browser_ui/3_create/merge_request/view_merge_request_diff_patch_spec.rb[1:1:1]": 21.720265151, + "./qa/specs/features/browser_ui/3_create/merge_request/view_merge_request_diff_patch_spec.rb[1:1:2]": 25.855064648, + "./qa/specs/features/browser_ui/3_create/repository/add_file_template_spec.rb[1:1:1]": 27.119274477, + "./qa/specs/features/browser_ui/3_create/repository/add_new_branch_rule_spec.rb[1:1:1]": 30.340932638, + "./qa/specs/features/browser_ui/3_create/repository/branch_with_unusual_name_spec.rb[1:1:1:1]": 24.416460797, + "./qa/specs/features/browser_ui/3_create/repository/clone_spec.rb[1:1:1]": 12.253554388, + "./qa/specs/features/browser_ui/3_create/repository/clone_spec.rb[1:1:2]": 13.985884213, + "./qa/specs/features/browser_ui/3_create/repository/license_detection_spec.rb[1:1:1:1:1]": 17.595488997, + "./qa/specs/features/browser_ui/3_create/repository/license_detection_spec.rb[1:1:2:1:1]": 19.611088383, + "./qa/specs/features/browser_ui/3_create/repository/protected_tags_spec.rb[1:1:1:1:1]": 23.786550765, + "./qa/specs/features/browser_ui/3_create/repository/protected_tags_spec.rb[1:1:1:2:1]": 24.244541958, + "./qa/specs/features/browser_ui/3_create/repository/protected_tags_spec.rb[1:1:2:1:1]": 46.403243034, + "./qa/specs/features/browser_ui/3_create/repository/protected_tags_spec.rb[1:1:2:2:1]": 48.300600979, + "./qa/specs/features/browser_ui/3_create/repository/protocol_v2_push_http_spec.rb[1:1:1]": 24.264817229, + "./qa/specs/features/browser_ui/3_create/repository/protocol_v2_push_ssh_spec.rb[1:1:1]": 27.222468229, + "./qa/specs/features/browser_ui/3_create/repository/push_http_private_token_spec.rb[1:1:1]": 49.703005927, + "./qa/specs/features/browser_ui/3_create/repository/push_mirroring_lfs_over_http_spec.rb[1:1:1]": 84.31200969, + "./qa/specs/features/browser_ui/3_create/repository/push_mirroring_over_http_spec.rb[1:1:1]": 77.096792386, + "./qa/specs/features/browser_ui/3_create/repository/push_over_http_file_size_spec.rb[1:1:1]": 13.776653416, + "./qa/specs/features/browser_ui/3_create/repository/push_over_http_file_size_spec.rb[1:1:2]": 40.816066648, + "./qa/specs/features/browser_ui/3_create/repository/push_over_http_spec.rb[1:1:1]": 22.60529955, + "./qa/specs/features/browser_ui/3_create/repository/push_over_http_spec.rb[1:1:2]": 20.738672576, + "./qa/specs/features/browser_ui/3_create/repository/push_over_ssh_file_size_spec.rb[1:1:1]": 54.642597298, + "./qa/specs/features/browser_ui/3_create/repository/push_over_ssh_file_size_spec.rb[1:1:2]": 46.060314047, + "./qa/specs/features/browser_ui/3_create/repository/push_over_ssh_spec.rb[1:1:1]": 25.32488472, "./qa/specs/features/browser_ui/3_create/repository/push_over_ssh_spec.rb[1:1:2]": 31.79158833, - "./qa/specs/features/browser_ui/3_create/repository/push_protected_branch_spec.rb[1:1:1:1]": 8.917192596, - "./qa/specs/features/browser_ui/3_create/repository/push_to_canary_gitaly_spec.rb[1:1:1]": 21.862953077, - "./qa/specs/features/browser_ui/3_create/repository/ssh_key_support_create_spec.rb[1:1:1]": 21.292720569, - "./qa/specs/features/browser_ui/3_create/repository/ssh_key_support_delete_spec.rb[1:1:1]": 24.869882249, - "./qa/specs/features/browser_ui/3_create/repository/user_views_commit_diff_patch_spec.rb[1:1:1]": 14.558159641, - "./qa/specs/features/browser_ui/3_create/repository/user_views_commit_diff_patch_spec.rb[1:1:2]": 17.566540964, - "./qa/specs/features/browser_ui/3_create/snippet/add_comment_to_snippet_spec.rb[1:1:1]": 24.469544398, - "./qa/specs/features/browser_ui/3_create/snippet/add_file_to_snippet_spec.rb[1:1:1:1]": 12.282830136, - "./qa/specs/features/browser_ui/3_create/snippet/add_file_to_snippet_spec.rb[1:1:2:1]": 12.12213387, - "./qa/specs/features/browser_ui/3_create/snippet/clone_push_pull_personal_snippet_spec.rb[1:1:1]": 20.746925962, - "./qa/specs/features/browser_ui/3_create/snippet/clone_push_pull_personal_snippet_spec.rb[1:1:2]": 28.358058036, - "./qa/specs/features/browser_ui/3_create/snippet/clone_push_pull_project_snippet_spec.rb[1:1:1]": 23.832544748, - "./qa/specs/features/browser_ui/3_create/snippet/clone_push_pull_project_snippet_spec.rb[1:1:2]": 25.002888146, - "./qa/specs/features/browser_ui/3_create/snippet/copy_snippet_file_contents_spec.rb[1:1:1]": 10.025282312, + "./qa/specs/features/browser_ui/3_create/repository/push_protected_branch_spec.rb[1:1:1:1]": 22.332861645, + "./qa/specs/features/browser_ui/3_create/repository/push_to_canary_gitaly_spec.rb[1:1:1]": 21.55505836, + "./qa/specs/features/browser_ui/3_create/repository/ssh_key_support_create_spec.rb[1:1:1]": 29.287778902, + "./qa/specs/features/browser_ui/3_create/repository/ssh_key_support_delete_spec.rb[1:1:1]": 26.294830596, + "./qa/specs/features/browser_ui/3_create/repository/user_views_commit_diff_patch_spec.rb[1:1:1]": 28.096424682, + "./qa/specs/features/browser_ui/3_create/repository/user_views_commit_diff_patch_spec.rb[1:1:2]": 36.954696155, + "./qa/specs/features/browser_ui/3_create/snippet/add_comment_to_snippet_spec.rb[1:1:1]": 31.803789523, + "./qa/specs/features/browser_ui/3_create/snippet/add_file_to_snippet_spec.rb[1:1:1:1]": 22.732435543, + "./qa/specs/features/browser_ui/3_create/snippet/add_file_to_snippet_spec.rb[1:1:2:1]": 28.857938419, + "./qa/specs/features/browser_ui/3_create/snippet/clone_push_pull_personal_snippet_spec.rb[1:1:1]": 41.646466243, + "./qa/specs/features/browser_ui/3_create/snippet/clone_push_pull_personal_snippet_spec.rb[1:1:2]": 42.259416914, + "./qa/specs/features/browser_ui/3_create/snippet/clone_push_pull_project_snippet_spec.rb[1:1:1]": 34.00738778, + "./qa/specs/features/browser_ui/3_create/snippet/clone_push_pull_project_snippet_spec.rb[1:1:2]": 39.034380064, + "./qa/specs/features/browser_ui/3_create/snippet/copy_snippet_file_contents_spec.rb[1:1:1]": 20.481249541, "./qa/specs/features/browser_ui/3_create/snippet/create_personal_snippet_spec.rb[1:1:1]": 8.514641421, - "./qa/specs/features/browser_ui/3_create/snippet/create_personal_snippet_with_multiple_files_spec.rb[1:1:1]": 9.570704381, - "./qa/specs/features/browser_ui/3_create/snippet/create_project_snippet_with_multiple_files_spec.rb[1:1:1]": 23.238740797, - "./qa/specs/features/browser_ui/3_create/snippet/delete_file_from_snippet_spec.rb[1:1:1:1]": 12.62292352, - "./qa/specs/features/browser_ui/3_create/snippet/delete_file_from_snippet_spec.rb[1:1:2:1]": 10.834680269, - "./qa/specs/features/browser_ui/3_create/snippet/share_snippet_spec.rb[1:1:1:1]": 16.720444873, - "./qa/specs/features/browser_ui/3_create/snippet/share_snippet_spec.rb[1:1:2:1]": 8.559771574, - "./qa/specs/features/browser_ui/3_create/source_editor/source_editor_toolbar_spec.rb[1:1:1]": 17.545476927, - "./qa/specs/features/browser_ui/3_create/web_ide/add_first_file_in_web_ide_spec.rb[1:1:1:1]": 15.337022288, - "./qa/specs/features/browser_ui/3_create/web_ide/add_first_file_in_web_ide_spec.rb[1:1:2:1]": 19.325647307, - "./qa/specs/features/browser_ui/3_create/web_ide/add_new_directory_in_web_ide_spec.rb[1:1:1:1]": 19.970118521, - "./qa/specs/features/browser_ui/3_create/web_ide/add_new_directory_in_web_ide_spec.rb[1:1:2:1]": 46.230444442, - "./qa/specs/features/browser_ui/3_create/web_ide/closing_web_ide_with_unsaved_changes_spec.rb[1:1:1]": 15.322529505, - "./qa/specs/features/browser_ui/3_create/web_ide/settings_sync_web_ide_spec.rb[1:1:1]": 38.605173874, - "./qa/specs/features/browser_ui/3_create/web_ide/settings_sync_web_ide_spec.rb[1:1:2]": 70.033467995, - "./qa/specs/features/browser_ui/3_create/web_ide/settings_sync_web_ide_spec.rb[1:1:3]": 57.834910191, - "./qa/specs/features/browser_ui/3_create/web_ide/upload_new_file_in_web_ide_spec.rb[1:1:1:1]": 21.128669031, - "./qa/specs/features/browser_ui/3_create/web_ide/upload_new_file_in_web_ide_spec.rb[1:1:2:1:1:1]": 22.947599501, - "./qa/specs/features/browser_ui/3_create/web_ide/upload_new_file_in_web_ide_spec.rb[1:1:2:2:1:1]": 22.543234411, - "./qa/specs/features/browser_ui/4_verify/ci_components_catalog/ci_catalog_sorting_spec.rb[1:1:1:2:1:1]": 40.289516183, - "./qa/specs/features/browser_ui/4_verify/ci_components_catalog/ci_catalog_sorting_spec.rb[1:1:1:2:2:1]": 42.139166307, - "./qa/specs/features/browser_ui/4_verify/ci_components_catalog/release_with_glab_spec.rb[1:1:1]": 43.814415689, - "./qa/specs/features/browser_ui/4_verify/ci_components_catalog/release_with_glab_spec.rb[1:1:2]": 89.828070503, - "./qa/specs/features/browser_ui/4_verify/ci_components_catalog/release_with_release_cli_spec.rb[1:1:1]": 49.331168207, - "./qa/specs/features/browser_ui/4_verify/ci_components_catalog/release_with_release_cli_spec.rb[1:1:2]": 64.503743081, - "./qa/specs/features/browser_ui/4_verify/ci_components_catalog/run_component_in_project_pipeline_spec.rb[1:1:1]": 57.249749289, - "./qa/specs/features/browser_ui/4_verify/ci_job_artifacts/expose_job_artifacts_in_mr_spec.rb[1:1:1:1]": 58.427087267, - "./qa/specs/features/browser_ui/4_verify/ci_job_artifacts/job_artifacts_access_keyword_spec.rb[1:1:1:1:1]": 37.88045582, - "./qa/specs/features/browser_ui/4_verify/ci_job_artifacts/job_artifacts_access_keyword_spec.rb[1:1:1:1:2]": 42.23150283, - "./qa/specs/features/browser_ui/4_verify/ci_job_artifacts/job_artifacts_access_keyword_spec.rb[1:1:2:1:1]": 28.495182256, - "./qa/specs/features/browser_ui/4_verify/ci_job_artifacts/job_artifacts_access_keyword_spec.rb[1:1:2:1:2]": 33.852906157, - "./qa/specs/features/browser_ui/4_verify/ci_job_artifacts/job_artifacts_access_keyword_spec.rb[1:1:3:1:1]": 56.48666018, - "./qa/specs/features/browser_ui/4_verify/ci_job_artifacts/job_artifacts_access_keyword_spec.rb[1:1:3:1:2]": 50.493116281, - "./qa/specs/features/browser_ui/4_verify/ci_job_artifacts/unlocking_job_artifacts_across_pipelines_spec.rb[1:1:1:1]": 116.696954997, - "./qa/specs/features/browser_ui/4_verify/ci_job_artifacts/unlocking_job_artifacts_across_pipelines_spec.rb[1:1:2:1]": 103.147351345, - "./qa/specs/features/browser_ui/4_verify/ci_job_artifacts/unlocking_job_artifacts_across_pipelines_spec.rb[1:1:3:1]": 92.601530348, - "./qa/specs/features/browser_ui/4_verify/ci_project_artifacts/user_can_bulk_delete_artifacts_spec.rb[1:1:1:1]": 54.950096164, - "./qa/specs/features/browser_ui/4_verify/ci_variable/pipeline_with_protected_variable_spec.rb[1:1:1]": 67.373402741, - "./qa/specs/features/browser_ui/4_verify/ci_variable/pipeline_with_protected_variable_spec.rb[1:1:2]": 55.50224014, - "./qa/specs/features/browser_ui/4_verify/ci_variable/raw_variables_defined_in_yaml_spec.rb[1:1:1]": 35.246744232, - "./qa/specs/features/browser_ui/4_verify/ci_variable/ui_variable_inheritable_when_forward_pipeline_variables_true_spec.rb[1:1:1]": 94.619528505, - "./qa/specs/features/browser_ui/4_verify/pipeline/include_local_config_file_paths_with_wildcard_spec.rb[1:1:1]": 13.837831845, - "./qa/specs/features/browser_ui/4_verify/pipeline/include_multiple_files_from_a_project_spec.rb[1:1:1]": 60.85158251, - "./qa/specs/features/browser_ui/4_verify/pipeline/include_multiple_files_from_multiple_projects_spec.rb[1:1:1]": 45.45791998, - "./qa/specs/features/browser_ui/4_verify/pipeline/parent_child_pipelines_independent_relationship_spec.rb[1:1:1]": 41.031666213, - "./qa/specs/features/browser_ui/4_verify/pipeline/parent_child_pipelines_independent_relationship_spec.rb[1:1:2]": 49.814639742, - "./qa/specs/features/browser_ui/4_verify/pipeline/pass_dotenv_variables_to_downstream_via_bridge_spec.rb[1:1:1]": 46.28532263, - "./qa/specs/features/browser_ui/4_verify/pipeline/run_pipeline_with_manual_jobs_spec.rb[1:1:1]": 73.642136838, - "./qa/specs/features/browser_ui/4_verify/pipeline/trigger_child_pipeline_with_manual_spec.rb[1:1:1]": 77.531970216, - "./qa/specs/features/browser_ui/4_verify/pipeline/trigger_matrix_spec.rb[1:1:1]": 48.58576106, - "./qa/specs/features/browser_ui/4_verify/pipeline/update_ci_file_with_pipeline_editor_spec.rb[1:1:1]": 31.212123043, - "./qa/specs/features/browser_ui/4_verify/runner/deprecated_registration_token_spec.rb[1:1:1]": 17.247276666, - "./qa/specs/features/browser_ui/4_verify/runner/deprecated_unregister_runner_spec.rb[1:1:1]": 30.996238731, - "./qa/specs/features/browser_ui/4_verify/runner/fleet_visibility/group_runner_counts_spec.rb[1:1:1]": 23.910167087, - "./qa/specs/features/browser_ui/4_verify/runner/fleet_visibility/group_runner_status_counts_spec.rb[1:1:1]": 8.92125161, - "./qa/specs/features/browser_ui/4_verify/runner/register_group_runner_spec.rb[1:1:1]": 17.1114281, - "./qa/specs/features/browser_ui/4_verify/runner/register_project_runner_spec.rb[1:1:1]": 34.284755192, - "./qa/specs/features/browser_ui/4_verify/runner/unregister_runner_spec.rb[1:1:1]": 21.522259966, - "./qa/specs/features/browser_ui/4_verify/testing/endpoint_coverage_spec.rb[1:1:1]": 52.162786658, - "./qa/specs/features/browser_ui/5_package/container_registry/self_managed/container_registry_spec.rb[1:1:1:1:1]": 146.154153543, - "./qa/specs/features/browser_ui/5_package/container_registry/self_managed/container_registry_spec.rb[1:1:1:2:1]": 115.943100625, - "./qa/specs/features/browser_ui/5_package/container_registry/self_managed/container_registry_spec.rb[1:1:1:3:1]": 111.402759756, - "./qa/specs/features/browser_ui/5_package/dependency_proxy/dependency_proxy_spec.rb[1:1:1:1]": 71.277723639, - "./qa/specs/features/browser_ui/5_package/dependency_proxy/dependency_proxy_spec.rb[1:1:2:1]": 54.689207583, - "./qa/specs/features/browser_ui/5_package/dependency_proxy/dependency_proxy_spec.rb[1:1:3:1]": 54.757033762, - "./qa/specs/features/browser_ui/5_package/package_registry/composer_registry_spec.rb[1:1:1]": 59.730133437, - "./qa/specs/features/browser_ui/5_package/package_registry/conan_repository_spec.rb[1:1:1]": 68.298383306, - "./qa/specs/features/browser_ui/5_package/package_registry/generic_repository_spec.rb[1:1:1]": 75.839250653, - "./qa/specs/features/browser_ui/5_package/package_registry/helm_registry_spec.rb[1:1:1:1]": 75.65294101, - "./qa/specs/features/browser_ui/5_package/package_registry/helm_registry_spec.rb[1:1:2:1]": 80.867995968, - "./qa/specs/features/browser_ui/5_package/package_registry/helm_registry_spec.rb[1:1:3:1]": 90.699541198, - "./qa/specs/features/browser_ui/5_package/package_registry/maven/maven_group_level_spec.rb[1:1:1:1:1]": 87.188600827, - "./qa/specs/features/browser_ui/5_package/package_registry/maven/maven_group_level_spec.rb[1:1:1:2:1]": 103.820617753, - "./qa/specs/features/browser_ui/5_package/package_registry/maven/maven_group_level_spec.rb[1:1:1:3:1]": 87.31873587, - "./qa/specs/features/browser_ui/5_package/package_registry/maven/maven_group_level_spec.rb[1:1:2:1:1]": 103.043612908, - "./qa/specs/features/browser_ui/5_package/package_registry/maven/maven_group_level_spec.rb[1:1:2:2:1]": 103.018627661, - "./qa/specs/features/browser_ui/5_package/package_registry/maven/maven_project_level_spec.rb[1:1:1:1]": 78.331236473, - "./qa/specs/features/browser_ui/5_package/package_registry/maven/maven_project_level_spec.rb[1:1:2:1]": 95.304926221, - "./qa/specs/features/browser_ui/5_package/package_registry/maven/maven_project_level_spec.rb[1:1:3:1]": 95.700042701, - "./qa/specs/features/browser_ui/5_package/package_registry/maven_gradle_repository_spec.rb[1:1:1:1]": 74.445114347, - "./qa/specs/features/browser_ui/5_package/package_registry/maven_gradle_repository_spec.rb[1:1:2:1]": 93.645475266, - "./qa/specs/features/browser_ui/5_package/package_registry/maven_gradle_repository_spec.rb[1:1:3:1]": 91.607946373, - "./qa/specs/features/browser_ui/5_package/package_registry/npm/npm_group_level_spec.rb[1:1:1:1]": 119.453513318, - "./qa/specs/features/browser_ui/5_package/package_registry/npm/npm_group_level_spec.rb[1:1:2:1]": 80.214364824, - "./qa/specs/features/browser_ui/5_package/package_registry/npm/npm_group_level_spec.rb[1:1:3:1]": 98.242708564, - "./qa/specs/features/browser_ui/5_package/package_registry/npm/npm_instance_level_spec.rb[1:1:1:1]": 107.086381456, - "./qa/specs/features/browser_ui/5_package/package_registry/npm/npm_instance_level_spec.rb[1:1:2:1]": 96.598689601, - "./qa/specs/features/browser_ui/5_package/package_registry/npm/npm_instance_level_spec.rb[1:1:3:1]": 97.606878883, - "./qa/specs/features/browser_ui/5_package/package_registry/pypi_repository_spec.rb[1:1:1:1]": 96.771360244, - "./qa/specs/features/browser_ui/6_release/deploy_key/add_deploy_key_spec.rb[1:1:1]": 28.190565917, - "./qa/specs/features/browser_ui/6_release/deploy_key/clone_using_deploy_key_spec.rb[1:1:1]": 71.023816005, - "./qa/specs/features/browser_ui/6_release/deploy_key/clone_using_deploy_key_spec.rb[1:1:2]": 44.659031794, - "./qa/specs/features/browser_ui/6_release/deploy_key/clone_using_deploy_key_spec.rb[1:1:3]": 36.180525657, - "./qa/specs/features/browser_ui/6_release/deploy_token/add_deploy_token_spec.rb[1:1:1]": 12.316922408, - "./qa/specs/features/browser_ui/8_monitor/alert_management/alert_settings_create_new_alerts_spec.rb[1:1:1:1:1]": 22.83515964, - "./qa/specs/features/browser_ui/8_monitor/alert_management/alert_settings_create_new_alerts_spec.rb[1:1:2:1:1]": 22.941244731, - "./qa/specs/features/browser_ui/8_monitor/alert_management/automatically_creates_incident_for_alert_spec.rb[1:1:1:1:1]": 30.539089334, - "./qa/specs/features/browser_ui/8_monitor/alert_management/automatically_creates_incident_for_alert_spec.rb[1:1:2:1:1]": 20.539535548, - "./qa/specs/features/browser_ui/8_monitor/alert_management/create_alert_using_authorization_key_spec.rb[1:1:1:1:1]": 22.892318732, - "./qa/specs/features/browser_ui/8_monitor/alert_management/create_alert_using_authorization_key_spec.rb[1:1:2:1:1]": 22.525954721, - "./qa/specs/features/browser_ui/8_monitor/alert_management/email_notification_for_alert_spec.rb[1:1:1:1:1:1]": 14.504545531, - "./qa/specs/features/browser_ui/8_monitor/alert_management/email_notification_for_alert_spec.rb[1:1:1:2:1:1]": 16.986671262, - "./qa/specs/features/browser_ui/8_monitor/alert_management/email_notification_for_alert_spec.rb[1:1:2:1:1:1]": 14.139008207, - "./qa/specs/features/browser_ui/8_monitor/alert_management/email_notification_for_alert_spec.rb[1:1:2:2:1:1]": 17.425971486, - "./qa/specs/features/browser_ui/8_monitor/alert_management/recovery_alert_resolves_correct_alert_spec.rb[1:1:1:1:1]": 16.929797753, - "./qa/specs/features/browser_ui/9_tenant_scale/group/create_group_with_mattermost_team_spec.rb[1:1:1]": 11.556969526, - "./qa/specs/features/browser_ui/9_tenant_scale/group/group_member_access_request_spec.rb[1:1:1]": 19.792218459, - "./qa/specs/features/browser_ui/9_tenant_scale/group/group_member_access_request_spec.rb[1:1:2:1:1]": 18.269566882, - "./qa/specs/features/browser_ui/9_tenant_scale/group/group_member_access_request_spec.rb[1:1:2:2:1]": 18.705548417, - "./qa/specs/features/browser_ui/9_tenant_scale/group/transfer_project_spec.rb[1:1:1]": 25.786212519, - "./qa/specs/features/browser_ui/9_tenant_scale/project/add_project_member_spec.rb[1:1:1]": 26.637145377, - "./qa/specs/features/browser_ui/9_tenant_scale/project/create_project_badge_spec.rb[1:1:1]": 24.693772213, - "./qa/specs/features/browser_ui/9_tenant_scale/project/create_project_spec.rb[1:1:1:1:1]": 29.564479217, - "./qa/specs/features/browser_ui/9_tenant_scale/project/create_project_spec.rb[1:1:2:1:1]": 29.615215535, - "./qa/specs/features/browser_ui/9_tenant_scale/project/dashboard_images_spec.rb[1:1:1:1:1]": 5.503607599, - "./qa/specs/features/browser_ui/9_tenant_scale/project/dashboard_images_spec.rb[1:1:2:1:1]": 5.404174402, - "./qa/specs/features/browser_ui/9_tenant_scale/project/invite_group_to_project_spec.rb[1:1:1:1:1]": 20.102706426, - "./qa/specs/features/browser_ui/9_tenant_scale/project/invite_group_to_project_spec.rb[1:1:2:1:1]": 29.00073066, - "./qa/specs/features/browser_ui/9_tenant_scale/project/project_owner_permissions_spec.rb[1:1:1:1:1]": 44.175057105, - "./qa/specs/features/browser_ui/9_tenant_scale/project/project_owner_permissions_spec.rb[1:1:1:2:1]": 37.47391893, - "./qa/specs/features/browser_ui/9_tenant_scale/project/project_owner_permissions_spec.rb[1:1:2:1:1]": 47.570097272, - "./qa/specs/features/browser_ui/9_tenant_scale/project/project_owner_permissions_spec.rb[1:1:2:2:1]": 43.801788463, - "./qa/specs/features/browser_ui/9_tenant_scale/project/view_project_activity_spec.rb[1:1:1:1]": 30.567224495, - "./qa/specs/features/browser_ui/9_tenant_scale/user/follow_user_activity_spec.rb[1:1:1]": 22.821764772, - "./qa/specs/features/browser_ui/9_tenant_scale/user/parent_group_access_termination_spec.rb[1:1:1:1]": 30.262389539, - "./qa/specs/features/browser_ui/9_tenant_scale/user/user_inherited_access_spec.rb[1:1:1:1]": 12.490760738, - "./qa/specs/features/browser_ui/9_tenant_scale/user/user_inherited_access_spec.rb[1:1:2:1]": 10.419296855, - "./qa/specs/features/ee/api/10_govern/compliance_pipeline_spec.rb[1:1:1:1]": 50.816734194, - "./qa/specs/features/ee/api/10_govern/instance_audit_event_streaming_spec.rb[1:1:1:1]": 22.565489131, - "./qa/specs/features/ee/api/10_govern/instance_audit_event_streaming_spec.rb[1:1:4:1]": 26.508038226, - "./qa/specs/features/ee/api/10_govern/user/minimal_access_user_spec.rb[1:1:1]": 40.438482524, - "./qa/specs/features/ee/api/10_govern/user/minimal_access_user_spec.rb[1:1:2]": 10.861861188, - "./qa/specs/features/ee/api/10_govern/user/minimal_access_user_spec.rb[1:1:3]": 14.701826232, - "./qa/specs/features/ee/api/1_manage/import/import_github_repo_spec.rb[1:1:1:1]": 67.681438798, - "./qa/specs/features/ee/api/1_manage/integrations/group_webhook_events_spec.rb[1:1:1]": 7.522709878, - "./qa/specs/features/ee/api/1_manage/migration/gitlab_migration_group_spec.rb[1:1:1:1]": 73.01876149, - "./qa/specs/features/ee/api/2_plan/epics_milestone_dates_spec.rb[1:1:1]": 11.564753028, - "./qa/specs/features/ee/api/2_plan/epics_milestone_dates_spec.rb[1:1:2]": 19.736258384, - "./qa/specs/features/ee/api/2_plan/epics_milestone_dates_spec.rb[1:1:3]": 17.395198565, - "./qa/specs/features/ee/api/2_plan/epics_milestone_dates_spec.rb[1:1:4]": 10.394745241, - "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:1:1:1:1]": 1.922398745, - "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:1:1:2:1:1]": 1.318162203, - "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:1:2:1:1:1:1:1]": 1.42812314, - "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:1:2:1:1:1:2:1:1]": 1.32407033, - "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:2:1:1:1]": 8.449400545, - "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:2:2:1:1:1:1:1]": 1.066322259, - "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:2:2:1:1:2:1]": 0.111194388, - "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:2:2:1:2:1]": 0.125531404, - "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:2:2:2:1]": 0.064576622, - "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:2:3:1:1]": 8.520950161, - "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:2:3:2:1:1:1:1]": 1.094315104, - "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:3:1:1]": 4.328541023, - "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:3:1:2]": 3.377245847, - "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:3:2:1:1:1:1]": 3.140764857, - "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:3:2:1:1:1:2]": 3.488844431, - "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:3:2:1:1:1:3:1]": 5.326153945, - "./qa/specs/features/ee/browser_ui/10_govern/change_vulnerability_status_spec.rb[1:1:1]": 48.484631341, - "./qa/specs/features/ee/browser_ui/10_govern/change_vulnerability_status_spec.rb[1:1:2]": 38.228920327, - "./qa/specs/features/ee/browser_ui/10_govern/change_vulnerability_status_spec.rb[1:1:3]": 16.672465557, - "./qa/specs/features/ee/browser_ui/10_govern/create_merge_request_with_secure_spec.rb[1:1:1]": 68.657010137, - "./qa/specs/features/ee/browser_ui/10_govern/dismissed_vulnerabilities_in_security_widget_spec.rb[1:1:1]": 91.386168894, - "./qa/specs/features/ee/browser_ui/10_govern/export_vulnerability_report_spec.rb[1:1:1]": 20.804818843, - "./qa/specs/features/ee/browser_ui/10_govern/fix_vulnerability_workflow_spec.rb[1:1:1]": 141.324680587, - "./qa/specs/features/ee/browser_ui/10_govern/group/group_audit_event_streaming_spec.rb[1:1:1:1]": 24.910973813, - "./qa/specs/features/ee/browser_ui/10_govern/group/group_audit_event_streaming_spec.rb[1:1:2:1:1]": 15.747934286, - "./qa/specs/features/ee/browser_ui/10_govern/group/group_audit_event_streaming_spec.rb[1:1:2:2:1]": 11.063044955, - "./qa/specs/features/ee/browser_ui/10_govern/group/group_audit_event_streaming_spec.rb[1:1:2:3:1]": 14.318949232, - "./qa/specs/features/ee/browser_ui/10_govern/group/group_audit_logs_1_spec.rb[1:1:1:1:1]": 25.843737234, - "./qa/specs/features/ee/browser_ui/10_govern/group/group_audit_logs_1_spec.rb[1:1:2:1:1]": 19.777848503, - "./qa/specs/features/ee/browser_ui/10_govern/group/group_audit_logs_1_spec.rb[1:1:3:1:1]": 10.195594383, - "./qa/specs/features/ee/browser_ui/10_govern/group/group_audit_logs_1_spec.rb[1:1:4:1:1]": 29.924615957, - "./qa/specs/features/ee/browser_ui/10_govern/group/group_audit_logs_1_spec.rb[1:1:5:1:1]": 22.710160178, - "./qa/specs/features/ee/browser_ui/10_govern/group/group_ldap_sync_spec.rb[1:1:1:1:1]": 31.972605132, - "./qa/specs/features/ee/browser_ui/10_govern/group/group_ldap_sync_spec.rb[1:1:1:1:2]": 9.102049254, - "./qa/specs/features/ee/browser_ui/10_govern/group/group_ldap_sync_spec.rb[1:1:1:1:3]": 12.885794347, - "./qa/specs/features/ee/browser_ui/10_govern/group/group_ldap_sync_spec.rb[1:1:2:1:1]": 46.475560248, - "./qa/specs/features/ee/browser_ui/10_govern/group/group_ldap_sync_spec.rb[1:1:2:1:2]": 11.530950888, - "./qa/specs/features/ee/browser_ui/10_govern/group/group_ldap_sync_spec.rb[1:1:2:1:3]": 16.71770923, - "./qa/specs/features/ee/browser_ui/10_govern/group/restrict_by_ip_address_spec.rb[1:1:1:1:1]": 14.797041153, - "./qa/specs/features/ee/browser_ui/10_govern/group/restrict_by_ip_address_spec.rb[1:1:1:2:1]": 9.711340027, - "./qa/specs/features/ee/browser_ui/10_govern/group/restrict_by_ip_address_spec.rb[1:1:1:3:1]": 43.582135619, - "./qa/specs/features/ee/browser_ui/10_govern/group/restrict_by_ip_address_spec.rb[1:1:2:1:1]": 16.174273048, - "./qa/specs/features/ee/browser_ui/10_govern/group/restrict_by_ip_address_spec.rb[1:1:2:2:1]": 16.427781058, - "./qa/specs/features/ee/browser_ui/10_govern/group/restrict_by_ip_address_spec.rb[1:1:2:3:1]": 16.204477808, - "./qa/specs/features/ee/browser_ui/10_govern/group_pipeline_execution_policy_spec.rb[1:1:1]": 81.217538237, - "./qa/specs/features/ee/browser_ui/10_govern/group_pipeline_execution_policy_spec.rb[1:1:2]": 99.250259313, - "./qa/specs/features/ee/browser_ui/10_govern/instance/instance_audit_logs_spec.rb[1:1:1:1:1]": 12.919678218, - "./qa/specs/features/ee/browser_ui/10_govern/instance/instance_audit_logs_spec.rb[1:1:2:1:1]": 11.213138656, - "./qa/specs/features/ee/browser_ui/10_govern/instance/instance_audit_logs_spec.rb[1:1:3:1:1]": 19.311405779, - "./qa/specs/features/ee/browser_ui/10_govern/instance/instance_audit_logs_spec.rb[1:1:4:1:1]": 15.937778246, - "./qa/specs/features/ee/browser_ui/10_govern/instance/instance_audit_logs_spec.rb[1:1:5:1:1]": 18.841735272, - "./qa/specs/features/ee/browser_ui/10_govern/instance/instance_audit_logs_spec.rb[1:1:6:1:1]": 19.057110137, - "./qa/specs/features/ee/browser_ui/10_govern/project/project_audit_logs_spec.rb[1:1:1:1:1]": 14.471596863, - "./qa/specs/features/ee/browser_ui/10_govern/project/project_audit_logs_spec.rb[1:1:2:1:1]": 16.645241199, - "./qa/specs/features/ee/browser_ui/10_govern/project/project_audit_logs_spec.rb[1:1:3:1:1]": 16.796898926, - "./qa/specs/features/ee/browser_ui/10_govern/project/project_audit_logs_spec.rb[1:1:4:1:1]": 14.918415947, - "./qa/specs/features/ee/browser_ui/10_govern/project/project_audit_logs_spec.rb[1:1:5:1:1]": 56.055282923, - "./qa/specs/features/ee/browser_ui/10_govern/project/project_audit_logs_spec.rb[1:1:6:1:1]": 23.680840227, - "./qa/specs/features/ee/browser_ui/10_govern/project_security_dashboard_spec.rb[1:1:1]": 25.501210023, - "./qa/specs/features/ee/browser_ui/10_govern/project_security_dashboard_spec.rb[1:1:2]": 32.156673531, - "./qa/specs/features/ee/browser_ui/10_govern/scan_execution_policy_vulnerabilities_spec.rb[1:1:1]": 75.855115881, - "./qa/specs/features/ee/browser_ui/10_govern/scan_execution_policy_vulnerabilities_spec.rb[1:1:2]": 89.662965021, - "./qa/specs/features/ee/browser_ui/10_govern/scan_result_policy_vulnerabilities_spec.rb[1:1:1]": 54.692597626, - "./qa/specs/features/ee/browser_ui/10_govern/scan_result_policy_vulnerabilities_spec.rb[1:1:2]": 69.060761264, - "./qa/specs/features/ee/browser_ui/10_govern/security_policies_spec.rb[1:1:1]": 20.852104157, - "./qa/specs/features/ee/browser_ui/10_govern/security_policies_spec.rb[1:1:2]": 24.141826621, - "./qa/specs/features/ee/browser_ui/10_govern/security_policies_spec.rb[1:1:3]": 39.168353384, - "./qa/specs/features/ee/browser_ui/10_govern/security_reports_spec.rb[1:1:1]": 22.833135797, - "./qa/specs/features/ee/browser_ui/10_govern/security_reports_spec.rb[1:1:2]": 115.008223689, - "./qa/specs/features/ee/browser_ui/10_govern/security_reports_spec.rb[1:1:3]": 86.402060729, - "./qa/specs/features/ee/browser_ui/10_govern/security_reports_spec.rb[1:1:4]": 114.451227984, - "./qa/specs/features/ee/browser_ui/10_govern/security_reports_spec.rb[1:1:6:1]": 24.928131503, - "./qa/specs/features/ee/browser_ui/10_govern/user/minimal_access_user_spec.rb[1:1:1]": 12.783057761, - "./qa/specs/features/ee/browser_ui/10_govern/vulnerabilities_jira_integration_spec.rb[1:1:1]": 41.254110492, - "./qa/specs/features/ee/browser_ui/10_govern/vulnerability_management_spec.rb[1:1:1]": 93.314430589, - "./qa/specs/features/ee/browser_ui/10_govern/vulnerability_management_spec.rb[1:1:2]": 76.694966233, - "./qa/specs/features/ee/browser_ui/10_govern/vulnerability_management_spec.rb[1:1:3]": 88.706137095, - "./qa/specs/features/ee/browser_ui/10_govern/vulnerability_management_spec.rb[1:1:4]": 99.627726983, - "./qa/specs/features/ee/browser_ui/11_fulfillment/license/cloud_activation_spec.rb[1:1:1]": 14.016590081, - "./qa/specs/features/ee/browser_ui/11_fulfillment/license/license_spec.rb[1:1:1]": 5.39033329, - "./qa/specs/features/ee/browser_ui/11_fulfillment/utilization/user_registration_billing_spec.rb[1:1:1:1:1]": 16.506609457, - "./qa/specs/features/ee/browser_ui/13_secure/cvs_dependency_scanning_spec.rb[1:1:1:1]": 27.190837332, - "./qa/specs/features/ee/browser_ui/13_secure/on_demand_dast_spec.rb[1:1:1:1]": 129.57212996, - "./qa/specs/features/ee/browser_ui/16_ai_powered/duo_chat/duo_chat_spec.rb[1:1:1:2:1]": 16.736182891, - "./qa/specs/features/ee/browser_ui/1_manage/integrations/jira_issues_list_spec.rb[1:1:1]": 22.792249863, - "./qa/specs/features/ee/browser_ui/1_manage/integrations/jira_issues_list_spec.rb[1:1:2]": 15.082014872, - "./qa/specs/features/ee/browser_ui/1_manage/integrations/jira_issues_list_spec.rb[1:1:3]": 17.303819764, - "./qa/specs/features/ee/browser_ui/2_plan/analytics/contribution_analytics_spec.rb[1:1:1]": 73.532939838, - "./qa/specs/features/ee/browser_ui/2_plan/analytics/mr_analytics_spec.rb[1:1:1]": 48.521325192, - "./qa/specs/features/ee/browser_ui/2_plan/analytics/value_stream_analytics_spec.rb[1:1:1:1:1:1]": 12.654975258, - "./qa/specs/features/ee/browser_ui/2_plan/analytics/value_stream_analytics_spec.rb[1:1:1:2:1:1]": 17.34520408, - "./qa/specs/features/ee/browser_ui/2_plan/burndown_chart/burndown_chart_spec.rb[1:1:1]": 21.527917249, - "./qa/specs/features/ee/browser_ui/2_plan/custom_email/custom_email_spec.rb[1:1:1]": 13.979232287, - "./qa/specs/features/ee/browser_ui/2_plan/epic/epics_management_spec.rb[1:1:1]": 52.995587691, - "./qa/specs/features/ee/browser_ui/2_plan/epic/epics_management_spec.rb[1:1:2]": 51.034532785, - "./qa/specs/features/ee/browser_ui/2_plan/epic/epics_management_spec.rb[1:1:3:1:1]": 13.856554023, - "./qa/specs/features/ee/browser_ui/2_plan/epic/epics_management_spec.rb[1:1:3:1:2]": 10.847355348, - "./qa/specs/features/ee/browser_ui/2_plan/epic/epics_management_spec.rb[1:1:3:1:3]": 53.359182697, - "./qa/specs/features/ee/browser_ui/2_plan/epic/epics_management_spec.rb[1:1:3:2]": 17.186163332, - "./qa/specs/features/ee/browser_ui/2_plan/epic/promote_issue_to_epic_spec.rb[1:1:1]": 46.375081679, - "./qa/specs/features/ee/browser_ui/2_plan/epic/roadmap_spec.rb[1:1:1]": 8.06298025, - "./qa/specs/features/ee/browser_ui/2_plan/group_wiki/create_group_wiki_page_spec.rb[1:1:1:1]": 11.205207161, - "./qa/specs/features/ee/browser_ui/2_plan/group_wiki/create_group_wiki_page_spec.rb[1:1:2:1]": 11.172907546, - "./qa/specs/features/ee/browser_ui/2_plan/group_wiki/delete_group_wiki_page_spec.rb[1:1:1]": 16.458226292, - "./qa/specs/features/ee/browser_ui/2_plan/group_wiki/file_upload_group_wiki_page_spec.rb[1:1:1]": 27.464608761, - "./qa/specs/features/ee/browser_ui/2_plan/insights/default_insights_spec.rb[1:1:1:1]": 15.320803107, - "./qa/specs/features/ee/browser_ui/2_plan/insights/default_insights_spec.rb[1:2:1:1]": 11.1332849, - "./qa/specs/features/ee/browser_ui/2_plan/issue/default_issue_template_spec.rb[1:1:1]": 30.080699217, - "./qa/specs/features/ee/browser_ui/2_plan/issue_boards/configurable_issue_board_spec.rb[1:1:1]": 17.376470062, - "./qa/specs/features/ee/browser_ui/2_plan/issue_boards/configure_issue_board_by_label_spec.rb[1:1:1]": 24.665774586, - "./qa/specs/features/ee/browser_ui/2_plan/issue_boards/create_group_issue_board_spec.rb[1:1:1]": 22.804704234, - "./qa/specs/features/ee/browser_ui/2_plan/issue_boards/group_issue_boards_spec.rb[1:1:1]": 15.620382211, - "./qa/specs/features/ee/browser_ui/2_plan/issue_boards/project_issue_boards_spec.rb[1:1:1:1]": 13.09067118, - "./qa/specs/features/ee/browser_ui/2_plan/issue_boards/project_issue_boards_spec.rb[1:1:2:1]": 11.937493204, - "./qa/specs/features/ee/browser_ui/2_plan/issue_boards/project_issue_boards_spec.rb[1:1:3:1]": 22.21456, - "./qa/specs/features/ee/browser_ui/2_plan/issue_boards/read_only_board_configuration_spec.rb[1:1:1]": 21.419591115, - "./qa/specs/features/ee/browser_ui/2_plan/issue_boards/sum_of_issues_weights_spec.rb[1:1:1]": 14.38292385, - "./qa/specs/features/ee/browser_ui/2_plan/issues_analytics/issues_analytics_spec.rb[1:1:1:1]": 9.735245521, - "./qa/specs/features/ee/browser_ui/2_plan/issues_analytics/issues_analytics_spec.rb[1:2:1:1]": 8.729800217, - "./qa/specs/features/ee/browser_ui/2_plan/issues_weight/issue_weight_visualization_spec.rb[1:1:1]": 27.18952343, - "./qa/specs/features/ee/browser_ui/2_plan/iterations/assign_group_iteration_spec.rb[1:1:1]": 17.28927439, - "./qa/specs/features/ee/browser_ui/2_plan/iterations/create_group_iteration_spec.rb[1:1:1:1]": 22.346764405, - "./qa/specs/features/ee/browser_ui/2_plan/iterations/create_group_iteration_spec.rb[1:1:2:1]": 13.970496749, - "./qa/specs/features/ee/browser_ui/2_plan/multiple_assignees_for_issues/four_assignees_spec.rb[1:1:1]": 43.217480413, - "./qa/specs/features/ee/browser_ui/2_plan/multiple_assignees_for_issues/more_than_four_assignees_spec.rb[1:1:1]": 27.80868558, - "./qa/specs/features/ee/browser_ui/2_plan/multiple_assignees_for_issues/more_than_four_assignees_spec.rb[1:1:2]": 27.259827306, - "./qa/specs/features/ee/browser_ui/2_plan/scoped_labels/editing_scoped_labels_spec.rb[1:1:1]": 15.888986762, - "./qa/specs/features/ee/browser_ui/3_create/merge_request/approval_rules_spec.rb[1:1:1]": 81.516824255, - "./qa/specs/features/ee/browser_ui/3_create/merge_request/default_merge_request_template_spec.rb[1:1:1]": 19.924696388, - "./qa/specs/features/ee/browser_ui/3_create/repository/assign_code_owners_spec.rb[1:1:1]": 42.055998775, - "./qa/specs/features/ee/browser_ui/3_create/repository/code_owners_spec.rb[1:1:1]": 28.884191453, - "./qa/specs/features/ee/browser_ui/3_create/repository/file_locking_spec.rb[1:1:1]": 39.472518444, - "./qa/specs/features/ee/browser_ui/3_create/repository/file_locking_spec.rb[1:1:2]": 41.452052223, - "./qa/specs/features/ee/browser_ui/3_create/repository/file_locking_spec.rb[1:1:3]": 43.239229962, - "./qa/specs/features/ee/browser_ui/3_create/repository/file_locking_spec.rb[1:1:4]": 24.935030523, - "./qa/specs/features/ee/browser_ui/3_create/repository/group_file_template_spec.rb[1:1:1]": 30.036853988, - "./qa/specs/features/ee/browser_ui/3_create/repository/merge_with_code_owner_in_root_group_spec.rb[1:1:1:1:1:1]": 47.720469657, - "./qa/specs/features/ee/browser_ui/3_create/repository/merge_with_code_owner_in_root_group_spec.rb[1:1:1:2:1:1]": 76.165405302, - "./qa/specs/features/ee/browser_ui/3_create/repository/merge_with_code_owner_in_subgroup_spec.rb[1:1:1:1:1:1]": 55.84957452, - "./qa/specs/features/ee/browser_ui/3_create/repository/merge_with_code_owner_in_subgroup_spec.rb[1:1:1:2:1:1]": 58.675067957, - "./qa/specs/features/ee/browser_ui/3_create/repository/merge_with_code_owner_in_subgroup_spec.rb[1:1:1:3:1:1]": 68.224609189, - "./qa/specs/features/ee/browser_ui/3_create/repository/prevent_forking_outside_group_spec.rb[1:1:1:1]": 29.360503466, - "./qa/specs/features/ee/browser_ui/3_create/repository/prevent_forking_outside_group_spec.rb[1:1:2:1]": 15.442810838, - "./qa/specs/features/ee/browser_ui/3_create/repository/project_templates_spec.rb[1:1:1:1]": 29.629326149, - "./qa/specs/features/ee/browser_ui/3_create/repository/project_templates_spec.rb[1:1:3:1]": 41.463863502, - "./qa/specs/features/ee/browser_ui/3_create/repository/pull_mirroring_over_http_spec.rb[1:1:1]": 26.408467189, - "./qa/specs/features/ee/browser_ui/3_create/repository/pull_mirroring_over_ssh_with_key_spec.rb[1:1:1]": 55.784349268, - "./qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb[1:1:1:1]": 18.862883999, - "./qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb[1:1:1:2]": 34.890940254, - "./qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb[1:1:1:3]": 26.524235752, - "./qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb[1:1:1:4]": 24.429223872, - "./qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb[1:1:1:5]": 38.08563828, - "./qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb[1:1:1:6]": 27.464559208, - "./qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb[1:1:1:7]": 31.941716961, - "./qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb[1:1:1:8]": 29.186195014, - "./qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb[1:1:1:9]": 29.44627437, - "./qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb[1:1:2:1]": 37.263260283, - "./qa/specs/features/ee/browser_ui/3_create/repository/restrict_push_protected_branch_spec.rb[1:1:1:1:1]": 29.649422568, - "./qa/specs/features/ee/browser_ui/3_create/repository/restrict_push_protected_branch_spec.rb[1:1:1:2:1]": 44.101017014, - "./qa/specs/features/ee/browser_ui/3_create/repository/restrict_push_protected_branch_spec.rb[1:1:2:1:1]": 33.181627, - "./qa/specs/features/ee/browser_ui/3_create/repository/restrict_push_protected_branch_spec.rb[1:1:2:2:1]": 41.4090575, - "./qa/specs/features/ee/browser_ui/3_create/repository/restrict_push_protected_branch_spec.rb[1:1:3:1:1]": 29.488221126, - "./qa/specs/features/ee/browser_ui/3_create/web_ide/code_suggestions_in_web_ide_spec.rb[1:1:2:1:1:1:1:1]": 49.208293946, - "./qa/specs/features/ee/browser_ui/3_create/web_ide/code_suggestions_in_web_ide_spec.rb[1:1:2:1:1:2:1:1]": 26.44137192, - "./qa/specs/features/ee/browser_ui/3_create/web_ide/code_suggestions_in_web_ide_spec.rb[1:1:2:1:2:1:1]": 26.862541161, - "./qa/specs/features/ee/browser_ui/3_create/web_ide/code_suggestions_in_web_ide_spec.rb[1:1:2:2:1:1]": 26.253159818, - "./qa/specs/features/ee/browser_ui/4_verify/multi-project_pipelines_spec.rb[1:1:1]": 34.817199201, - "./qa/specs/features/ee/browser_ui/4_verify/parent_child_pipelines_dependent_relationship_spec.rb[1:1:1]": 45.980002345, - "./qa/specs/features/ee/browser_ui/4_verify/parent_child_pipelines_dependent_relationship_spec.rb[1:1:2]": 33.806367901, - "./qa/specs/features/ee/browser_ui/4_verify/pipeline_for_merged_result_spec.rb[1:1:1]": 48.548480024, - "./qa/specs/features/ee/browser_ui/4_verify/pipeline_subscription_with_group_owned_project_spec.rb[1:1:1:1]": 58.251654546, - "./qa/specs/features/ee/browser_ui/8_monitor/incident_management/incident_quick_action_spec.rb[1:1:1]": 20.689093678, - "./qa/specs/features/ee/browser_ui/9_tenant_scale/group/share_group_with_group_spec.rb[1:1:1]": 23.810004361 + "./qa/specs/features/browser_ui/3_create/snippet/create_personal_snippet_with_multiple_files_spec.rb[1:1:1]": 14.67105945, + "./qa/specs/features/browser_ui/3_create/snippet/create_project_snippet_with_multiple_files_spec.rb[1:1:1]": 28.514565884, + "./qa/specs/features/browser_ui/3_create/snippet/delete_file_from_snippet_spec.rb[1:1:1:1]": 24.800377606, + "./qa/specs/features/browser_ui/3_create/snippet/delete_file_from_snippet_spec.rb[1:1:2:1]": 22.498173186, + "./qa/specs/features/browser_ui/3_create/snippet/share_snippet_spec.rb[1:1:1:1]": 18.439951577, + "./qa/specs/features/browser_ui/3_create/snippet/share_snippet_spec.rb[1:1:2:1]": 15.994065312, + "./qa/specs/features/browser_ui/3_create/source_editor/source_editor_toolbar_spec.rb[1:1:1]": 25.014898858, + "./qa/specs/features/browser_ui/3_create/web_ide/add_first_file_in_web_ide_spec.rb[1:1:1:1]": 18.258995188, + "./qa/specs/features/browser_ui/3_create/web_ide/add_first_file_in_web_ide_spec.rb[1:1:2:1]": 24.493929349, + "./qa/specs/features/browser_ui/3_create/web_ide/add_new_directory_in_web_ide_spec.rb[1:1:1:1]": 32.079918928, + "./qa/specs/features/browser_ui/3_create/web_ide/add_new_directory_in_web_ide_spec.rb[1:1:2:1]": 52.422319108, + "./qa/specs/features/browser_ui/3_create/web_ide/closing_web_ide_with_unsaved_changes_spec.rb[1:1:1]": 24.250358427, + "./qa/specs/features/browser_ui/3_create/web_ide/settings_sync_web_ide_spec.rb[1:1:1]": 42.705189816, + "./qa/specs/features/browser_ui/3_create/web_ide/settings_sync_web_ide_spec.rb[1:1:2]": 73.603270276, + "./qa/specs/features/browser_ui/3_create/web_ide/settings_sync_web_ide_spec.rb[1:1:3]": 63.771305875, + "./qa/specs/features/browser_ui/3_create/web_ide/upload_new_file_in_web_ide_spec.rb[1:1:1:1]": 24.875637941, + "./qa/specs/features/browser_ui/3_create/web_ide/upload_new_file_in_web_ide_spec.rb[1:1:2:1:1:1]": 39.190208325, + "./qa/specs/features/browser_ui/3_create/web_ide/upload_new_file_in_web_ide_spec.rb[1:1:2:2:1:1]": 32.586681925, + "./qa/specs/features/browser_ui/4_verify/ci_components_catalog/ci_catalog_sorting_spec.rb[1:1:1:2:1:1]": 40.144422238, + "./qa/specs/features/browser_ui/4_verify/ci_components_catalog/ci_catalog_sorting_spec.rb[1:1:1:2:2:1]": 45.984237128, + "./qa/specs/features/browser_ui/4_verify/ci_components_catalog/release_with_glab_spec.rb[1:1:1]": 57.608513187, + "./qa/specs/features/browser_ui/4_verify/ci_components_catalog/release_with_glab_spec.rb[1:1:2]": 64.026260248, + "./qa/specs/features/browser_ui/4_verify/ci_components_catalog/release_with_release_cli_spec.rb[1:1:1]": 61.348283947, + "./qa/specs/features/browser_ui/4_verify/ci_components_catalog/release_with_release_cli_spec.rb[1:1:2]": 54.955626444, + "./qa/specs/features/browser_ui/4_verify/ci_components_catalog/run_component_in_project_pipeline_spec.rb[1:1:1]": 55.741715074, + "./qa/specs/features/browser_ui/4_verify/ci_job_artifacts/expose_job_artifacts_in_mr_spec.rb[1:1:1:1]": 66.436168654, + "./qa/specs/features/browser_ui/4_verify/ci_job_artifacts/job_artifacts_access_keyword_spec.rb[1:1:1:1:1]": 34.296394593, + "./qa/specs/features/browser_ui/4_verify/ci_job_artifacts/job_artifacts_access_keyword_spec.rb[1:1:1:1:2]": 42.270222608, + "./qa/specs/features/browser_ui/4_verify/ci_job_artifacts/job_artifacts_access_keyword_spec.rb[1:1:2:1:1]": 43.30799841, + "./qa/specs/features/browser_ui/4_verify/ci_job_artifacts/job_artifacts_access_keyword_spec.rb[1:1:2:1:2]": 35.855032429, + "./qa/specs/features/browser_ui/4_verify/ci_job_artifacts/job_artifacts_access_keyword_spec.rb[1:1:3:1:1]": 55.366211572, + "./qa/specs/features/browser_ui/4_verify/ci_job_artifacts/job_artifacts_access_keyword_spec.rb[1:1:3:1:2]": 49.789661759, + "./qa/specs/features/browser_ui/4_verify/ci_job_artifacts/unlocking_job_artifacts_across_pipelines_spec.rb[1:1:1:1]": 95.010008224, + "./qa/specs/features/browser_ui/4_verify/ci_job_artifacts/unlocking_job_artifacts_across_pipelines_spec.rb[1:1:2:1]": 122.191405419, + "./qa/specs/features/browser_ui/4_verify/ci_job_artifacts/unlocking_job_artifacts_across_pipelines_spec.rb[1:1:3:1]": 102.652732387, + "./qa/specs/features/browser_ui/4_verify/ci_project_artifacts/user_can_bulk_delete_artifacts_spec.rb[1:1:1:1]": 73.521802689, + "./qa/specs/features/browser_ui/4_verify/ci_variable/pipeline_with_protected_variable_spec.rb[1:1:1]": 56.351348261, + "./qa/specs/features/browser_ui/4_verify/ci_variable/pipeline_with_protected_variable_spec.rb[1:1:2]": 78.367663782, + "./qa/specs/features/browser_ui/4_verify/ci_variable/raw_variables_defined_in_yaml_spec.rb[1:1:1]": 33.577634151, + "./qa/specs/features/browser_ui/4_verify/ci_variable/ui_variable_inheritable_when_forward_pipeline_variables_true_spec.rb[1:1:1]": 84.286087112, + "./qa/specs/features/browser_ui/4_verify/pipeline/include_local_config_file_paths_with_wildcard_spec.rb[1:1:1]": 18.525020519, + "./qa/specs/features/browser_ui/4_verify/pipeline/include_multiple_files_from_a_project_spec.rb[1:1:1]": 54.886224503, + "./qa/specs/features/browser_ui/4_verify/pipeline/include_multiple_files_from_multiple_projects_spec.rb[1:1:1]": 64.229339559, + "./qa/specs/features/browser_ui/4_verify/pipeline/parent_child_pipelines_independent_relationship_spec.rb[1:1:1]": 50.51348336, + "./qa/specs/features/browser_ui/4_verify/pipeline/parent_child_pipelines_independent_relationship_spec.rb[1:1:2]": 62.349308563, + "./qa/specs/features/browser_ui/4_verify/pipeline/pass_dotenv_variables_to_downstream_via_bridge_spec.rb[1:1:1]": 66.298914071, + "./qa/specs/features/browser_ui/4_verify/pipeline/run_pipeline_with_manual_jobs_spec.rb[1:1:1]": 66.049358924, + "./qa/specs/features/browser_ui/4_verify/pipeline/trigger_child_pipeline_with_manual_spec.rb[1:1:1]": 65.493875232, + "./qa/specs/features/browser_ui/4_verify/pipeline/trigger_matrix_spec.rb[1:1:1]": 50.079680864, + "./qa/specs/features/browser_ui/4_verify/pipeline/update_ci_file_with_pipeline_editor_spec.rb[1:1:1]": 31.110243067, + "./qa/specs/features/browser_ui/4_verify/runner/deprecated_registration_token_spec.rb[1:1:1]": 23.618801349, + "./qa/specs/features/browser_ui/4_verify/runner/deprecated_unregister_runner_spec.rb[1:1:1]": 39.029569115, + "./qa/specs/features/browser_ui/4_verify/runner/fleet_visibility/group_runner_counts_spec.rb[1:1:1]": 25.616882657, + "./qa/specs/features/browser_ui/4_verify/runner/fleet_visibility/group_runner_status_counts_spec.rb[1:1:1]": 17.609245948, + "./qa/specs/features/browser_ui/4_verify/runner/register_group_runner_spec.rb[1:1:1]": 20.499690898, + "./qa/specs/features/browser_ui/4_verify/runner/register_project_runner_spec.rb[1:1:1]": 45.242119367, + "./qa/specs/features/browser_ui/4_verify/runner/unregister_runner_spec.rb[1:1:1]": 26.076009522, + "./qa/specs/features/browser_ui/4_verify/testing/endpoint_coverage_spec.rb[1:1:1]": 54.246992046, + "./qa/specs/features/browser_ui/5_package/container_registry/saas/container_registry_spec.rb[1:1:1]": 165.693115559, + "./qa/specs/features/browser_ui/5_package/container_registry/self_managed/container_registry_spec.rb[1:1:1:1:1]": 124.356393994, + "./qa/specs/features/browser_ui/5_package/container_registry/self_managed/container_registry_spec.rb[1:1:1:2:1]": 114.701792986, + "./qa/specs/features/browser_ui/5_package/container_registry/self_managed/container_registry_spec.rb[1:1:1:3:1]": 106.129491691, + "./qa/specs/features/browser_ui/5_package/dependency_proxy/dependency_proxy_spec.rb[1:1:1:1]": 69.52865115, + "./qa/specs/features/browser_ui/5_package/dependency_proxy/dependency_proxy_spec.rb[1:1:2:1]": 49.602179796, + "./qa/specs/features/browser_ui/5_package/dependency_proxy/dependency_proxy_spec.rb[1:1:3:1]": 53.517437091, + "./qa/specs/features/browser_ui/5_package/package_registry/composer_registry_spec.rb[1:1:1]": 67.483790802, + "./qa/specs/features/browser_ui/5_package/package_registry/conan_repository_spec.rb[1:1:1]": 97.870222592, + "./qa/specs/features/browser_ui/5_package/package_registry/generic_repository_spec.rb[1:1:1]": 133.504862177, + "./qa/specs/features/browser_ui/5_package/package_registry/helm_registry_spec.rb[1:1:1:1]": 173.289269984, + "./qa/specs/features/browser_ui/5_package/package_registry/helm_registry_spec.rb[1:1:2:1]": 110.985181329, + "./qa/specs/features/browser_ui/5_package/package_registry/helm_registry_spec.rb[1:1:3:1]": 98.038031359, + "./qa/specs/features/browser_ui/5_package/package_registry/maven/maven_group_level_spec.rb[1:1:1:1:1]": 112.082186382, + "./qa/specs/features/browser_ui/5_package/package_registry/maven/maven_group_level_spec.rb[1:1:1:2:1]": 110.841590599, + "./qa/specs/features/browser_ui/5_package/package_registry/maven/maven_group_level_spec.rb[1:1:1:3:1]": 146.348491376, + "./qa/specs/features/browser_ui/5_package/package_registry/maven/maven_group_level_spec.rb[1:1:2:1:1]": 104.70481313, + "./qa/specs/features/browser_ui/5_package/package_registry/maven/maven_group_level_spec.rb[1:1:2:2:1]": 117.871862148, + "./qa/specs/features/browser_ui/5_package/package_registry/maven/maven_project_level_spec.rb[1:1:1:1]": 107.111940846, + "./qa/specs/features/browser_ui/5_package/package_registry/maven/maven_project_level_spec.rb[1:1:2:1]": 86.909771173, + "./qa/specs/features/browser_ui/5_package/package_registry/maven/maven_project_level_spec.rb[1:1:3:1]": 91.228397442, + "./qa/specs/features/browser_ui/5_package/package_registry/maven_gradle_repository_spec.rb[1:1:1:1]": 98.124684211, + "./qa/specs/features/browser_ui/5_package/package_registry/maven_gradle_repository_spec.rb[1:1:2:1]": 97.381615006, + "./qa/specs/features/browser_ui/5_package/package_registry/maven_gradle_repository_spec.rb[1:1:3:1]": 108.823092958, + "./qa/specs/features/browser_ui/5_package/package_registry/npm/npm_group_level_spec.rb[1:1:1:1]": 95.79639735, + "./qa/specs/features/browser_ui/5_package/package_registry/npm/npm_group_level_spec.rb[1:1:2:1]": 112.479204658, + "./qa/specs/features/browser_ui/5_package/package_registry/npm/npm_group_level_spec.rb[1:1:3:1]": 126.817852544, + "./qa/specs/features/browser_ui/5_package/package_registry/npm/npm_instance_level_spec.rb[1:1:1:1]": 84.231882051, + "./qa/specs/features/browser_ui/5_package/package_registry/npm/npm_instance_level_spec.rb[1:1:2:1]": 97.197158931, + "./qa/specs/features/browser_ui/5_package/package_registry/npm/npm_instance_level_spec.rb[1:1:3:1]": 103.686551983, + "./qa/specs/features/browser_ui/5_package/package_registry/pypi_repository_spec.rb[1:1:1:1]": 107.899088585, + "./qa/specs/features/browser_ui/6_release/deploy_key/add_deploy_key_spec.rb[1:1:1]": 29.988003167, + "./qa/specs/features/browser_ui/6_release/deploy_key/clone_using_deploy_key_spec.rb[1:1:1]": 75.907162535, + "./qa/specs/features/browser_ui/6_release/deploy_key/clone_using_deploy_key_spec.rb[1:1:2]": 65.585285599, + "./qa/specs/features/browser_ui/6_release/deploy_key/clone_using_deploy_key_spec.rb[1:1:3]": 45.961558783, + "./qa/specs/features/browser_ui/6_release/deploy_token/add_deploy_token_spec.rb[1:1:1]": 15.694988036, + "./qa/specs/features/browser_ui/8_monitor/alert_management/alert_settings_create_new_alerts_spec.rb[1:1:1:1:1]": 29.705950973, + "./qa/specs/features/browser_ui/8_monitor/alert_management/alert_settings_create_new_alerts_spec.rb[1:1:2:1:1]": 26.718493726, + "./qa/specs/features/browser_ui/8_monitor/alert_management/automatically_creates_incident_for_alert_spec.rb[1:1:1:1:1]": 31.643714163, + "./qa/specs/features/browser_ui/8_monitor/alert_management/automatically_creates_incident_for_alert_spec.rb[1:1:2:1:1]": 38.344217057, + "./qa/specs/features/browser_ui/8_monitor/alert_management/create_alert_using_authorization_key_spec.rb[1:1:1:1:1]": 23.877850129, + "./qa/specs/features/browser_ui/8_monitor/alert_management/create_alert_using_authorization_key_spec.rb[1:1:2:1:1]": 23.890810565, + "./qa/specs/features/browser_ui/8_monitor/alert_management/email_notification_for_alert_spec.rb[1:1:1:1:1:1]": 16.166369936, + "./qa/specs/features/browser_ui/8_monitor/alert_management/email_notification_for_alert_spec.rb[1:1:1:2:1:1]": 15.324378822, + "./qa/specs/features/browser_ui/8_monitor/alert_management/email_notification_for_alert_spec.rb[1:1:2:1:1:1]": 17.279788552, + "./qa/specs/features/browser_ui/8_monitor/alert_management/email_notification_for_alert_spec.rb[1:1:2:2:1:1]": 21.195414559, + "./qa/specs/features/browser_ui/8_monitor/alert_management/recovery_alert_resolves_correct_alert_spec.rb[1:1:1:1:1]": 29.011678497, + "./qa/specs/features/browser_ui/9_tenant_scale/group/create_group_with_mattermost_team_spec.rb[1:1:1]": 9.344660726, + "./qa/specs/features/browser_ui/9_tenant_scale/group/group_member_access_request_spec.rb[1:1:1]": 22.678487753, + "./qa/specs/features/browser_ui/9_tenant_scale/group/group_member_access_request_spec.rb[1:1:2:1:1]": 21.806627936, + "./qa/specs/features/browser_ui/9_tenant_scale/group/group_member_access_request_spec.rb[1:1:2:2:1]": 20.780475207, + "./qa/specs/features/browser_ui/9_tenant_scale/group/transfer_project_spec.rb[1:1:1]": 27.244025476, + "./qa/specs/features/browser_ui/9_tenant_scale/project/add_project_member_spec.rb[1:1:1]": 32.014529209, + "./qa/specs/features/browser_ui/9_tenant_scale/project/create_project_badge_spec.rb[1:1:1]": 20.068110387, + "./qa/specs/features/browser_ui/9_tenant_scale/project/create_project_spec.rb[1:1:1:1:1]": 33.402318714, + "./qa/specs/features/browser_ui/9_tenant_scale/project/create_project_spec.rb[1:1:2:1:1]": 33.934750764, + "./qa/specs/features/browser_ui/9_tenant_scale/project/dashboard_images_spec.rb[1:1:1:1:1]": 10.979258094, + "./qa/specs/features/browser_ui/9_tenant_scale/project/dashboard_images_spec.rb[1:1:2:1:1]": 11.608350591, + "./qa/specs/features/browser_ui/9_tenant_scale/project/invite_group_to_project_spec.rb[1:1:1:1:1]": 28.336834686, + "./qa/specs/features/browser_ui/9_tenant_scale/project/invite_group_to_project_spec.rb[1:1:2:1:1]": 25.112712061, + "./qa/specs/features/browser_ui/9_tenant_scale/project/project_owner_permissions_spec.rb[1:1:1:1:1]": 42.933115103, + "./qa/specs/features/browser_ui/9_tenant_scale/project/project_owner_permissions_spec.rb[1:1:1:2:1]": 36.98431554, + "./qa/specs/features/browser_ui/9_tenant_scale/project/project_owner_permissions_spec.rb[1:1:2:1:1]": 48.607808192, + "./qa/specs/features/browser_ui/9_tenant_scale/project/project_owner_permissions_spec.rb[1:1:2:2:1]": 42.623868649, + "./qa/specs/features/browser_ui/9_tenant_scale/project/view_project_activity_spec.rb[1:1:1:1]": 35.743874052, + "./qa/specs/features/browser_ui/9_tenant_scale/user/follow_user_activity_spec.rb[1:1:1]": 31.223309247, + "./qa/specs/features/browser_ui/9_tenant_scale/user/parent_group_access_termination_spec.rb[1:1:1:1]": 27.375015555, + "./qa/specs/features/browser_ui/9_tenant_scale/user/user_inherited_access_spec.rb[1:1:1:1]": 47.197937559, + "./qa/specs/features/browser_ui/9_tenant_scale/user/user_inherited_access_spec.rb[1:1:2:1]": 19.7629016, + "./qa/specs/features/ee/api/10_govern/compliance_pipeline_spec.rb[1:1:1:1]": 38.562984764, + "./qa/specs/features/ee/api/10_govern/instance_audit_event_streaming_spec.rb[1:1:1:1]": 17.006812857, + "./qa/specs/features/ee/api/10_govern/instance_audit_event_streaming_spec.rb[1:1:4:1]": 20.019217622, + "./qa/specs/features/ee/api/10_govern/user/minimal_access_user_spec.rb[1:1:1]": 47.791755977, + "./qa/specs/features/ee/api/10_govern/user/minimal_access_user_spec.rb[1:1:2]": 20.925896789, + "./qa/specs/features/ee/api/10_govern/user/minimal_access_user_spec.rb[1:1:3]": 11.860366479, + "./qa/specs/features/ee/api/1_manage/import/import_github_repo_spec.rb[1:1:1:1]": 131.481349437, + "./qa/specs/features/ee/api/1_manage/integrations/group_webhook_events_spec.rb[1:1:1]": 13.047155732, + "./qa/specs/features/ee/api/1_manage/migration/gitlab_migration_group_spec.rb[1:1:1:1]": 62.834426385, + "./qa/specs/features/ee/api/2_plan/analytics/dora_metrics_spec.rb[1:1:1:1:1]": 0.908633899, + "./qa/specs/features/ee/api/2_plan/analytics/dora_metrics_spec.rb[1:1:2:1:1]": 1.435222086, + "./qa/specs/features/ee/api/2_plan/epics_milestone_dates_spec.rb[1:1:1]": 16.673002459, + "./qa/specs/features/ee/api/2_plan/epics_milestone_dates_spec.rb[1:1:2]": 22.183535559, + "./qa/specs/features/ee/api/2_plan/epics_milestone_dates_spec.rb[1:1:3]": 25.743414036, + "./qa/specs/features/ee/api/2_plan/epics_milestone_dates_spec.rb[1:1:4]": 17.40645266, + "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:1:1:1:1]": 1.899159639, + "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:1:1:2:1:1]": 2.37570206, + "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:1:2:1:1:1:1:1]": 1.346350015, + "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:1:2:1:1:1:2:1:1]": 1.183801546, + "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:2:1:1:1]": 8.128856163, + "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:2:2:1:1:1:1:1]": 1.380690753, + "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:2:2:1:1:2:1]": 0.097335669, + "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:2:2:1:2:1]": 0.09956121, + "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:2:2:2:1]": 0.079209265, + "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:2:3:1:1]": 9.692912799, + "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:2:3:2:1:1:1:1]": 1.689461795, + "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:3:1:1]": 4.791269977, + "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:3:1:2]": 3.392493948, + "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:3:2:1:1:1:1]": 0.264238843, + "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:3:2:1:1:1:2]": 1.318091627, + "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:3:2:1:1:1:3:1]": 1.823521926, + "./qa/specs/features/ee/api/9_tenant_scale/elasticsearch/advanced_global_advanced_syntax_search_spec.rb[1:1:1:1]": 66.019682451, + "./qa/specs/features/ee/api/9_tenant_scale/elasticsearch/advanced_global_advanced_syntax_search_spec.rb[1:1:1:2]": 39.39135041, + "./qa/specs/features/ee/api/9_tenant_scale/elasticsearch/elasticsearch_api_spec.rb[1:1:1]": 24.075599347, + "./qa/specs/features/ee/api/9_tenant_scale/elasticsearch/elasticsearch_api_spec.rb[1:1:2:1]": 43.30171114, + "./qa/specs/features/ee/api/9_tenant_scale/elasticsearch/elasticsearch_api_spec.rb[1:1:2:2]": 28.470758227, + "./qa/specs/features/ee/api/9_tenant_scale/elasticsearch/index_tests/commit_index/commit_index_spec.rb[1:1:1]": 31.44747142, + "./qa/specs/features/ee/api/9_tenant_scale/elasticsearch/index_tests/issues_index/issue_index_spec.rb[1:1:1]": 72.872250958, + "./qa/specs/features/ee/api/9_tenant_scale/elasticsearch/index_tests/main_index/blob_index_spec.rb[1:1:1]": 40.252409182, + "./qa/specs/features/ee/api/9_tenant_scale/elasticsearch/index_tests/merge_request_index/merge_request_index_spec.rb[1:1:1]": 63.477970837, + "./qa/specs/features/ee/api/9_tenant_scale/elasticsearch/index_tests/notes_index/note_index_spec.rb[1:1:1]": 62.85925672, + "./qa/specs/features/ee/browser_ui/10_govern/change_vulnerability_status_spec.rb[1:1:1]": 46.975265279, + "./qa/specs/features/ee/browser_ui/10_govern/change_vulnerability_status_spec.rb[1:1:2]": 47.303986459, + "./qa/specs/features/ee/browser_ui/10_govern/change_vulnerability_status_spec.rb[1:1:3]": 39.575272527, + "./qa/specs/features/ee/browser_ui/10_govern/create_merge_request_with_secure_spec.rb[1:1:1]": 71.378891385, + "./qa/specs/features/ee/browser_ui/10_govern/dismissed_vulnerabilities_in_security_widget_spec.rb[1:1:1]": 106.310033633, + "./qa/specs/features/ee/browser_ui/10_govern/explain_this_vulnerability_spec.rb[1:1:1]": 48.656577734, + "./qa/specs/features/ee/browser_ui/10_govern/export_vulnerability_report_spec.rb[1:1:1]": 15.908063331, + "./qa/specs/features/ee/browser_ui/10_govern/fix_vulnerability_workflow_spec.rb[1:1:1]": 144.069410289, + "./qa/specs/features/ee/browser_ui/10_govern/group/group_audit_event_streaming_spec.rb[1:1:1:1]": 13.295410423, + "./qa/specs/features/ee/browser_ui/10_govern/group/group_audit_event_streaming_spec.rb[1:1:2:1:1]": 14.898742257, + "./qa/specs/features/ee/browser_ui/10_govern/group/group_audit_event_streaming_spec.rb[1:1:2:2:1]": 16.824695576, + "./qa/specs/features/ee/browser_ui/10_govern/group/group_audit_event_streaming_spec.rb[1:1:2:3:1]": 13.136593429, + "./qa/specs/features/ee/browser_ui/10_govern/group/group_audit_logs_1_spec.rb[1:1:1:1:1]": 28.561804412, + "./qa/specs/features/ee/browser_ui/10_govern/group/group_audit_logs_1_spec.rb[1:1:2:1:1]": 16.635633392, + "./qa/specs/features/ee/browser_ui/10_govern/group/group_audit_logs_1_spec.rb[1:1:3:1:1]": 12.295847219, + "./qa/specs/features/ee/browser_ui/10_govern/group/group_audit_logs_1_spec.rb[1:1:4:1:1]": 34.657677724, + "./qa/specs/features/ee/browser_ui/10_govern/group/group_audit_logs_1_spec.rb[1:1:5:1:1]": 23.506024397, + "./qa/specs/features/ee/browser_ui/10_govern/group/group_ldap_sync_spec.rb[1:1:1:1:1]": 32.495312124, + "./qa/specs/features/ee/browser_ui/10_govern/group/group_ldap_sync_spec.rb[1:1:1:1:2]": 20.357829454, + "./qa/specs/features/ee/browser_ui/10_govern/group/group_ldap_sync_spec.rb[1:1:1:1:3]": 13.573113925, + "./qa/specs/features/ee/browser_ui/10_govern/group/group_ldap_sync_spec.rb[1:1:2:1:1]": 31.788637664, + "./qa/specs/features/ee/browser_ui/10_govern/group/group_ldap_sync_spec.rb[1:1:2:1:2]": 9.155989628, + "./qa/specs/features/ee/browser_ui/10_govern/group/group_ldap_sync_spec.rb[1:1:2:1:3]": 15.14022336, + "./qa/specs/features/ee/browser_ui/10_govern/group/restrict_by_ip_address_spec.rb[1:1:1:1:1]": 20.072571287, + "./qa/specs/features/ee/browser_ui/10_govern/group/restrict_by_ip_address_spec.rb[1:1:1:2:1]": 13.202158553, + "./qa/specs/features/ee/browser_ui/10_govern/group/restrict_by_ip_address_spec.rb[1:1:1:3:1]": 47.333176817, + "./qa/specs/features/ee/browser_ui/10_govern/group/restrict_by_ip_address_spec.rb[1:1:2:1:1]": 16.157089652, + "./qa/specs/features/ee/browser_ui/10_govern/group/restrict_by_ip_address_spec.rb[1:1:2:2:1]": 10.765356975, + "./qa/specs/features/ee/browser_ui/10_govern/group/restrict_by_ip_address_spec.rb[1:1:2:3:1]": 15.976094984, + "./qa/specs/features/ee/browser_ui/10_govern/group_pipeline_execution_policy_spec.rb[1:1:1]": 165.731185795, + "./qa/specs/features/ee/browser_ui/10_govern/group_pipeline_execution_policy_spec.rb[1:1:2]": 79.187989099, + "./qa/specs/features/ee/browser_ui/10_govern/instance/instance_audit_logs_spec.rb[1:1:1:1:1]": 22.14500532, + "./qa/specs/features/ee/browser_ui/10_govern/instance/instance_audit_logs_spec.rb[1:1:2:1:1]": 23.256443984, + "./qa/specs/features/ee/browser_ui/10_govern/instance/instance_audit_logs_spec.rb[1:1:3:1:1]": 29.269032535, + "./qa/specs/features/ee/browser_ui/10_govern/instance/instance_audit_logs_spec.rb[1:1:4:1:1]": 31.964503926, + "./qa/specs/features/ee/browser_ui/10_govern/instance/instance_audit_logs_spec.rb[1:1:5:1:1]": 30.323853794, + "./qa/specs/features/ee/browser_ui/10_govern/instance/instance_audit_logs_spec.rb[1:1:6:1:1]": 30.86096932, + "./qa/specs/features/ee/browser_ui/10_govern/project/project_audit_logs_spec.rb[1:1:1:1:1]": 44.243053563, + "./qa/specs/features/ee/browser_ui/10_govern/project/project_audit_logs_spec.rb[1:1:2:1:1]": 34.19654338, + "./qa/specs/features/ee/browser_ui/10_govern/project/project_audit_logs_spec.rb[1:1:3:1:1]": 29.71553929, + "./qa/specs/features/ee/browser_ui/10_govern/project/project_audit_logs_spec.rb[1:1:4:1:1]": 27.89401059, + "./qa/specs/features/ee/browser_ui/10_govern/project/project_audit_logs_spec.rb[1:1:5:1:1]": 58.697429841, + "./qa/specs/features/ee/browser_ui/10_govern/project/project_audit_logs_spec.rb[1:1:6:1:1]": 36.727309558, + "./qa/specs/features/ee/browser_ui/10_govern/project_security_dashboard_spec.rb[1:1:1]": 26.577856097, + "./qa/specs/features/ee/browser_ui/10_govern/project_security_dashboard_spec.rb[1:1:2]": 35.517904431, + "./qa/specs/features/ee/browser_ui/10_govern/scan_execution_policy_vulnerabilities_spec.rb[1:1:1]": 76.255500995, + "./qa/specs/features/ee/browser_ui/10_govern/scan_execution_policy_vulnerabilities_spec.rb[1:1:2]": 82.558011635, + "./qa/specs/features/ee/browser_ui/10_govern/scan_result_policy_license_finding_spec.rb[1:1:1]": 49.199501503, + "./qa/specs/features/ee/browser_ui/10_govern/scan_result_policy_vulnerabilities_spec.rb[1:1:1]": 117.611526734, + "./qa/specs/features/ee/browser_ui/10_govern/scan_result_policy_vulnerabilities_spec.rb[1:1:2]": 92.937129751, + "./qa/specs/features/ee/browser_ui/10_govern/security_policies_spec.rb[1:1:1]": 25.489066958, + "./qa/specs/features/ee/browser_ui/10_govern/security_policies_spec.rb[1:1:2]": 22.170381451, + "./qa/specs/features/ee/browser_ui/10_govern/security_policies_spec.rb[1:1:3]": 33.881534232, + "./qa/specs/features/ee/browser_ui/10_govern/security_reports_spec.rb[1:1:1]": 19.975156362, + "./qa/specs/features/ee/browser_ui/10_govern/security_reports_spec.rb[1:1:2]": 117.901409323, + "./qa/specs/features/ee/browser_ui/10_govern/security_reports_spec.rb[1:1:3]": 63.717820314, + "./qa/specs/features/ee/browser_ui/10_govern/security_reports_spec.rb[1:1:4]": 123.271606409, + "./qa/specs/features/ee/browser_ui/10_govern/security_reports_spec.rb[1:1:6:1]": 38.706925799, + "./qa/specs/features/ee/browser_ui/10_govern/user/minimal_access_user_spec.rb[1:1:1]": 24.151715831, + "./qa/specs/features/ee/browser_ui/10_govern/vulnerabilities_jira_integration_spec.rb[1:1:1]": 42.562710221, + "./qa/specs/features/ee/browser_ui/10_govern/vulnerability_management_spec.rb[1:1:1]": 76.762773166, + "./qa/specs/features/ee/browser_ui/10_govern/vulnerability_management_spec.rb[1:1:2]": 57.950134757, + "./qa/specs/features/ee/browser_ui/10_govern/vulnerability_management_spec.rb[1:1:3]": 103.572235094, + "./qa/specs/features/ee/browser_ui/10_govern/vulnerability_management_spec.rb[1:1:4]": 103.884004865, + "./qa/specs/features/ee/browser_ui/11_fulfillment/license/cloud_activation_spec.rb[1:1:1]": 19.519817991, + "./qa/specs/features/ee/browser_ui/11_fulfillment/license/license_spec.rb[1:1:1]": 7.57460835, + "./qa/specs/features/ee/browser_ui/11_fulfillment/saas_user_limit_experience_spec.rb[1:1:1:1]": 57.451251172, + "./qa/specs/features/ee/browser_ui/11_fulfillment/saas_user_limit_experience_spec.rb[1:1:1:2]": 36.162437192, + "./qa/specs/features/ee/browser_ui/11_fulfillment/saas_user_limit_experience_spec.rb[1:1:1:3]": 27.87518569, + "./qa/specs/features/ee/browser_ui/11_fulfillment/saas_user_limit_experience_spec.rb[1:1:1:4]": 63.296739876, + "./qa/specs/features/ee/browser_ui/11_fulfillment/utilization/free_namespace_storage_spec.rb[1:1:1:1]": 341.009588447, + "./qa/specs/features/ee/browser_ui/11_fulfillment/utilization/saas_user_caps_spec.rb[1:1:1:1]": 44.723411659, + "./qa/specs/features/ee/browser_ui/11_fulfillment/utilization/user_registration_billing_spec.rb[1:1:1:1:1]": 23.297850153, + "./qa/specs/features/ee/browser_ui/13_secure/cvs_dependency_scanning_spec.rb[1:1:1:1]": 75.638407947, + "./qa/specs/features/ee/browser_ui/13_secure/license_scanning_spec.rb[1:1:1:1]": 116.30680739, + "./qa/specs/features/ee/browser_ui/13_secure/on_demand_dast_spec.rb[1:1:1:1]": 110.920330885, + "./qa/specs/features/ee/browser_ui/15_growth/free_trial_spec.rb[1:1:1:1:1]": 44.079579599, + "./qa/specs/features/ee/browser_ui/15_growth/free_trial_spec.rb[1:1:1:2:1]": 24.888214996, + "./qa/specs/features/ee/browser_ui/16_ai_powered/duo_chat/duo_chat_spec.rb[1:1:1:1:1]": 28.27348307, + "./qa/specs/features/ee/browser_ui/16_ai_powered/duo_chat/duo_chat_spec.rb[1:1:1:2:1]": 14.801945633, + "./qa/specs/features/ee/browser_ui/16_ai_powered/duo_chat/root_cause_analysis_with_duo_chat_spec.rb[1:1:1:1]": 37.931425691, + "./qa/specs/features/ee/browser_ui/1_manage/integrations/jira_issues_list_spec.rb[1:1:1]": 23.264337878, + "./qa/specs/features/ee/browser_ui/1_manage/integrations/jira_issues_list_spec.rb[1:1:2]": 17.326720212, + "./qa/specs/features/ee/browser_ui/1_manage/integrations/jira_issues_list_spec.rb[1:1:3]": 18.062140518, + "./qa/specs/features/ee/browser_ui/2_plan/analytics/contribution_analytics_spec.rb[1:1:1]": 211.292243553, + "./qa/specs/features/ee/browser_ui/2_plan/analytics/mr_analytics_spec.rb[1:1:1]": 74.28075828, + "./qa/specs/features/ee/browser_ui/2_plan/analytics/value_stream_analytics_spec.rb[1:1:1:1:1:1]": 27.86812548, + "./qa/specs/features/ee/browser_ui/2_plan/analytics/value_stream_analytics_spec.rb[1:1:1:2:1:1]": 29.536940632, + "./qa/specs/features/ee/browser_ui/2_plan/analytics/value_stream_analytics_spec.rb[1:1:2:1]": 18.265951206, + "./qa/specs/features/ee/browser_ui/2_plan/burndown_chart/burndown_chart_spec.rb[1:1:1]": 22.641035335, + "./qa/specs/features/ee/browser_ui/2_plan/custom_email/custom_email_spec.rb[1:1:1]": 16.821151717, + "./qa/specs/features/ee/browser_ui/2_plan/epic/epics_management_spec.rb[1:1:1]": 56.793551099, + "./qa/specs/features/ee/browser_ui/2_plan/epic/epics_management_spec.rb[1:1:2]": 57.964668134, + "./qa/specs/features/ee/browser_ui/2_plan/epic/epics_management_spec.rb[1:1:3:1:1]": 54.337153238, + "./qa/specs/features/ee/browser_ui/2_plan/epic/epics_management_spec.rb[1:1:3:1:2]": 51.654257375, + "./qa/specs/features/ee/browser_ui/2_plan/epic/epics_management_spec.rb[1:1:3:1:3]": 95.184794161, + "./qa/specs/features/ee/browser_ui/2_plan/epic/epics_management_spec.rb[1:1:3:2]": 59.572176706, + "./qa/specs/features/ee/browser_ui/2_plan/epic/promote_issue_to_epic_spec.rb[1:1:1]": 63.20070909, + "./qa/specs/features/ee/browser_ui/2_plan/epic/roadmap_spec.rb[1:1:1]": 14.576608489, + "./qa/specs/features/ee/browser_ui/2_plan/group_wiki/create_group_wiki_page_spec.rb[1:1:1:1]": 19.813969824, + "./qa/specs/features/ee/browser_ui/2_plan/group_wiki/create_group_wiki_page_spec.rb[1:1:2:1]": 21.559228975, + "./qa/specs/features/ee/browser_ui/2_plan/group_wiki/delete_group_wiki_page_spec.rb[1:1:1]": 17.600620542, + "./qa/specs/features/ee/browser_ui/2_plan/group_wiki/file_upload_group_wiki_page_spec.rb[1:1:1]": 35.702110881, + "./qa/specs/features/ee/browser_ui/2_plan/insights/default_insights_spec.rb[1:1:1:1]": 15.555756158, + "./qa/specs/features/ee/browser_ui/2_plan/insights/default_insights_spec.rb[1:2:1:1]": 18.571270016, + "./qa/specs/features/ee/browser_ui/2_plan/issue/default_issue_template_spec.rb[1:1:1]": 30.402700367, + "./qa/specs/features/ee/browser_ui/2_plan/issue_boards/configurable_issue_board_spec.rb[1:1:1]": 19.263109267, + "./qa/specs/features/ee/browser_ui/2_plan/issue_boards/configure_issue_board_by_label_spec.rb[1:1:1]": 26.399046988, + "./qa/specs/features/ee/browser_ui/2_plan/issue_boards/create_group_issue_board_spec.rb[1:1:1]": 44.058644116, + "./qa/specs/features/ee/browser_ui/2_plan/issue_boards/group_issue_boards_spec.rb[1:1:1]": 42.505086799, + "./qa/specs/features/ee/browser_ui/2_plan/issue_boards/project_issue_boards_spec.rb[1:1:1:1]": 20.300711009, + "./qa/specs/features/ee/browser_ui/2_plan/issue_boards/project_issue_boards_spec.rb[1:1:2:1]": 20.460009522, + "./qa/specs/features/ee/browser_ui/2_plan/issue_boards/project_issue_boards_spec.rb[1:1:3:1]": 25.253992699, + "./qa/specs/features/ee/browser_ui/2_plan/issue_boards/read_only_board_configuration_spec.rb[1:1:1]": 32.519977572, + "./qa/specs/features/ee/browser_ui/2_plan/issue_boards/sum_of_issues_weights_spec.rb[1:1:1]": 22.535067519, + "./qa/specs/features/ee/browser_ui/2_plan/issues_analytics/issues_analytics_spec.rb[1:1:1:1]": 15.611320288, + "./qa/specs/features/ee/browser_ui/2_plan/issues_analytics/issues_analytics_spec.rb[1:2:1:1]": 15.906248199, + "./qa/specs/features/ee/browser_ui/2_plan/issues_weight/issue_weight_visualization_spec.rb[1:1:1]": 34.898537993, + "./qa/specs/features/ee/browser_ui/2_plan/iterations/assign_group_iteration_spec.rb[1:1:1]": 22.289509862, + "./qa/specs/features/ee/browser_ui/2_plan/iterations/create_group_iteration_spec.rb[1:1:1:1]": 24.342508949, + "./qa/specs/features/ee/browser_ui/2_plan/iterations/create_group_iteration_spec.rb[1:1:2:1]": 20.763176024, + "./qa/specs/features/ee/browser_ui/2_plan/multiple_assignees_for_issues/four_assignees_spec.rb[1:1:1]": 39.05453727, + "./qa/specs/features/ee/browser_ui/2_plan/multiple_assignees_for_issues/more_than_four_assignees_spec.rb[1:1:1]": 46.403286811, + "./qa/specs/features/ee/browser_ui/2_plan/multiple_assignees_for_issues/more_than_four_assignees_spec.rb[1:1:2]": 36.248777572, + "./qa/specs/features/ee/browser_ui/2_plan/scoped_labels/editing_scoped_labels_spec.rb[1:1:1]": 24.677114242, + "./qa/specs/features/ee/browser_ui/3_create/merge_request/approval_rules_spec.rb[1:1:1]": 106.008473686, + "./qa/specs/features/ee/browser_ui/3_create/merge_request/default_merge_request_template_spec.rb[1:1:1]": 48.185280618, + "./qa/specs/features/ee/browser_ui/3_create/merge_request/generate_commit_message_spec.rb[1:1:1:1]": 40.390914617, + "./qa/specs/features/ee/browser_ui/3_create/remote_development/workspace_actions_spec.rb[1:1:1:1:1]": 656.975314259, + "./qa/specs/features/ee/browser_ui/3_create/repository/assign_code_owners_spec.rb[1:1:1]": 77.835283702, + "./qa/specs/features/ee/browser_ui/3_create/repository/code_owners_spec.rb[1:1:1]": 29.858441116, + "./qa/specs/features/ee/browser_ui/3_create/repository/duo_chat_explain_code_spec.rb[1:1:1]": 28.16854103, + "./qa/specs/features/ee/browser_ui/3_create/repository/file_locking_spec.rb[1:1:1]": 72.35469694, + "./qa/specs/features/ee/browser_ui/3_create/repository/file_locking_spec.rb[1:1:2]": 67.618504346, + "./qa/specs/features/ee/browser_ui/3_create/repository/file_locking_spec.rb[1:1:3]": 62.841053401, + "./qa/specs/features/ee/browser_ui/3_create/repository/file_locking_spec.rb[1:1:4]": 52.428863271, + "./qa/specs/features/ee/browser_ui/3_create/repository/group_file_template_spec.rb[1:1:1]": 43.29283679, + "./qa/specs/features/ee/browser_ui/3_create/repository/merge_with_code_owner_in_root_group_spec.rb[1:1:1:1:1:1]": 63.188973147, + "./qa/specs/features/ee/browser_ui/3_create/repository/merge_with_code_owner_in_root_group_spec.rb[1:1:1:2:1:1]": 70.337770413, + "./qa/specs/features/ee/browser_ui/3_create/repository/merge_with_code_owner_in_subgroup_spec.rb[1:1:1:1:1:1]": 100.567065816, + "./qa/specs/features/ee/browser_ui/3_create/repository/merge_with_code_owner_in_subgroup_spec.rb[1:1:1:2:1:1]": 124.812630885, + "./qa/specs/features/ee/browser_ui/3_create/repository/merge_with_code_owner_in_subgroup_spec.rb[1:1:1:3:1:1]": 88.689713268, + "./qa/specs/features/ee/browser_ui/3_create/repository/prevent_forking_outside_group_spec.rb[1:1:1:1]": 32.727686225, + "./qa/specs/features/ee/browser_ui/3_create/repository/prevent_forking_outside_group_spec.rb[1:1:2:1]": 16.823762103, + "./qa/specs/features/ee/browser_ui/3_create/repository/project_templates_spec.rb[1:1:1:1]": 40.153010204, + "./qa/specs/features/ee/browser_ui/3_create/repository/project_templates_spec.rb[1:1:3:1]": 155.008247203, + "./qa/specs/features/ee/browser_ui/3_create/repository/pull_mirroring_over_http_spec.rb[1:1:1]": 54.098731282, + "./qa/specs/features/ee/browser_ui/3_create/repository/pull_mirroring_over_ssh_with_key_spec.rb[1:1:1]": 54.379182606, + "./qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb[1:1:1:1]": 30.876860964, + "./qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb[1:1:1:2]": 41.832940692, + "./qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb[1:1:1:3]": 42.084087554, + "./qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb[1:1:1:4]": 40.006651248, + "./qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb[1:1:1:5]": 60.515372624, + "./qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb[1:1:1:6]": 39.273377605, + "./qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb[1:1:1:7]": 40.238892956, + "./qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb[1:1:1:8]": 40.652133778, + "./qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb[1:1:1:9]": 49.307062759, + "./qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb[1:1:2:1]": 50.171645397, + "./qa/specs/features/ee/browser_ui/3_create/repository/restrict_push_protected_branch_spec.rb[1:1:1:1:1]": 49.067817193, + "./qa/specs/features/ee/browser_ui/3_create/repository/restrict_push_protected_branch_spec.rb[1:1:1:2:1]": 50.812467073, + "./qa/specs/features/ee/browser_ui/3_create/repository/restrict_push_protected_branch_spec.rb[1:1:2:1:1]": 51.568194275, + "./qa/specs/features/ee/browser_ui/3_create/repository/restrict_push_protected_branch_spec.rb[1:1:2:2:1]": 61.734276313, + "./qa/specs/features/ee/browser_ui/3_create/repository/restrict_push_protected_branch_spec.rb[1:1:3:1:1]": 46.483972431, + "./qa/specs/features/ee/browser_ui/3_create/web_ide/code_suggestions_in_web_ide_spec.rb[1:1:2:1:1:1:1:1]": 25.508524333, + "./qa/specs/features/ee/browser_ui/3_create/web_ide/code_suggestions_in_web_ide_spec.rb[1:1:2:1:1:2:1:1]": 27.60531065, + "./qa/specs/features/ee/browser_ui/3_create/web_ide/code_suggestions_in_web_ide_spec.rb[1:1:2:1:2:1:1]": 27.923196536, + "./qa/specs/features/ee/browser_ui/3_create/web_ide/code_suggestions_in_web_ide_spec.rb[1:1:2:2:1:1]": 25.22153005, + "./qa/specs/features/ee/browser_ui/4_verify/multi-project_pipelines_spec.rb[1:1:1]": 89.697462894, + "./qa/specs/features/ee/browser_ui/4_verify/parent_child_pipelines_dependent_relationship_spec.rb[1:1:1]": 45.471619148, + "./qa/specs/features/ee/browser_ui/4_verify/parent_child_pipelines_dependent_relationship_spec.rb[1:1:2]": 65.205954378, + "./qa/specs/features/ee/browser_ui/4_verify/pipeline_for_merged_result_spec.rb[1:1:1]": 53.854234828, + "./qa/specs/features/ee/browser_ui/4_verify/pipeline_subscription_with_group_owned_project_spec.rb[1:1:1:1]": 61.396500039, + "./qa/specs/features/ee/browser_ui/8_monitor/incident_management/incident_quick_action_spec.rb[1:1:1]": 16.936613385, + "./qa/specs/features/ee/browser_ui/9_tenant_scale/group/share_group_with_group_spec.rb[1:1:1]": 33.98725241 } diff --git a/qa/knapsack/master_report.json b/qa/knapsack/master_report.json index bc81aa19906..de56d4c558f 100644 --- a/qa/knapsack/master_report.json +++ b/qa/knapsack/master_report.json @@ -1,273 +1,293 @@ { - "qa/specs/features/api/10_govern/group_access_token_spec.rb": 41.89152790999999, - "qa/specs/features/api/10_govern/project_access_token_spec.rb": 70.851877031, - "qa/specs/features/api/12_systems/gitaly/automatic_failover_and_recovery_spec.rb": 95.432449593, - "qa/specs/features/api/12_systems/gitaly/backend_node_recovery_spec.rb": 99.391011406, - "qa/specs/features/api/12_systems/gitaly/distributed_reads_spec.rb": 109.46771509, - "qa/specs/features/api/12_systems/gitaly/gitaly_mtls_spec.rb": 17.343291911, - "qa/specs/features/api/1_manage/import/import_github_repo_spec.rb": 129.164534484, - "qa/specs/features/api/1_manage/integrations/webhook_events_spec.rb": 65.229723744, - "qa/specs/features/api/1_manage/migration/gitlab_migration_group_spec.rb": 48.070470498, - "qa/specs/features/api/1_manage/migration/gitlab_migration_issue_spec.rb": 207.126358293, - "qa/specs/features/api/1_manage/migration/gitlab_migration_pipeline_spec.rb": 93.817009078, - "qa/specs/features/api/1_manage/migration/gitlab_migration_project_spec.rb": 88.488855084, - "qa/specs/features/api/1_manage/rate_limits_spec.rb": 10.817814349, - "qa/specs/features/api/2_plan/closes_issue_via_pushing_a_commit_spec.rb": 25.181362408, - "qa/specs/features/api/3_create/merge_request/push_options_mwps_spec.rb": 21.039227909, - "qa/specs/features/api/3_create/merge_request/push_options_remove_source_branch_spec.rb": 14.02142123, - "qa/specs/features/api/3_create/merge_request/push_options_spec.rb": 37.865117153999996, - "qa/specs/features/api/3_create/merge_request/view_merge_requests_spec.rb": 0.626406801, - "qa/specs/features/api/3_create/repository/add_list_delete_branches_spec.rb": 17.916767084, - "qa/specs/features/api/3_create/repository/commit_to_templated_project_spec.rb": 20.598149251, - "qa/specs/features/api/3_create/repository/default_branch_name_setting_spec.rb": 14.032271367, - "qa/specs/features/api/3_create/repository/files_spec.rb": 13.535752991, - "qa/specs/features/api/3_create/repository/project_archive_compare_spec.rb": 15.889818879, - "qa/specs/features/api/3_create/repository/push_postreceive_idempotent_spec.rb": 21.785407327, - "qa/specs/features/api/3_create/repository/storage_size_spec.rb": 28.971710849, - "qa/specs/features/api/3_create/repository/tag_revision_trigger_prereceive_hook_spec.rb": 6.921551015, - "qa/specs/features/api/4_verify/api_variable_inheritance_with_forward_pipeline_variables_spec.rb": 71.715082498, - "qa/specs/features/api/4_verify/cancel_pipeline_when_block_user_spec.rb": 17.328745451, - "qa/specs/features/api/4_verify/file_variable_spec.rb": 64.614498647, - "qa/specs/features/api/4_verify/job_downloads_artifacts_spec.rb": 30.637977485, - "qa/specs/features/api/8_monitor/metrics_spec.rb": 4.9947513059999995, - "qa/specs/features/api/9_tenant_scale/user_inherited_access_spec.rb": 99.27348326900001, - "qa/specs/features/api/9_tenant_scale/users_spec.rb": 7.4314368129999995, - "qa/specs/features/browser_ui/10_govern/group/group_access_token_spec.rb": 19.842973029, - "qa/specs/features/browser_ui/10_govern/login/2fa_recovery_spec.rb": 54.068209482, - "qa/specs/features/browser_ui/10_govern/login/2fa_ssh_recovery_spec.rb": 50.374047094, - "qa/specs/features/browser_ui/10_govern/login/log_in_spec.rb": 13.416315795, - "qa/specs/features/browser_ui/10_govern/login/log_in_with_2fa_spec.rb": 99.725940112, - "qa/specs/features/browser_ui/10_govern/login/log_into_gitlab_via_ldap_spec.rb": 2.246884586, - "qa/specs/features/browser_ui/10_govern/login/log_into_mattermost_via_gitlab_spec.rb": 30.622130294, - "qa/specs/features/browser_ui/10_govern/login/login_via_instance_wide_saml_sso_spec.rb": 16.142231526, - "qa/specs/features/browser_ui/10_govern/login/oauth_login_with_github_spec.rb": 41.299020436, - "qa/specs/features/browser_ui/10_govern/login/register_spec.rb": 84.45297341, - "qa/specs/features/browser_ui/10_govern/project/project_access_token_spec.rb": 23.872107364, - "qa/specs/features/browser_ui/10_govern/user/impersonation_token_spec.rb": 28.468018175, - "qa/specs/features/browser_ui/10_govern/user/user_access_termination_spec.rb": 37.641448239, - "qa/specs/features/browser_ui/14_analytics/performance_bar_spec.rb": 40.632777364, - "qa/specs/features/browser_ui/14_analytics/service_ping_default_enabled_spec.rb": 12.320565322, - "qa/specs/features/browser_ui/14_analytics/service_ping_disabled_spec.rb": 13.042966732, - "qa/specs/features/browser_ui/1_manage/integrations/jenkins/jenkins_build_status_spec.rb": 56.880689742, - "qa/specs/features/browser_ui/1_manage/integrations/jira/jira_basic_integration_spec.rb": 57.073159272, - "qa/specs/features/browser_ui/1_manage/integrations/jira/jira_issue_import_spec.rb": 50.263795869, - "qa/specs/features/browser_ui/1_manage/integrations/pipeline_status_emails_spec.rb": 61.991930411, - "qa/specs/features/browser_ui/1_manage/migration/gitlab_migration_group_spec.rb": 59.967414554, - "qa/specs/features/browser_ui/1_manage/migration/gitlab_migration_user_contribution_reassignment_spec.rb": 178.914027498, - "qa/specs/features/browser_ui/2_plan/design_management/add_design_content_spec.rb": 20.491100126, - "qa/specs/features/browser_ui/2_plan/design_management/archive_design_content_spec.rb": 26.178544114, - "qa/specs/features/browser_ui/2_plan/design_management/modify_design_content_spec.rb": 20.094203457, - "qa/specs/features/browser_ui/2_plan/email/trigger_email_notification_spec.rb": 22.630998895, - "qa/specs/features/browser_ui/2_plan/issue/collapse_comments_in_discussions_spec.rb": 23.429482699, - "qa/specs/features/browser_ui/2_plan/issue/comment_issue_spec.rb": 23.141392028, - "qa/specs/features/browser_ui/2_plan/issue/create_issue_spec.rb": 210.43566028199996, - "qa/specs/features/browser_ui/2_plan/issue/custom_issue_template_spec.rb": 22.576892653, - "qa/specs/features/browser_ui/2_plan/issue/export_as_csv_spec.rb": 38.055066272, - "qa/specs/features/browser_ui/2_plan/issue/filter_issue_comments_spec.rb": 22.468371256, - "qa/specs/features/browser_ui/2_plan/issue/issue_suggestions_spec.rb": 24.090504464, - "qa/specs/features/browser_ui/2_plan/issue/mentions_spec.rb": 28.753010077, - "qa/specs/features/browser_ui/2_plan/issue/real_time_assignee_spec.rb": 22.667435895, - "qa/specs/features/browser_ui/2_plan/issue_boards/focus_mode_spec.rb": 11.468357899, - "qa/specs/features/browser_ui/2_plan/milestone/assign_milestone_spec.rb": 107.468536777, - "qa/specs/features/browser_ui/2_plan/milestone/create_group_milestone_spec.rb": 15.670750371, - "qa/specs/features/browser_ui/2_plan/milestone/create_project_milestone_spec.rb": 26.489814779, - "qa/specs/features/browser_ui/2_plan/project_wiki/project_based_content_creation_spec.rb": 70.59044387700001, - "qa/specs/features/browser_ui/2_plan/project_wiki/project_based_content_manipulation_spec.rb": 47.661285024, - "qa/specs/features/browser_ui/2_plan/project_wiki/project_based_directory_management_spec.rb": 13.196745475, - "qa/specs/features/browser_ui/2_plan/project_wiki/project_based_file_upload_spec.rb": 33.939516299, - "qa/specs/features/browser_ui/2_plan/project_wiki/project_based_list_spec.rb": 64.986832706, - "qa/specs/features/browser_ui/2_plan/project_wiki/project_based_page_deletion_spec.rb": 38.596370586999996, - "qa/specs/features/browser_ui/2_plan/related_issues/related_issues_spec.rb": 23.637905719, - "qa/specs/features/browser_ui/3_create/merge_request/add_batch_comments_in_merge_request_spec.rb": 94.804965046, - "qa/specs/features/browser_ui/3_create/merge_request/cherry_pick/cherry_pick_a_merge_spec.rb": 61.876072121, - "qa/specs/features/browser_ui/3_create/merge_request/cherry_pick/cherry_pick_commit_spec.rb": 38.641931169, - "qa/specs/features/browser_ui/3_create/merge_request/create_merge_request_spec.rb": 99.27304443099999, - "qa/specs/features/browser_ui/3_create/merge_request/merge_merge_request_from_fork_spec.rb": 32.097362975, - "qa/specs/features/browser_ui/3_create/merge_request/merge_request_set_to_auto_merge_spec.rb": 98.399291819, - "qa/specs/features/browser_ui/3_create/merge_request/rebase_merge_request_spec.rb": 78.358625484, - "qa/specs/features/browser_ui/3_create/merge_request/revert/revert_commit_spec.rb": 29.099789056, - "qa/specs/features/browser_ui/3_create/merge_request/revert/reverting_merge_request_spec.rb": 63.884452512, - "qa/specs/features/browser_ui/3_create/merge_request/suggestions/batch_suggestion_spec.rb": 73.312219981, - "qa/specs/features/browser_ui/3_create/merge_request/suggestions/custom_commit_suggestion_spec.rb": 59.663104611, - "qa/specs/features/browser_ui/3_create/merge_request/view_merge_request_diff_patch_spec.rb": 48.528793085000004, - "qa/specs/features/browser_ui/3_create/repository/add_file_template_spec.rb": 23.227132854, - "qa/specs/features/browser_ui/3_create/repository/add_new_branch_rule_spec.rb": 20.079322063, - "qa/specs/features/browser_ui/3_create/repository/branch_with_unusual_name_spec.rb": 11.048957115, - "qa/specs/features/browser_ui/3_create/repository/clone_spec.rb": 36.377727971, - "qa/specs/features/browser_ui/3_create/repository/license_detection_spec.rb": 35.583181482, - "qa/specs/features/browser_ui/3_create/repository/protected_tags_spec.rb": 92.027908827, - "qa/specs/features/browser_ui/3_create/repository/protocol_v2_push_http_spec.rb": 11.203736041, - "qa/specs/features/browser_ui/3_create/repository/protocol_v2_push_ssh_spec.rb": 28.745375984, - "qa/specs/features/browser_ui/3_create/repository/push_http_private_token_spec.rb": 25.42428777, - "qa/specs/features/browser_ui/3_create/repository/push_mirroring_lfs_over_http_spec.rb": 61.079432326, - "qa/specs/features/browser_ui/3_create/repository/push_mirroring_over_http_spec.rb": 74.21166571, - "qa/specs/features/browser_ui/3_create/repository/push_over_http_file_size_spec.rb": 43.247076832000005, - "qa/specs/features/browser_ui/3_create/repository/push_over_http_spec.rb": 29.612369532, - "qa/specs/features/browser_ui/3_create/repository/push_over_ssh_file_size_spec.rb": 53.361605086000004, - "qa/specs/features/browser_ui/3_create/repository/push_over_ssh_spec.rb": 66.632248425, - "qa/specs/features/browser_ui/3_create/repository/push_protected_branch_spec.rb": 8.917192596, - "qa/specs/features/browser_ui/3_create/repository/push_to_canary_gitaly_spec.rb": 21.862953077, - "qa/specs/features/browser_ui/3_create/repository/ssh_key_support_create_spec.rb": 21.292720569, - "qa/specs/features/browser_ui/3_create/repository/ssh_key_support_delete_spec.rb": 24.869882249, - "qa/specs/features/browser_ui/3_create/repository/user_views_commit_diff_patch_spec.rb": 32.124700605, - "qa/specs/features/browser_ui/3_create/snippet/add_comment_to_snippet_spec.rb": 24.469544398, - "qa/specs/features/browser_ui/3_create/snippet/add_file_to_snippet_spec.rb": 24.404964006, - "qa/specs/features/browser_ui/3_create/snippet/clone_push_pull_personal_snippet_spec.rb": 49.104983997999994, - "qa/specs/features/browser_ui/3_create/snippet/clone_push_pull_project_snippet_spec.rb": 48.835432894, - "qa/specs/features/browser_ui/3_create/snippet/copy_snippet_file_contents_spec.rb": 10.025282312, + "qa/specs/features/api/10_govern/group_access_token_spec.rb": 32.98999308, + "qa/specs/features/api/10_govern/project_access_token_spec.rb": 75.62535221, + "qa/specs/features/api/12_systems/gitaly/automatic_failover_and_recovery_spec.rb": 97.971406904, + "qa/specs/features/api/12_systems/gitaly/backend_node_recovery_spec.rb": 99.394917952, + "qa/specs/features/api/12_systems/gitaly/distributed_reads_spec.rb": 111.202909403, + "qa/specs/features/api/12_systems/gitaly/gitaly_mtls_spec.rb": 23.128792633, + "qa/specs/features/api/1_manage/import/import_github_repo_spec.rb": 98.601690677, + "qa/specs/features/api/1_manage/integrations/webhook_events_spec.rb": 63.884309438, + "qa/specs/features/api/1_manage/migration/gitlab_migration_group_spec.rb": 60.555716827, + "qa/specs/features/api/1_manage/migration/gitlab_migration_issue_spec.rb": 185.120150591, + "qa/specs/features/api/1_manage/migration/gitlab_migration_pipeline_spec.rb": 97.451122042, + "qa/specs/features/api/1_manage/migration/gitlab_migration_project_spec.rb": 101.663654195, + "qa/specs/features/api/1_manage/rate_limits_spec.rb": 14.907381728, + "qa/specs/features/api/2_plan/closes_issue_via_pushing_a_commit_spec.rb": 25.755076546, + "qa/specs/features/api/3_create/merge_request/push_options_mwps_spec.rb": 16.82332341, + "qa/specs/features/api/3_create/merge_request/push_options_remove_source_branch_spec.rb": 22.433046338, + "qa/specs/features/api/3_create/merge_request/push_options_spec.rb": 39.80516242, + "qa/specs/features/api/3_create/merge_request/view_merge_requests_spec.rb": 1.38181908, + "qa/specs/features/api/3_create/repository/add_list_delete_branches_spec.rb": 25.431371545, + "qa/specs/features/api/3_create/repository/commit_to_templated_project_spec.rb": 22.631262867, + "qa/specs/features/api/3_create/repository/default_branch_name_setting_spec.rb": 26.793694843000004, + "qa/specs/features/api/3_create/repository/project_archive_compare_spec.rb": 16.670677201, + "qa/specs/features/api/3_create/repository/push_postreceive_idempotent_spec.rb": 25.454150535, + "qa/specs/features/api/3_create/repository/storage_size_spec.rb": 28.961005929, + "qa/specs/features/api/3_create/repository/tag_revision_trigger_prereceive_hook_spec.rb": 10.547959073, + "qa/specs/features/api/4_verify/api_variable_inheritance_with_forward_pipeline_variables_spec.rb": 95.84142065, + "qa/specs/features/api/4_verify/cancel_pipeline_when_block_user_spec.rb": 26.575834034, + "qa/specs/features/api/4_verify/file_variable_spec.rb": 60.79006248, + "qa/specs/features/api/4_verify/job_downloads_artifacts_spec.rb": 39.828565691, + "qa/specs/features/api/5_package/container_registry/saas/container_registry_spec.rb": 69.770433031, + "qa/specs/features/api/8_monitor/metrics_spec.rb": 5.996862642, + "qa/specs/features/api/9_tenant_scale/user_inherited_access_spec.rb": 145.832127287, + "qa/specs/features/api/9_tenant_scale/users_spec.rb": 3.88771732, + "qa/specs/features/browser_ui/10_govern/group/group_access_token_spec.rb": 18.955245548, + "qa/specs/features/browser_ui/10_govern/login/2fa_recovery_spec.rb": 51.379482902, + "qa/specs/features/browser_ui/10_govern/login/2fa_ssh_recovery_spec.rb": 63.15838517, + "qa/specs/features/browser_ui/10_govern/login/log_in_spec.rb": 13.427990734, + "qa/specs/features/browser_ui/10_govern/login/log_in_with_2fa_spec.rb": 94.549567111, + "qa/specs/features/browser_ui/10_govern/login/log_into_gitlab_via_ldap_spec.rb": 4.26200593, + "qa/specs/features/browser_ui/10_govern/login/log_into_mattermost_via_gitlab_spec.rb": 30.355360322, + "qa/specs/features/browser_ui/10_govern/login/login_via_instance_wide_saml_sso_spec.rb": 16.78395848, + "qa/specs/features/browser_ui/10_govern/login/oauth_login_with_github_spec.rb": 41.820836674, + "qa/specs/features/browser_ui/10_govern/login/register_spec.rb": 101.892100194, + "qa/specs/features/browser_ui/10_govern/project/project_access_token_spec.rb": 25.906346348, + "qa/specs/features/browser_ui/10_govern/user/impersonation_token_spec.rb": 30.138602861, + "qa/specs/features/browser_ui/10_govern/user/user_access_termination_spec.rb": 44.138226734999996, + "qa/specs/features/browser_ui/14_analytics/performance_bar_spec.rb": 60.04423653, + "qa/specs/features/browser_ui/14_analytics/service_ping_default_enabled_spec.rb": 18.762676849, + "qa/specs/features/browser_ui/14_analytics/service_ping_disabled_spec.rb": 13.578009866, + "qa/specs/features/browser_ui/1_manage/integrations/jenkins/jenkins_build_status_spec.rb": 61.994387357, + "qa/specs/features/browser_ui/1_manage/integrations/jira/jira_basic_integration_spec.rb": 65.227220864, + "qa/specs/features/browser_ui/1_manage/integrations/jira/jira_issue_import_spec.rb": 46.776170762, + "qa/specs/features/browser_ui/1_manage/integrations/pipeline_status_emails_spec.rb": 73.78475297, + "qa/specs/features/browser_ui/1_manage/migration/gitlab_migration_group_spec.rb": 57.03791635, + "qa/specs/features/browser_ui/1_manage/migration/gitlab_migration_user_contribution_reassignment_spec.rb": 181.520241604, + "qa/specs/features/browser_ui/2_plan/design_management/add_design_content_spec.rb": 23.031130269, + "qa/specs/features/browser_ui/2_plan/design_management/archive_design_content_spec.rb": 29.780177896, + "qa/specs/features/browser_ui/2_plan/design_management/modify_design_content_spec.rb": 30.636613756, + "qa/specs/features/browser_ui/2_plan/email/trigger_email_notification_spec.rb": 16.470446876, + "qa/specs/features/browser_ui/2_plan/issue/collapse_comments_in_discussions_spec.rb": 23.402340109, + "qa/specs/features/browser_ui/2_plan/issue/comment_issue_spec.rb": 26.608420993, + "qa/specs/features/browser_ui/2_plan/issue/create_issue_spec.rb": 226.30203992999998, + "qa/specs/features/browser_ui/2_plan/issue/custom_issue_template_spec.rb": 30.203090855, + "qa/specs/features/browser_ui/2_plan/issue/export_as_csv_spec.rb": 40.13231434, + "qa/specs/features/browser_ui/2_plan/issue/filter_issue_comments_spec.rb": 24.860881753, + "qa/specs/features/browser_ui/2_plan/issue/issue_suggestions_spec.rb": 24.575106282, + "qa/specs/features/browser_ui/2_plan/issue/mentions_spec.rb": 33.018544554, + "qa/specs/features/browser_ui/2_plan/issue/real_time_assignee_spec.rb": 26.291870234, + "qa/specs/features/browser_ui/2_plan/issue_boards/focus_mode_spec.rb": 17.561810633, + "qa/specs/features/browser_ui/2_plan/milestone/assign_milestone_spec.rb": 106.336658382, + "qa/specs/features/browser_ui/2_plan/milestone/create_group_milestone_spec.rb": 22.587552274, + "qa/specs/features/browser_ui/2_plan/milestone/create_project_milestone_spec.rb": 28.049283666, + "qa/specs/features/browser_ui/2_plan/project_wiki/project_based_content_creation_spec.rb": 108.875066367, + "qa/specs/features/browser_ui/2_plan/project_wiki/project_based_content_manipulation_spec.rb": 69.419140123, + "qa/specs/features/browser_ui/2_plan/project_wiki/project_based_directory_management_spec.rb": 25.037219196, + "qa/specs/features/browser_ui/2_plan/project_wiki/project_based_file_upload_spec.rb": 38.413254353, + "qa/specs/features/browser_ui/2_plan/project_wiki/project_based_list_spec.rb": 70.598098006, + "qa/specs/features/browser_ui/2_plan/project_wiki/project_based_page_deletion_spec.rb": 59.092698467000005, + "qa/specs/features/browser_ui/2_plan/related_issues/related_issues_spec.rb": 24.049024633, + "qa/specs/features/browser_ui/3_create/merge_request/add_batch_comments_in_merge_request_spec.rb": 83.35424972999999, + "qa/specs/features/browser_ui/3_create/merge_request/cherry_pick/cherry_pick_a_merge_spec.rb": 65.769218013, + "qa/specs/features/browser_ui/3_create/merge_request/cherry_pick/cherry_pick_commit_spec.rb": 30.017509364, + "qa/specs/features/browser_ui/3_create/merge_request/create_merge_request_spec.rb": 92.452005772, + "qa/specs/features/browser_ui/3_create/merge_request/merge_merge_request_from_fork_spec.rb": 46.535589667, + "qa/specs/features/browser_ui/3_create/merge_request/merge_request_set_to_auto_merge_spec.rb": 85.059614424, + "qa/specs/features/browser_ui/3_create/merge_request/rebase_merge_request_spec.rb": 58.678788745, + "qa/specs/features/browser_ui/3_create/merge_request/revert/revert_commit_spec.rb": 38.031947034, + "qa/specs/features/browser_ui/3_create/merge_request/revert/reverting_merge_request_spec.rb": 107.744959716, + "qa/specs/features/browser_ui/3_create/merge_request/suggestions/batch_suggestion_spec.rb": 64.079688598, + "qa/specs/features/browser_ui/3_create/merge_request/suggestions/custom_commit_suggestion_spec.rb": 60.464588091, + "qa/specs/features/browser_ui/3_create/merge_request/view_merge_request_diff_patch_spec.rb": 47.575329799, + "qa/specs/features/browser_ui/3_create/repository/add_file_template_spec.rb": 27.119274477, + "qa/specs/features/browser_ui/3_create/repository/add_new_branch_rule_spec.rb": 30.340932638, + "qa/specs/features/browser_ui/3_create/repository/branch_with_unusual_name_spec.rb": 24.416460797, + "qa/specs/features/browser_ui/3_create/repository/clone_spec.rb": 26.239438601, + "qa/specs/features/browser_ui/3_create/repository/license_detection_spec.rb": 37.20657738, + "qa/specs/features/browser_ui/3_create/repository/protected_tags_spec.rb": 142.734936736, + "qa/specs/features/browser_ui/3_create/repository/protocol_v2_push_http_spec.rb": 24.264817229, + "qa/specs/features/browser_ui/3_create/repository/protocol_v2_push_ssh_spec.rb": 27.222468229, + "qa/specs/features/browser_ui/3_create/repository/push_http_private_token_spec.rb": 49.703005927, + "qa/specs/features/browser_ui/3_create/repository/push_mirroring_lfs_over_http_spec.rb": 84.31200969, + "qa/specs/features/browser_ui/3_create/repository/push_mirroring_over_http_spec.rb": 77.096792386, + "qa/specs/features/browser_ui/3_create/repository/push_over_http_file_size_spec.rb": 54.592720064000005, + "qa/specs/features/browser_ui/3_create/repository/push_over_http_spec.rb": 43.343972126, + "qa/specs/features/browser_ui/3_create/repository/push_over_ssh_file_size_spec.rb": 100.70291134499999, + "qa/specs/features/browser_ui/3_create/repository/push_over_ssh_spec.rb": 57.116473049999996, + "qa/specs/features/browser_ui/3_create/repository/push_protected_branch_spec.rb": 22.332861645, + "qa/specs/features/browser_ui/3_create/repository/push_to_canary_gitaly_spec.rb": 21.55505836, + "qa/specs/features/browser_ui/3_create/repository/ssh_key_support_create_spec.rb": 29.287778902, + "qa/specs/features/browser_ui/3_create/repository/ssh_key_support_delete_spec.rb": 26.294830596, + "qa/specs/features/browser_ui/3_create/repository/user_views_commit_diff_patch_spec.rb": 65.051120837, + "qa/specs/features/browser_ui/3_create/snippet/add_comment_to_snippet_spec.rb": 31.803789523, + "qa/specs/features/browser_ui/3_create/snippet/add_file_to_snippet_spec.rb": 51.590373962, + "qa/specs/features/browser_ui/3_create/snippet/clone_push_pull_personal_snippet_spec.rb": 83.905883157, + "qa/specs/features/browser_ui/3_create/snippet/clone_push_pull_project_snippet_spec.rb": 73.04176784399999, + "qa/specs/features/browser_ui/3_create/snippet/copy_snippet_file_contents_spec.rb": 20.481249541, "qa/specs/features/browser_ui/3_create/snippet/create_personal_snippet_spec.rb": 8.514641421, - "qa/specs/features/browser_ui/3_create/snippet/create_personal_snippet_with_multiple_files_spec.rb": 9.570704381, - "qa/specs/features/browser_ui/3_create/snippet/create_project_snippet_with_multiple_files_spec.rb": 23.238740797, - "qa/specs/features/browser_ui/3_create/snippet/delete_file_from_snippet_spec.rb": 23.457603789, - "qa/specs/features/browser_ui/3_create/snippet/share_snippet_spec.rb": 25.280216447, - "qa/specs/features/browser_ui/3_create/source_editor/source_editor_toolbar_spec.rb": 17.545476927, - "qa/specs/features/browser_ui/3_create/web_ide/add_first_file_in_web_ide_spec.rb": 34.662669595, - "qa/specs/features/browser_ui/3_create/web_ide/add_new_directory_in_web_ide_spec.rb": 66.200562963, - "qa/specs/features/browser_ui/3_create/web_ide/closing_web_ide_with_unsaved_changes_spec.rb": 15.322529505, - "qa/specs/features/browser_ui/3_create/web_ide/settings_sync_web_ide_spec.rb": 166.47355206, - "qa/specs/features/browser_ui/3_create/web_ide/upload_new_file_in_web_ide_spec.rb": 66.619502943, - "qa/specs/features/browser_ui/4_verify/ci_components_catalog/ci_catalog_sorting_spec.rb": 82.42868249, - "qa/specs/features/browser_ui/4_verify/ci_components_catalog/release_with_glab_spec.rb": 133.642486192, - "qa/specs/features/browser_ui/4_verify/ci_components_catalog/release_with_release_cli_spec.rb": 113.834911288, - "qa/specs/features/browser_ui/4_verify/ci_components_catalog/run_component_in_project_pipeline_spec.rb": 57.249749289, - "qa/specs/features/browser_ui/4_verify/ci_job_artifacts/expose_job_artifacts_in_mr_spec.rb": 58.427087267, - "qa/specs/features/browser_ui/4_verify/ci_job_artifacts/job_artifacts_access_keyword_spec.rb": 249.439823524, - "qa/specs/features/browser_ui/4_verify/ci_job_artifacts/unlocking_job_artifacts_across_pipelines_spec.rb": 312.44583669, - "qa/specs/features/browser_ui/4_verify/ci_project_artifacts/user_can_bulk_delete_artifacts_spec.rb": 54.950096164, - "qa/specs/features/browser_ui/4_verify/ci_variable/pipeline_with_protected_variable_spec.rb": 122.875642881, - "qa/specs/features/browser_ui/4_verify/ci_variable/raw_variables_defined_in_yaml_spec.rb": 35.246744232, - "qa/specs/features/browser_ui/4_verify/ci_variable/ui_variable_inheritable_when_forward_pipeline_variables_true_spec.rb": 94.619528505, - "qa/specs/features/browser_ui/4_verify/pipeline/include_local_config_file_paths_with_wildcard_spec.rb": 13.837831845, - "qa/specs/features/browser_ui/4_verify/pipeline/include_multiple_files_from_a_project_spec.rb": 60.85158251, - "qa/specs/features/browser_ui/4_verify/pipeline/include_multiple_files_from_multiple_projects_spec.rb": 45.45791998, - "qa/specs/features/browser_ui/4_verify/pipeline/parent_child_pipelines_independent_relationship_spec.rb": 90.84630595499999, - "qa/specs/features/browser_ui/4_verify/pipeline/pass_dotenv_variables_to_downstream_via_bridge_spec.rb": 46.28532263, - "qa/specs/features/browser_ui/4_verify/pipeline/run_pipeline_with_manual_jobs_spec.rb": 73.642136838, - "qa/specs/features/browser_ui/4_verify/pipeline/trigger_child_pipeline_with_manual_spec.rb": 77.531970216, - "qa/specs/features/browser_ui/4_verify/pipeline/trigger_matrix_spec.rb": 48.58576106, - "qa/specs/features/browser_ui/4_verify/pipeline/update_ci_file_with_pipeline_editor_spec.rb": 31.212123043, - "qa/specs/features/browser_ui/4_verify/runner/deprecated_registration_token_spec.rb": 17.247276666, - "qa/specs/features/browser_ui/4_verify/runner/deprecated_unregister_runner_spec.rb": 30.996238731, - "qa/specs/features/browser_ui/4_verify/runner/fleet_visibility/group_runner_counts_spec.rb": 23.910167087, - "qa/specs/features/browser_ui/4_verify/runner/fleet_visibility/group_runner_status_counts_spec.rb": 8.92125161, - "qa/specs/features/browser_ui/4_verify/runner/register_group_runner_spec.rb": 17.1114281, - "qa/specs/features/browser_ui/4_verify/runner/register_project_runner_spec.rb": 34.284755192, - "qa/specs/features/browser_ui/4_verify/runner/unregister_runner_spec.rb": 21.522259966, - "qa/specs/features/browser_ui/4_verify/testing/endpoint_coverage_spec.rb": 52.162786658, - "qa/specs/features/browser_ui/5_package/container_registry/self_managed/container_registry_spec.rb": 373.500013924, - "qa/specs/features/browser_ui/5_package/dependency_proxy/dependency_proxy_spec.rb": 180.723964984, - "qa/specs/features/browser_ui/5_package/package_registry/composer_registry_spec.rb": 59.730133437, - "qa/specs/features/browser_ui/5_package/package_registry/conan_repository_spec.rb": 68.298383306, - "qa/specs/features/browser_ui/5_package/package_registry/generic_repository_spec.rb": 75.839250653, - "qa/specs/features/browser_ui/5_package/package_registry/helm_registry_spec.rb": 247.22047817600003, - "qa/specs/features/browser_ui/5_package/package_registry/maven/maven_group_level_spec.rb": 484.390195019, - "qa/specs/features/browser_ui/5_package/package_registry/maven/maven_project_level_spec.rb": 269.336205395, - "qa/specs/features/browser_ui/5_package/package_registry/maven_gradle_repository_spec.rb": 259.698535986, - "qa/specs/features/browser_ui/5_package/package_registry/npm/npm_group_level_spec.rb": 297.910586706, - "qa/specs/features/browser_ui/5_package/package_registry/npm/npm_instance_level_spec.rb": 301.29194994, - "qa/specs/features/browser_ui/5_package/package_registry/pypi_repository_spec.rb": 96.771360244, - "qa/specs/features/browser_ui/6_release/deploy_key/add_deploy_key_spec.rb": 28.190565917, - "qa/specs/features/browser_ui/6_release/deploy_key/clone_using_deploy_key_spec.rb": 151.863373456, - "qa/specs/features/browser_ui/6_release/deploy_token/add_deploy_token_spec.rb": 12.316922408, - "qa/specs/features/browser_ui/8_monitor/alert_management/alert_settings_create_new_alerts_spec.rb": 45.776404371, - "qa/specs/features/browser_ui/8_monitor/alert_management/automatically_creates_incident_for_alert_spec.rb": 51.078624882, - "qa/specs/features/browser_ui/8_monitor/alert_management/create_alert_using_authorization_key_spec.rb": 45.418273453, - "qa/specs/features/browser_ui/8_monitor/alert_management/email_notification_for_alert_spec.rb": 63.056196486, - "qa/specs/features/browser_ui/8_monitor/alert_management/recovery_alert_resolves_correct_alert_spec.rb": 16.929797753, - "qa/specs/features/browser_ui/9_tenant_scale/group/create_group_with_mattermost_team_spec.rb": 11.556969526, - "qa/specs/features/browser_ui/9_tenant_scale/group/group_member_access_request_spec.rb": 56.76733375800001, - "qa/specs/features/browser_ui/9_tenant_scale/group/transfer_project_spec.rb": 25.786212519, - "qa/specs/features/browser_ui/9_tenant_scale/project/add_project_member_spec.rb": 26.637145377, - "qa/specs/features/browser_ui/9_tenant_scale/project/create_project_badge_spec.rb": 24.693772213, - "qa/specs/features/browser_ui/9_tenant_scale/project/create_project_spec.rb": 59.179694752, - "qa/specs/features/browser_ui/9_tenant_scale/project/dashboard_images_spec.rb": 10.907782001000001, - "qa/specs/features/browser_ui/9_tenant_scale/project/invite_group_to_project_spec.rb": 49.103437086, - "qa/specs/features/browser_ui/9_tenant_scale/project/project_owner_permissions_spec.rb": 173.02086177, - "qa/specs/features/browser_ui/9_tenant_scale/project/view_project_activity_spec.rb": 30.567224495, - "qa/specs/features/browser_ui/9_tenant_scale/user/follow_user_activity_spec.rb": 22.821764772, - "qa/specs/features/browser_ui/9_tenant_scale/user/parent_group_access_termination_spec.rb": 30.262389539, - "qa/specs/features/browser_ui/9_tenant_scale/user/user_inherited_access_spec.rb": 22.910057593, - "qa/specs/features/ee/api/10_govern/compliance_pipeline_spec.rb": 50.816734194, - "qa/specs/features/ee/api/10_govern/instance_audit_event_streaming_spec.rb": 49.073527357, - "qa/specs/features/ee/api/10_govern/user/minimal_access_user_spec.rb": 66.002169944, - "qa/specs/features/ee/api/1_manage/import/import_github_repo_spec.rb": 67.681438798, - "qa/specs/features/ee/api/1_manage/integrations/group_webhook_events_spec.rb": 7.522709878, - "qa/specs/features/ee/api/1_manage/migration/gitlab_migration_group_spec.rb": 73.01876149, - "qa/specs/features/ee/api/2_plan/epics_milestone_dates_spec.rb": 59.090955218000005, - "qa/specs/features/ee/api/3_create/code_suggestions_spec.rb": 45.086595003999996, - "qa/specs/features/ee/browser_ui/10_govern/change_vulnerability_status_spec.rb": 103.38601722499999, - "qa/specs/features/ee/browser_ui/10_govern/create_merge_request_with_secure_spec.rb": 68.657010137, - "qa/specs/features/ee/browser_ui/10_govern/dismissed_vulnerabilities_in_security_widget_spec.rb": 91.386168894, - "qa/specs/features/ee/browser_ui/10_govern/export_vulnerability_report_spec.rb": 20.804818843, - "qa/specs/features/ee/browser_ui/10_govern/fix_vulnerability_workflow_spec.rb": 141.324680587, - "qa/specs/features/ee/browser_ui/10_govern/group/group_audit_event_streaming_spec.rb": 66.040902286, - "qa/specs/features/ee/browser_ui/10_govern/group/group_audit_logs_1_spec.rb": 108.451956255, - "qa/specs/features/ee/browser_ui/10_govern/group/group_ldap_sync_spec.rb": 128.68466909900002, - "qa/specs/features/ee/browser_ui/10_govern/group/restrict_by_ip_address_spec.rb": 116.897048713, - "qa/specs/features/ee/browser_ui/10_govern/group_pipeline_execution_policy_spec.rb": 180.46779755, - "qa/specs/features/ee/browser_ui/10_govern/instance/instance_audit_logs_spec.rb": 97.280846308, - "qa/specs/features/ee/browser_ui/10_govern/project/project_audit_logs_spec.rb": 142.568276085, - "qa/specs/features/ee/browser_ui/10_govern/project_security_dashboard_spec.rb": 57.657883554, - "qa/specs/features/ee/browser_ui/10_govern/scan_execution_policy_vulnerabilities_spec.rb": 165.518080902, - "qa/specs/features/ee/browser_ui/10_govern/scan_result_policy_vulnerabilities_spec.rb": 123.75335889000002, - "qa/specs/features/ee/browser_ui/10_govern/security_policies_spec.rb": 84.16228416199999, - "qa/specs/features/ee/browser_ui/10_govern/security_reports_spec.rb": 363.622779702, - "qa/specs/features/ee/browser_ui/10_govern/user/minimal_access_user_spec.rb": 12.783057761, - "qa/specs/features/ee/browser_ui/10_govern/vulnerabilities_jira_integration_spec.rb": 41.254110492, - "qa/specs/features/ee/browser_ui/10_govern/vulnerability_management_spec.rb": 358.3432609, - "qa/specs/features/ee/browser_ui/11_fulfillment/license/cloud_activation_spec.rb": 14.016590081, - "qa/specs/features/ee/browser_ui/11_fulfillment/license/license_spec.rb": 5.39033329, - "qa/specs/features/ee/browser_ui/11_fulfillment/utilization/user_registration_billing_spec.rb": 16.506609457, - "qa/specs/features/ee/browser_ui/13_secure/cvs_dependency_scanning_spec.rb": 27.190837332, - "qa/specs/features/ee/browser_ui/13_secure/on_demand_dast_spec.rb": 129.57212996, - "qa/specs/features/ee/browser_ui/16_ai_powered/duo_chat/duo_chat_spec.rb": 16.736182891, - "qa/specs/features/ee/browser_ui/1_manage/integrations/jira_issues_list_spec.rb": 55.17808449899999, - "qa/specs/features/ee/browser_ui/2_plan/analytics/contribution_analytics_spec.rb": 73.532939838, - "qa/specs/features/ee/browser_ui/2_plan/analytics/mr_analytics_spec.rb": 48.521325192, - "qa/specs/features/ee/browser_ui/2_plan/analytics/value_stream_analytics_spec.rb": 30.000179338, - "qa/specs/features/ee/browser_ui/2_plan/burndown_chart/burndown_chart_spec.rb": 21.527917249, - "qa/specs/features/ee/browser_ui/2_plan/custom_email/custom_email_spec.rb": 13.979232287, - "qa/specs/features/ee/browser_ui/2_plan/epic/epics_management_spec.rb": 199.27937587600002, - "qa/specs/features/ee/browser_ui/2_plan/epic/promote_issue_to_epic_spec.rb": 46.375081679, - "qa/specs/features/ee/browser_ui/2_plan/epic/roadmap_spec.rb": 8.06298025, - "qa/specs/features/ee/browser_ui/2_plan/group_wiki/create_group_wiki_page_spec.rb": 22.378114707, - "qa/specs/features/ee/browser_ui/2_plan/group_wiki/delete_group_wiki_page_spec.rb": 16.458226292, - "qa/specs/features/ee/browser_ui/2_plan/group_wiki/file_upload_group_wiki_page_spec.rb": 27.464608761, - "qa/specs/features/ee/browser_ui/2_plan/insights/default_insights_spec.rb": 26.454088007, - "qa/specs/features/ee/browser_ui/2_plan/issue/default_issue_template_spec.rb": 30.080699217, - "qa/specs/features/ee/browser_ui/2_plan/issue_boards/configurable_issue_board_spec.rb": 17.376470062, - "qa/specs/features/ee/browser_ui/2_plan/issue_boards/configure_issue_board_by_label_spec.rb": 24.665774586, - "qa/specs/features/ee/browser_ui/2_plan/issue_boards/create_group_issue_board_spec.rb": 22.804704234, - "qa/specs/features/ee/browser_ui/2_plan/issue_boards/group_issue_boards_spec.rb": 15.620382211, - "qa/specs/features/ee/browser_ui/2_plan/issue_boards/project_issue_boards_spec.rb": 47.242724384, - "qa/specs/features/ee/browser_ui/2_plan/issue_boards/read_only_board_configuration_spec.rb": 21.419591115, - "qa/specs/features/ee/browser_ui/2_plan/issue_boards/sum_of_issues_weights_spec.rb": 14.38292385, - "qa/specs/features/ee/browser_ui/2_plan/issues_analytics/issues_analytics_spec.rb": 18.465045738, - "qa/specs/features/ee/browser_ui/2_plan/issues_weight/issue_weight_visualization_spec.rb": 27.18952343, - "qa/specs/features/ee/browser_ui/2_plan/iterations/assign_group_iteration_spec.rb": 17.28927439, - "qa/specs/features/ee/browser_ui/2_plan/iterations/create_group_iteration_spec.rb": 36.317261154, - "qa/specs/features/ee/browser_ui/2_plan/multiple_assignees_for_issues/four_assignees_spec.rb": 43.217480413, - "qa/specs/features/ee/browser_ui/2_plan/multiple_assignees_for_issues/more_than_four_assignees_spec.rb": 55.06851288599999, - "qa/specs/features/ee/browser_ui/2_plan/scoped_labels/editing_scoped_labels_spec.rb": 15.888986762, - "qa/specs/features/ee/browser_ui/3_create/merge_request/approval_rules_spec.rb": 81.516824255, - "qa/specs/features/ee/browser_ui/3_create/merge_request/default_merge_request_template_spec.rb": 19.924696388, - "qa/specs/features/ee/browser_ui/3_create/repository/assign_code_owners_spec.rb": 42.055998775, - "qa/specs/features/ee/browser_ui/3_create/repository/code_owners_spec.rb": 28.884191453, - "qa/specs/features/ee/browser_ui/3_create/repository/file_locking_spec.rb": 149.098831152, - "qa/specs/features/ee/browser_ui/3_create/repository/group_file_template_spec.rb": 30.036853988, - "qa/specs/features/ee/browser_ui/3_create/repository/merge_with_code_owner_in_root_group_spec.rb": 123.885874959, - "qa/specs/features/ee/browser_ui/3_create/repository/merge_with_code_owner_in_subgroup_spec.rb": 182.74925166600002, - "qa/specs/features/ee/browser_ui/3_create/repository/prevent_forking_outside_group_spec.rb": 44.803314304, - "qa/specs/features/ee/browser_ui/3_create/repository/project_templates_spec.rb": 71.093189651, - "qa/specs/features/ee/browser_ui/3_create/repository/pull_mirroring_over_http_spec.rb": 26.408467189, - "qa/specs/features/ee/browser_ui/3_create/repository/pull_mirroring_over_ssh_with_key_spec.rb": 55.784349268, - "qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb": 298.09492799300006, - "qa/specs/features/ee/browser_ui/3_create/repository/restrict_push_protected_branch_spec.rb": 177.829345208, - "qa/specs/features/ee/browser_ui/3_create/web_ide/code_suggestions_in_web_ide_spec.rb": 128.765366845, - "qa/specs/features/ee/browser_ui/4_verify/multi-project_pipelines_spec.rb": 34.817199201, - "qa/specs/features/ee/browser_ui/4_verify/parent_child_pipelines_dependent_relationship_spec.rb": 79.786370246, - "qa/specs/features/ee/browser_ui/4_verify/pipeline_for_merged_result_spec.rb": 48.548480024, - "qa/specs/features/ee/browser_ui/4_verify/pipeline_subscription_with_group_owned_project_spec.rb": 58.251654546, - "qa/specs/features/ee/browser_ui/8_monitor/incident_management/incident_quick_action_spec.rb": 20.689093678, - "qa/specs/features/ee/browser_ui/9_tenant_scale/group/share_group_with_group_spec.rb": 23.810004361 + "qa/specs/features/browser_ui/3_create/snippet/create_personal_snippet_with_multiple_files_spec.rb": 14.67105945, + "qa/specs/features/browser_ui/3_create/snippet/create_project_snippet_with_multiple_files_spec.rb": 28.514565884, + "qa/specs/features/browser_ui/3_create/snippet/delete_file_from_snippet_spec.rb": 47.298550792, + "qa/specs/features/browser_ui/3_create/snippet/share_snippet_spec.rb": 34.434016889, + "qa/specs/features/browser_ui/3_create/source_editor/source_editor_toolbar_spec.rb": 25.014898858, + "qa/specs/features/browser_ui/3_create/web_ide/add_first_file_in_web_ide_spec.rb": 42.752924537, + "qa/specs/features/browser_ui/3_create/web_ide/add_new_directory_in_web_ide_spec.rb": 84.502238036, + "qa/specs/features/browser_ui/3_create/web_ide/closing_web_ide_with_unsaved_changes_spec.rb": 24.250358427, + "qa/specs/features/browser_ui/3_create/web_ide/settings_sync_web_ide_spec.rb": 180.07976596700001, + "qa/specs/features/browser_ui/3_create/web_ide/upload_new_file_in_web_ide_spec.rb": 96.65252819099999, + "qa/specs/features/browser_ui/4_verify/ci_components_catalog/ci_catalog_sorting_spec.rb": 86.128659366, + "qa/specs/features/browser_ui/4_verify/ci_components_catalog/release_with_glab_spec.rb": 121.634773435, + "qa/specs/features/browser_ui/4_verify/ci_components_catalog/release_with_release_cli_spec.rb": 116.303910391, + "qa/specs/features/browser_ui/4_verify/ci_components_catalog/run_component_in_project_pipeline_spec.rb": 55.741715074, + "qa/specs/features/browser_ui/4_verify/ci_job_artifacts/expose_job_artifacts_in_mr_spec.rb": 66.436168654, + "qa/specs/features/browser_ui/4_verify/ci_job_artifacts/job_artifacts_access_keyword_spec.rb": 260.885521371, + "qa/specs/features/browser_ui/4_verify/ci_job_artifacts/unlocking_job_artifacts_across_pipelines_spec.rb": 319.85414603000004, + "qa/specs/features/browser_ui/4_verify/ci_project_artifacts/user_can_bulk_delete_artifacts_spec.rb": 73.521802689, + "qa/specs/features/browser_ui/4_verify/ci_variable/pipeline_with_protected_variable_spec.rb": 134.719012043, + "qa/specs/features/browser_ui/4_verify/ci_variable/raw_variables_defined_in_yaml_spec.rb": 33.577634151, + "qa/specs/features/browser_ui/4_verify/ci_variable/ui_variable_inheritable_when_forward_pipeline_variables_true_spec.rb": 84.286087112, + "qa/specs/features/browser_ui/4_verify/pipeline/include_local_config_file_paths_with_wildcard_spec.rb": 18.525020519, + "qa/specs/features/browser_ui/4_verify/pipeline/include_multiple_files_from_a_project_spec.rb": 54.886224503, + "qa/specs/features/browser_ui/4_verify/pipeline/include_multiple_files_from_multiple_projects_spec.rb": 64.229339559, + "qa/specs/features/browser_ui/4_verify/pipeline/parent_child_pipelines_independent_relationship_spec.rb": 112.862791923, + "qa/specs/features/browser_ui/4_verify/pipeline/pass_dotenv_variables_to_downstream_via_bridge_spec.rb": 66.298914071, + "qa/specs/features/browser_ui/4_verify/pipeline/run_pipeline_with_manual_jobs_spec.rb": 66.049358924, + "qa/specs/features/browser_ui/4_verify/pipeline/trigger_child_pipeline_with_manual_spec.rb": 65.493875232, + "qa/specs/features/browser_ui/4_verify/pipeline/trigger_matrix_spec.rb": 50.079680864, + "qa/specs/features/browser_ui/4_verify/pipeline/update_ci_file_with_pipeline_editor_spec.rb": 31.110243067, + "qa/specs/features/browser_ui/4_verify/runner/deprecated_registration_token_spec.rb": 23.618801349, + "qa/specs/features/browser_ui/4_verify/runner/deprecated_unregister_runner_spec.rb": 39.029569115, + "qa/specs/features/browser_ui/4_verify/runner/fleet_visibility/group_runner_counts_spec.rb": 25.616882657, + "qa/specs/features/browser_ui/4_verify/runner/fleet_visibility/group_runner_status_counts_spec.rb": 17.609245948, + "qa/specs/features/browser_ui/4_verify/runner/register_group_runner_spec.rb": 20.499690898, + "qa/specs/features/browser_ui/4_verify/runner/register_project_runner_spec.rb": 45.242119367, + "qa/specs/features/browser_ui/4_verify/runner/unregister_runner_spec.rb": 26.076009522, + "qa/specs/features/browser_ui/4_verify/testing/endpoint_coverage_spec.rb": 54.246992046, + "qa/specs/features/browser_ui/5_package/container_registry/saas/container_registry_spec.rb": 165.693115559, + "qa/specs/features/browser_ui/5_package/container_registry/self_managed/container_registry_spec.rb": 345.187678671, + "qa/specs/features/browser_ui/5_package/dependency_proxy/dependency_proxy_spec.rb": 172.648268037, + "qa/specs/features/browser_ui/5_package/package_registry/composer_registry_spec.rb": 67.483790802, + "qa/specs/features/browser_ui/5_package/package_registry/conan_repository_spec.rb": 97.870222592, + "qa/specs/features/browser_ui/5_package/package_registry/generic_repository_spec.rb": 133.504862177, + "qa/specs/features/browser_ui/5_package/package_registry/helm_registry_spec.rb": 382.312482672, + "qa/specs/features/browser_ui/5_package/package_registry/maven/maven_group_level_spec.rb": 591.8489436350001, + "qa/specs/features/browser_ui/5_package/package_registry/maven/maven_project_level_spec.rb": 285.250109461, + "qa/specs/features/browser_ui/5_package/package_registry/maven_gradle_repository_spec.rb": 304.329392175, + "qa/specs/features/browser_ui/5_package/package_registry/npm/npm_group_level_spec.rb": 335.093454552, + "qa/specs/features/browser_ui/5_package/package_registry/npm/npm_instance_level_spec.rb": 285.115592965, + "qa/specs/features/browser_ui/5_package/package_registry/pypi_repository_spec.rb": 107.899088585, + "qa/specs/features/browser_ui/6_release/deploy_key/add_deploy_key_spec.rb": 29.988003167, + "qa/specs/features/browser_ui/6_release/deploy_key/clone_using_deploy_key_spec.rb": 187.45400691700002, + "qa/specs/features/browser_ui/6_release/deploy_token/add_deploy_token_spec.rb": 15.694988036, + "qa/specs/features/browser_ui/8_monitor/alert_management/alert_settings_create_new_alerts_spec.rb": 56.424444699, + "qa/specs/features/browser_ui/8_monitor/alert_management/automatically_creates_incident_for_alert_spec.rb": 69.98793122000001, + "qa/specs/features/browser_ui/8_monitor/alert_management/create_alert_using_authorization_key_spec.rb": 47.768660694, + "qa/specs/features/browser_ui/8_monitor/alert_management/email_notification_for_alert_spec.rb": 69.965951869, + "qa/specs/features/browser_ui/8_monitor/alert_management/recovery_alert_resolves_correct_alert_spec.rb": 29.011678497, + "qa/specs/features/browser_ui/9_tenant_scale/group/create_group_with_mattermost_team_spec.rb": 9.344660726, + "qa/specs/features/browser_ui/9_tenant_scale/group/group_member_access_request_spec.rb": 65.26559089599999, + "qa/specs/features/browser_ui/9_tenant_scale/group/transfer_project_spec.rb": 27.244025476, + "qa/specs/features/browser_ui/9_tenant_scale/project/add_project_member_spec.rb": 32.014529209, + "qa/specs/features/browser_ui/9_tenant_scale/project/create_project_badge_spec.rb": 20.068110387, + "qa/specs/features/browser_ui/9_tenant_scale/project/create_project_spec.rb": 67.337069478, + "qa/specs/features/browser_ui/9_tenant_scale/project/dashboard_images_spec.rb": 22.587608685, + "qa/specs/features/browser_ui/9_tenant_scale/project/invite_group_to_project_spec.rb": 53.449546747, + "qa/specs/features/browser_ui/9_tenant_scale/project/project_owner_permissions_spec.rb": 171.14910748399998, + "qa/specs/features/browser_ui/9_tenant_scale/project/view_project_activity_spec.rb": 35.743874052, + "qa/specs/features/browser_ui/9_tenant_scale/user/follow_user_activity_spec.rb": 31.223309247, + "qa/specs/features/browser_ui/9_tenant_scale/user/parent_group_access_termination_spec.rb": 27.375015555, + "qa/specs/features/browser_ui/9_tenant_scale/user/user_inherited_access_spec.rb": 66.960839159, + "qa/specs/features/ee/api/10_govern/compliance_pipeline_spec.rb": 38.562984764, + "qa/specs/features/ee/api/10_govern/instance_audit_event_streaming_spec.rb": 37.026030479, + "qa/specs/features/ee/api/10_govern/user/minimal_access_user_spec.rb": 80.57801924500001, + "qa/specs/features/ee/api/1_manage/import/import_github_repo_spec.rb": 131.481349437, + "qa/specs/features/ee/api/1_manage/integrations/group_webhook_events_spec.rb": 13.047155732, + "qa/specs/features/ee/api/1_manage/migration/gitlab_migration_group_spec.rb": 62.834426385, + "qa/specs/features/ee/api/2_plan/analytics/dora_metrics_spec.rb": 2.3438559850000003, + "qa/specs/features/ee/api/2_plan/epics_milestone_dates_spec.rb": 82.006404714, + "qa/specs/features/ee/api/3_create/code_suggestions_spec.rb": 39.562657235, + "qa/specs/features/ee/api/9_tenant_scale/elasticsearch/advanced_global_advanced_syntax_search_spec.rb": 105.411032861, + "qa/specs/features/ee/api/9_tenant_scale/elasticsearch/elasticsearch_api_spec.rb": 95.84806871400001, + "qa/specs/features/ee/api/9_tenant_scale/elasticsearch/index_tests/commit_index/commit_index_spec.rb": 31.44747142, + "qa/specs/features/ee/api/9_tenant_scale/elasticsearch/index_tests/issues_index/issue_index_spec.rb": 72.872250958, + "qa/specs/features/ee/api/9_tenant_scale/elasticsearch/index_tests/main_index/blob_index_spec.rb": 40.252409182, + "qa/specs/features/ee/api/9_tenant_scale/elasticsearch/index_tests/merge_request_index/merge_request_index_spec.rb": 63.477970837, + "qa/specs/features/ee/api/9_tenant_scale/elasticsearch/index_tests/notes_index/note_index_spec.rb": 62.85925672, + "qa/specs/features/ee/browser_ui/10_govern/change_vulnerability_status_spec.rb": 133.854524265, + "qa/specs/features/ee/browser_ui/10_govern/create_merge_request_with_secure_spec.rb": 71.378891385, + "qa/specs/features/ee/browser_ui/10_govern/dismissed_vulnerabilities_in_security_widget_spec.rb": 106.310033633, + "qa/specs/features/ee/browser_ui/10_govern/explain_this_vulnerability_spec.rb": 48.656577734, + "qa/specs/features/ee/browser_ui/10_govern/export_vulnerability_report_spec.rb": 15.908063331, + "qa/specs/features/ee/browser_ui/10_govern/fix_vulnerability_workflow_spec.rb": 144.069410289, + "qa/specs/features/ee/browser_ui/10_govern/group/group_audit_event_streaming_spec.rb": 58.155441685, + "qa/specs/features/ee/browser_ui/10_govern/group/group_audit_logs_1_spec.rb": 115.65698714400001, + "qa/specs/features/ee/browser_ui/10_govern/group/group_ldap_sync_spec.rb": 122.51110615500002, + "qa/specs/features/ee/browser_ui/10_govern/group/restrict_by_ip_address_spec.rb": 123.506448268, + "qa/specs/features/ee/browser_ui/10_govern/group_pipeline_execution_policy_spec.rb": 244.91917489399998, + "qa/specs/features/ee/browser_ui/10_govern/instance/instance_audit_logs_spec.rb": 167.819808879, + "qa/specs/features/ee/browser_ui/10_govern/project/project_audit_logs_spec.rb": 231.473886222, + "qa/specs/features/ee/browser_ui/10_govern/project_security_dashboard_spec.rb": 62.095760528, + "qa/specs/features/ee/browser_ui/10_govern/scan_execution_policy_vulnerabilities_spec.rb": 158.81351263, + "qa/specs/features/ee/browser_ui/10_govern/scan_result_policy_license_finding_spec.rb": 49.199501503, + "qa/specs/features/ee/browser_ui/10_govern/scan_result_policy_vulnerabilities_spec.rb": 210.54865648499998, + "qa/specs/features/ee/browser_ui/10_govern/security_policies_spec.rb": 81.540982641, + "qa/specs/features/ee/browser_ui/10_govern/security_reports_spec.rb": 363.572918207, + "qa/specs/features/ee/browser_ui/10_govern/user/minimal_access_user_spec.rb": 24.151715831, + "qa/specs/features/ee/browser_ui/10_govern/vulnerabilities_jira_integration_spec.rb": 42.562710221, + "qa/specs/features/ee/browser_ui/10_govern/vulnerability_management_spec.rb": 342.169147882, + "qa/specs/features/ee/browser_ui/11_fulfillment/license/cloud_activation_spec.rb": 19.519817991, + "qa/specs/features/ee/browser_ui/11_fulfillment/license/license_spec.rb": 7.57460835, + "qa/specs/features/ee/browser_ui/11_fulfillment/saas_user_limit_experience_spec.rb": 184.78561392999998, + "qa/specs/features/ee/browser_ui/11_fulfillment/utilization/free_namespace_storage_spec.rb": 341.009588447, + "qa/specs/features/ee/browser_ui/11_fulfillment/utilization/saas_user_caps_spec.rb": 44.723411659, + "qa/specs/features/ee/browser_ui/11_fulfillment/utilization/user_registration_billing_spec.rb": 23.297850153, + "qa/specs/features/ee/browser_ui/13_secure/cvs_dependency_scanning_spec.rb": 75.638407947, + "qa/specs/features/ee/browser_ui/13_secure/license_scanning_spec.rb": 116.30680739, + "qa/specs/features/ee/browser_ui/13_secure/on_demand_dast_spec.rb": 110.920330885, + "qa/specs/features/ee/browser_ui/15_growth/free_trial_spec.rb": 68.967794595, + "qa/specs/features/ee/browser_ui/16_ai_powered/duo_chat/duo_chat_spec.rb": 43.075428703, + "qa/specs/features/ee/browser_ui/16_ai_powered/duo_chat/root_cause_analysis_with_duo_chat_spec.rb": 37.931425691, + "qa/specs/features/ee/browser_ui/1_manage/integrations/jira_issues_list_spec.rb": 58.653198608000004, + "qa/specs/features/ee/browser_ui/2_plan/analytics/contribution_analytics_spec.rb": 211.292243553, + "qa/specs/features/ee/browser_ui/2_plan/analytics/mr_analytics_spec.rb": 74.28075828, + "qa/specs/features/ee/browser_ui/2_plan/analytics/value_stream_analytics_spec.rb": 75.671017318, + "qa/specs/features/ee/browser_ui/2_plan/burndown_chart/burndown_chart_spec.rb": 22.641035335, + "qa/specs/features/ee/browser_ui/2_plan/custom_email/custom_email_spec.rb": 16.821151717, + "qa/specs/features/ee/browser_ui/2_plan/epic/epics_management_spec.rb": 375.506600713, + "qa/specs/features/ee/browser_ui/2_plan/epic/promote_issue_to_epic_spec.rb": 63.20070909, + "qa/specs/features/ee/browser_ui/2_plan/epic/roadmap_spec.rb": 14.576608489, + "qa/specs/features/ee/browser_ui/2_plan/group_wiki/create_group_wiki_page_spec.rb": 41.373198799, + "qa/specs/features/ee/browser_ui/2_plan/group_wiki/delete_group_wiki_page_spec.rb": 17.600620542, + "qa/specs/features/ee/browser_ui/2_plan/group_wiki/file_upload_group_wiki_page_spec.rb": 35.702110881, + "qa/specs/features/ee/browser_ui/2_plan/insights/default_insights_spec.rb": 34.127026174, + "qa/specs/features/ee/browser_ui/2_plan/issue/default_issue_template_spec.rb": 30.402700367, + "qa/specs/features/ee/browser_ui/2_plan/issue_boards/configurable_issue_board_spec.rb": 19.263109267, + "qa/specs/features/ee/browser_ui/2_plan/issue_boards/configure_issue_board_by_label_spec.rb": 26.399046988, + "qa/specs/features/ee/browser_ui/2_plan/issue_boards/create_group_issue_board_spec.rb": 44.058644116, + "qa/specs/features/ee/browser_ui/2_plan/issue_boards/group_issue_boards_spec.rb": 42.505086799, + "qa/specs/features/ee/browser_ui/2_plan/issue_boards/project_issue_boards_spec.rb": 66.01471323000001, + "qa/specs/features/ee/browser_ui/2_plan/issue_boards/read_only_board_configuration_spec.rb": 32.519977572, + "qa/specs/features/ee/browser_ui/2_plan/issue_boards/sum_of_issues_weights_spec.rb": 22.535067519, + "qa/specs/features/ee/browser_ui/2_plan/issues_analytics/issues_analytics_spec.rb": 31.517568487, + "qa/specs/features/ee/browser_ui/2_plan/issues_weight/issue_weight_visualization_spec.rb": 34.898537993, + "qa/specs/features/ee/browser_ui/2_plan/iterations/assign_group_iteration_spec.rb": 22.289509862, + "qa/specs/features/ee/browser_ui/2_plan/iterations/create_group_iteration_spec.rb": 45.105684972999995, + "qa/specs/features/ee/browser_ui/2_plan/multiple_assignees_for_issues/four_assignees_spec.rb": 39.05453727, + "qa/specs/features/ee/browser_ui/2_plan/multiple_assignees_for_issues/more_than_four_assignees_spec.rb": 82.65206438300001, + "qa/specs/features/ee/browser_ui/2_plan/scoped_labels/editing_scoped_labels_spec.rb": 24.677114242, + "qa/specs/features/ee/browser_ui/3_create/merge_request/approval_rules_spec.rb": 106.008473686, + "qa/specs/features/ee/browser_ui/3_create/merge_request/default_merge_request_template_spec.rb": 48.185280618, + "qa/specs/features/ee/browser_ui/3_create/merge_request/generate_commit_message_spec.rb": 40.390914617, + "qa/specs/features/ee/browser_ui/3_create/remote_development/workspace_actions_spec.rb": 656.975314259, + "qa/specs/features/ee/browser_ui/3_create/repository/assign_code_owners_spec.rb": 77.835283702, + "qa/specs/features/ee/browser_ui/3_create/repository/code_owners_spec.rb": 29.858441116, + "qa/specs/features/ee/browser_ui/3_create/repository/duo_chat_explain_code_spec.rb": 28.16854103, + "qa/specs/features/ee/browser_ui/3_create/repository/file_locking_spec.rb": 255.24311795800003, + "qa/specs/features/ee/browser_ui/3_create/repository/group_file_template_spec.rb": 43.29283679, + "qa/specs/features/ee/browser_ui/3_create/repository/merge_with_code_owner_in_root_group_spec.rb": 133.52674356, + "qa/specs/features/ee/browser_ui/3_create/repository/merge_with_code_owner_in_subgroup_spec.rb": 314.069409969, + "qa/specs/features/ee/browser_ui/3_create/repository/prevent_forking_outside_group_spec.rb": 49.551448328, + "qa/specs/features/ee/browser_ui/3_create/repository/project_templates_spec.rb": 195.161257407, + "qa/specs/features/ee/browser_ui/3_create/repository/pull_mirroring_over_http_spec.rb": 54.098731282, + "qa/specs/features/ee/browser_ui/3_create/repository/pull_mirroring_over_ssh_with_key_spec.rb": 54.379182606, + "qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb": 434.95902557700003, + "qa/specs/features/ee/browser_ui/3_create/repository/restrict_push_protected_branch_spec.rb": 259.66672728500004, + "qa/specs/features/ee/browser_ui/3_create/web_ide/code_suggestions_in_web_ide_spec.rb": 106.25856156900001, + "qa/specs/features/ee/browser_ui/4_verify/multi-project_pipelines_spec.rb": 89.697462894, + "qa/specs/features/ee/browser_ui/4_verify/parent_child_pipelines_dependent_relationship_spec.rb": 110.677573526, + "qa/specs/features/ee/browser_ui/4_verify/pipeline_for_merged_result_spec.rb": 53.854234828, + "qa/specs/features/ee/browser_ui/4_verify/pipeline_subscription_with_group_owned_project_spec.rb": 61.396500039, + "qa/specs/features/ee/browser_ui/8_monitor/incident_management/incident_quick_action_spec.rb": 16.936613385, + "qa/specs/features/ee/browser_ui/9_tenant_scale/group/share_group_with_group_spec.rb": 33.98725241 } diff --git a/spec/features/admin/users/admin_sees_user_spec.rb b/spec/features/admin/users/admin_sees_user_spec.rb index aa95fa22da4..e740400523f 100644 --- a/spec/features/admin/users/admin_sees_user_spec.rb +++ b/spec/features/admin/users/admin_sees_user_spec.rb @@ -148,7 +148,7 @@ RSpec.describe 'Admin::Users::User', feature_category: :user_management, quarant end it "displays `Locked` next to user's name" do - expect(page).to have_content("#{locked_user.name} Locked") + expect(page).to have_content("#{locked_user.name} #{locked_user.email} Locked") end it 'allows a user to be unlocked from the `User administration dropdown', :js do diff --git a/spec/features/admin/users/users_spec.rb b/spec/features/admin/users/users_spec.rb index f862da74eff..0707d7aa453 100644 --- a/spec/features/admin/users/users_spec.rb +++ b/spec/features/admin/users/users_spec.rb @@ -257,7 +257,7 @@ RSpec.describe 'Admin::Users', :with_current_organization, feature_category: :us let_it_be(:locked_user) { create(:user, locked_at: DateTime.parse('2020-02-25 10:30:00 -0700')) } it "displays `Locked` badge next to user" do - expect(page).to have_content("#{locked_user.name} Locked") + expect(page).to have_content("#{locked_user.name} #{locked_user.email} Locked") end it 'allows a user to be unlocked from the `User administration dropdown', :js do diff --git a/spec/frontend/admin/users/components/admin_users_filter_app_spec.js b/spec/frontend/admin/users/components/admin_users_filter_app_spec.js index 4c915a2d98c..c517e44083f 100644 --- a/spec/frontend/admin/users/components/admin_users_filter_app_spec.js +++ b/spec/frontend/admin/users/components/admin_users_filter_app_spec.js @@ -3,7 +3,7 @@ import { shallowMount } from '@vue/test-utils'; import { nextTick } from 'vue'; import { visitUrl, getBaseURL } from '~/lib/utils/url_utility'; import AdminUsersFilterApp from '~/admin/users/components/admin_users_filter_app.vue'; -import { TOKENS } from 'ee_else_ce/admin/users/constants'; +import { expectedTokens, expectedAccessLevelToken } from '../mock_data'; const mockToken = [ { @@ -12,8 +12,6 @@ const mockToken = [ }, ]; -const accessLevelToken = TOKENS.filter(({ type }) => type === 'access_level'); - jest.mock('~/lib/utils/url_utility', () => { return { ...jest.requireActual('~/lib/utils/url_utility'), @@ -33,14 +31,8 @@ describe('AdminUsersFilterApp', () => { it('includes all the tokens', () => { createComponent(); - const actualOptions = findAvailableTokens() - .flatMap(({ options }) => options.map(({ value }) => value)) - .sort(); - const expectedOptions = TOKENS.flatMap(({ options }) => - options.map(({ value }) => value), - ).sort(); - expect(actualOptions).toMatchObject(expectedOptions); + expect(findAvailableTokens()).toMatchObject(expectedTokens); }); describe('when a token is selected', () => { @@ -53,7 +45,7 @@ describe('AdminUsersFilterApp', () => { findFilteredSearch().vm.$emit('input', mockToken); await nextTick(); - expect(findAvailableTokens()).toEqual(accessLevelToken); + expect(findAvailableTokens()).toEqual([expectedAccessLevelToken]); }); }); @@ -68,7 +60,7 @@ describe('AdminUsersFilterApp', () => { ]); await nextTick(); - expect(findAvailableTokens()).toEqual(TOKENS); + expect(findAvailableTokens()).toEqual(expectedTokens); }); }); @@ -81,7 +73,7 @@ describe('AdminUsersFilterApp', () => { window.history.replaceState({}, '', '/?filter=admins'); createComponent(); - expect(findAvailableTokens()).toEqual(accessLevelToken); + expect(findAvailableTokens()).toEqual([expectedAccessLevelToken]); }); it('replace the initial token when another token is selected', async () => { @@ -90,7 +82,7 @@ describe('AdminUsersFilterApp', () => { findFilteredSearch().vm.$emit('input', mockToken); await nextTick(); - expect(findAvailableTokens()).toEqual(accessLevelToken); + expect(findAvailableTokens()).toEqual([expectedAccessLevelToken]); }); }); diff --git a/spec/frontend/admin/users/mock_data.js b/spec/frontend/admin/users/mock_data.js index 22b9c2b9bb5..b792a5239d4 100644 --- a/spec/frontend/admin/users/mock_data.js +++ b/spec/frontend/admin/users/mock_data.js @@ -1,4 +1,6 @@ +import { GlFilteredSearchToken } from '@gitlab/ui'; import { range } from 'lodash'; +import { OPERATORS_IS } from '~/vue_shared/components/filtered_search_bar/constants'; import { OBSTACLE_TYPES } from '~/vue_shared/components/user_deletion_obstacles/constants'; import { SOLO_OWNED_ORGANIZATIONS_REQUESTED_COUNT } from '~/admin/users/constants'; @@ -103,3 +105,68 @@ export const multipleWithExtrasSoloOwnedOrganizations = { count: 12, nodes: range(SOLO_OWNED_ORGANIZATIONS_REQUESTED_COUNT).map((index) => organization(index)), }; + +export const expectedAccessLevelToken = { + title: 'Access level', + type: 'access_level', + token: GlFilteredSearchToken, + operators: OPERATORS_IS, + unique: true, + options: IS_EE + ? [ + { value: 'admins', title: 'Administrator' }, + { value: 'auditors', title: 'Auditor' }, + { value: 'external', title: 'External' }, + ] + : [ + { value: 'admins', title: 'Administrator' }, + { value: 'external', title: 'External' }, + ], +}; + +export const expectedTokens = [ + expectedAccessLevelToken, + { + title: 'State', + type: 'state', + token: GlFilteredSearchToken, + operators: OPERATORS_IS, + unique: true, + options: [ + { value: 'active', title: 'Active' }, + { value: 'banned', title: 'Banned' }, + { value: 'blocked', title: 'Blocked' }, + { value: 'deactivated', title: 'Deactivated' }, + { value: 'blocked_pending_approval', title: 'Pending approval' }, + { value: 'trusted', title: 'Trusted' }, + { value: 'wop', title: 'Without projects' }, + ], + }, + { + title: 'Two-factor authentication', + type: '2fa', + token: GlFilteredSearchToken, + operators: OPERATORS_IS, + unique: true, + options: [ + { value: 'two_factor_enabled', title: 'On' }, + { value: 'two_factor_disabled', title: 'Off' }, + ], + }, + { + title: 'Type', + type: 'type', + token: GlFilteredSearchToken, + operators: OPERATORS_IS, + unique: true, + options: [{ value: 'placeholder', title: 'Placeholder' }], + }, + { + title: 'LDAP sync', + type: 'ldap_sync', + token: GlFilteredSearchToken, + operators: OPERATORS_IS, + unique: true, + options: [{ value: 'ldap_sync', title: 'True' }], + }, +]; diff --git a/spec/helpers/users_helper_spec.rb b/spec/helpers/users_helper_spec.rb index 61b4b43b783..ff3a789df85 100644 --- a/spec/helpers/users_helper_spec.rb +++ b/spec/helpers/users_helper_spec.rb @@ -6,6 +6,7 @@ RSpec.describe UsersHelper, feature_category: :user_management do include TermsHelper let_it_be(:user) { create(:user, timezone: ActiveSupport::TimeZone::MAPPING['UTC']) } + let_it_be(:admin) { create(:admin) } def filter_ee_badges(badges) badges.reject { |badge| badge[:text] == 'Is using seat' } @@ -271,94 +272,70 @@ RSpec.describe UsersHelper, feature_category: :user_management do describe '#user_badges_in_admin_section' do before do - allow(helper).to receive(:current_user).and_return(user) + allow(helper).to receive(:current_user).and_return(admin) end + subject(:badges) { filter_ee_badges(helper.user_badges_in_admin_section(user)) } + context 'with a blocked user' do - it "returns the blocked badge" do - blocked_user = create(:user, state: 'blocked') + let(:user) { create(:user, state: 'blocked') } - badges = helper.user_badges_in_admin_section(blocked_user) - - expect(filter_ee_badges(badges)).to match_array([text: s_("AdminUsers|Blocked"), variant: "danger"]) - end + it { is_expected.to match_array([{ text: s_("AdminUsers|Blocked"), variant: "danger" }]) } end context 'with a pending approval user' do - it 'returns the pending approval badge' do - blocked_pending_approval_user = create(:user, :blocked_pending_approval) + let(:user) { create(:user, :blocked_pending_approval) } - badges = helper.user_badges_in_admin_section(blocked_pending_approval_user) - - expect(filter_ee_badges(badges)).to match_array([text: s_('AdminUsers|Pending approval'), variant: 'info']) - end + it { is_expected.to match_array([{ text: s_('AdminUsers|Pending approval'), variant: 'info' }]) } end context 'with a banned user' do - it 'returns the banned badge' do - banned_user = create(:user, :banned) + let(:user) { create(:user, :banned) } - badges = helper.user_badges_in_admin_section(banned_user) - - expect(filter_ee_badges(badges)).to match_array([text: s_('AdminUsers|Banned'), variant: 'danger']) - end + it { is_expected.to match_array([{ text: s_('AdminUsers|Banned'), variant: 'danger' }]) } end context 'with an admin user' do - it "returns the admin badge" do - admin_user = create(:admin) + let(:user) { create(:admin) } - badges = helper.user_badges_in_admin_section(admin_user) - - expect(filter_ee_badges(badges)).to match_array([text: s_("AdminUsers|Admin"), variant: "success"]) - end + it { is_expected.to match_array([{ text: s_("AdminUsers|Admin"), variant: "success" }]) } end context 'with a bot' do - it "returns the bot badge" do - bot = create(:user, :bot) + let(:user) { create(:user, :bot) } - badges = helper.user_badges_in_admin_section(bot) - - expect(filter_ee_badges(badges)).to match_array([text: s_('AdminUsers|Bot'), variant: "muted"]) - end + it { is_expected.to match_array([{ text: s_('AdminUsers|Bot'), variant: "muted" }]) } end context 'with a deactivated user' do - it "returns the deactivated badge" do - deactivated = create(:user, :deactivated) + let(:user) { create(:user, :deactivated) } - badges = helper.user_badges_in_admin_section(deactivated) - - expect(filter_ee_badges(badges)).to match_array([text: s_('AdminUsers|Deactivated'), variant: "danger"]) - end + it { is_expected.to match_array([{ text: s_('AdminUsers|Deactivated'), variant: "danger" }]) } end context 'with an external user' do - it 'returns the external badge' do - external_user = create(:user, external: true) + let(:user) { create(:user, external: true) } - badges = helper.user_badges_in_admin_section(external_user) - - expect(filter_ee_badges(badges)).to match_array([text: s_("AdminUsers|External"), variant: "secondary"]) - end + it { is_expected.to match_array([{ text: s_("AdminUsers|External"), variant: "secondary" }]) } end context 'with the current user' do - it 'returns the "It\'s You" badge' do - badges = helper.user_badges_in_admin_section(user) + let(:user) { admin } - expect(filter_ee_badges(badges)).to match_array([text: s_("AdminUsers|It's you!"), variant: "muted"]) + it "returns admin and it's you badges" do + is_expected.to match_array( + [ + { text: s_("AdminUsers|Admin"), variant: "success" }, + { text: s_("AdminUsers|It's you!"), variant: "muted" } + ]) end end context 'with an external blocked admin' do + let(:user) { create(:admin, state: 'blocked', external: true) } + it 'returns the blocked, admin and external badges' do - user = create(:admin, state: 'blocked', external: true) - - badges = helper.user_badges_in_admin_section(user) - - expect(badges).to match_array( + is_expected.to match_array( [ { text: s_("AdminUsers|Blocked"), variant: "danger" }, { text: s_("AdminUsers|Admin"), variant: "success" }, @@ -368,33 +345,27 @@ RSpec.describe UsersHelper, feature_category: :user_management do end context 'with a locked user', time_travel_to: '2020-02-25 10:30:45 -0700' do - it 'returns the "Locked" badge' do - locked_user = create(:user, locked_at: DateTime.parse('2020-02-25 10:30:00 -0700')) + let(:user) { create(:user, locked_at: DateTime.parse('2020-02-25 10:30:00 -0700')) } - badges = helper.user_badges_in_admin_section(locked_user) - - expect(filter_ee_badges(badges)).to match_array([text: s_("AdminUsers|Locked"), variant: "warning"]) - end + it { is_expected.to match_array([{ text: s_("AdminUsers|Locked"), variant: "warning" }]) } end context 'with a placeholder user' do - it 'returns the "Placeholder" badge' do - placeholder_user = create(:user, :placeholder) + let(:user) { create(:user, :placeholder) } - badges = helper.user_badges_in_admin_section(placeholder_user) + it { is_expected.to match_array([{ text: s_("UserMapping|Placeholder"), variant: "muted" }]) } + end - expect(filter_ee_badges(badges)).to match_array([text: s_("UserMapping|Placeholder"), variant: "muted"]) - end + context 'with an LDAP user' do + let(:user) { create(:omniauth_user, provider: "ldapmain") } + + it { is_expected.to match_array([{ text: 'LDAP', variant: 'info' }]) } end context 'get badges for normal user' do - it 'returns no badges' do - user = create(:user) + let(:user) { create(:user) } - badges = helper.user_badges_in_admin_section(user) - - expect(filter_ee_badges(badges)).to be_empty - end + it { is_expected.to be_empty } end end diff --git a/spec/lib/gitlab/background_migration/backfill_resource_iteration_events_namespace_id_spec.rb b/spec/lib/gitlab/background_migration/backfill_resource_iteration_events_namespace_id_spec.rb new file mode 100644 index 00000000000..f8c6d2d26e2 --- /dev/null +++ b/spec/lib/gitlab/background_migration/backfill_resource_iteration_events_namespace_id_spec.rb @@ -0,0 +1,126 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe Gitlab::BackgroundMigration::BackfillResourceIterationEventsNamespaceId, feature_category: :team_planning do + let(:resource_iteration_events) { table(:resource_iteration_events) } + let(:iterations) { table(:sprints) } + let(:organization) { table(:organizations).create!(name: 'organization', path: 'organization') } + let(:namespace1) do + table(:namespaces).create!(name: "group1", path: "group1", organization_id: organization.id) + end + + let(:namespace2) do + table(:namespaces).create!(name: "group2", path: "group2", organization_id: organization.id) + end + + let(:fake_namespace) do + # Can't create description_versions without a namespace in specs due to the invalid FK already created + table(:namespaces).create!(id: 0, name: "fake", path: "fake", organization_id: organization.id) + end + + let(:iteration1) do + iterations.create!( + title: 'iteration1', + group_id: namespace1.id, iid: 1, + start_date: 1.day.ago, + due_date: 1.day.from_now + ) + end + + let(:iteration2) do + iterations.create!( + title: 'iteration2', + group_id: namespace2.id, iid: 1, + start_date: 1.day.ago, + due_date: 1.day.from_now + ) + end + + let(:issue_work_item_type_id) { table(:work_item_types).find_by(name: 'Issue').id } + let(:issue) do + table(:issues).create!( + title: 'First issue', + iid: 1, + namespace_id: namespace1.id, + work_item_type_id: issue_work_item_type_id + ) + end + + let(:user) { table(:users).create!(username: 'john_doe', email: 'johndoe@gitlab.com', projects_limit: 2) } + + let!(:issue_resource_event1) do + resource_iteration_events.create!( + issue_id: issue.id, + user_id: user.id, + action: 1, + iteration_id: iteration1.id, + namespace_id: fake_namespace.id + ) + end + + let!(:issue_resource_event2) do + resource_iteration_events.create!( + issue_id: issue.id, + user_id: user.id, + action: 1, + iteration_id: iteration1.id, + namespace_id: fake_namespace.id + ) + end + + let!(:issue_resource_event3) do + resource_iteration_events.create!( + issue_id: issue.id, + user_id: user.id, + action: 1, + iteration_id: iteration2.id, + namespace_id: fake_namespace.id + ) + end + + let!(:issue_resource_event4) do + resource_iteration_events.create!( + issue_id: issue.id, + user_id: user.id, + action: 1, + iteration_id: iteration2.id, + namespace_id: fake_namespace.id + ) + end + + let(:migration) do + start_id, end_id = resource_iteration_events.pick('MIN(id), MAX(id)') + + described_class.new( + start_id: start_id, + end_id: end_id, + batch_table: :resource_iteration_events, + batch_column: :id, + sub_batch_size: 2, + pause_ms: 0, + job_arguments: [], + connection: ApplicationRecord.connection + ) + end + + subject(:migrate) { migration.perform } + + describe '#up' do + it 'updates records in batches' do + expect do + migrate + end.to make_queries_matching(/UPDATE\s+"resource_iteration_events"/, 2) + end + + it 'sets correct namespace_id in every record' do + expect { migrate }.to change { issue_resource_event1.reload.namespace_id }.from(0).to(namespace1.id).and( + change { issue_resource_event2.reload.namespace_id }.from(0).to(namespace1.id) + ).and( + change { issue_resource_event3.reload.namespace_id }.from(0).to(namespace2.id) + ).and( + change { issue_resource_event4.reload.namespace_id }.from(0).to(namespace2.id) + ) + end + end +end diff --git a/spec/lib/gitlab/ci/pipeline/chain/config/content_spec.rb b/spec/lib/gitlab/ci/pipeline/chain/config/content_spec.rb index 3bbc675c248..01052208acf 100644 --- a/spec/lib/gitlab/ci/pipeline/chain/config/content_spec.rb +++ b/spec/lib/gitlab/ci/pipeline/chain/config/content_spec.rb @@ -54,7 +54,6 @@ RSpec.describe Gitlab::Ci::Pipeline::Chain::Config::Content, feature_category: : subject.perform! expect(pipeline.config_source).to eq 'repository_source' - expect(pipeline.pipeline_config.content).to eq(config_content_result) expect(command.config_content).to eq(config_content_result) expect(command.pipeline_config.internal_include_prepended?).to eq(true) end @@ -74,7 +73,6 @@ RSpec.describe Gitlab::Ci::Pipeline::Chain::Config::Content, feature_category: : subject.perform! expect(pipeline.config_source).to eq 'remote_source' - expect(pipeline.pipeline_config.content).to eq(config_content_result) expect(command.config_content).to eq(config_content_result) expect(command.pipeline_config.internal_include_prepended?).to eq(true) end @@ -95,7 +93,6 @@ RSpec.describe Gitlab::Ci::Pipeline::Chain::Config::Content, feature_category: : subject.perform! expect(pipeline.config_source).to eq 'external_project_source' - expect(pipeline.pipeline_config.content).to eq(config_content_result) expect(command.config_content).to eq(config_content_result) expect(command.pipeline_config.internal_include_prepended?).to eq(true) end @@ -116,7 +113,6 @@ RSpec.describe Gitlab::Ci::Pipeline::Chain::Config::Content, feature_category: : subject.perform! expect(pipeline.config_source).to eq 'external_project_source' - expect(pipeline.pipeline_config.content).to eq(config_content_result) expect(command.config_content).to eq(config_content_result) expect(command.pipeline_config.internal_include_prepended?).to eq(true) end @@ -144,7 +140,6 @@ RSpec.describe Gitlab::Ci::Pipeline::Chain::Config::Content, feature_category: : subject.perform! expect(pipeline.config_source).to eq 'repository_source' - expect(pipeline.pipeline_config.content).to eq(config_content_result) expect(command.config_content).to eq(config_content_result) expect(command.pipeline_config.internal_include_prepended?).to eq(true) end @@ -177,7 +172,6 @@ RSpec.describe Gitlab::Ci::Pipeline::Chain::Config::Content, feature_category: : subject.perform! expect(pipeline.config_source).to eq 'repository_source' - expect(pipeline.pipeline_config).to be_nil expect(command.config_content).to eq(config_content_result) expect(command.pipeline_config.internal_include_prepended?).to eq(true) expect(command.pipeline_config.inputs_for_pipeline_creation).to eq({}) @@ -203,7 +197,6 @@ RSpec.describe Gitlab::Ci::Pipeline::Chain::Config::Content, feature_category: : subject.perform! expect(pipeline.config_source).to eq 'auto_devops_source' - expect(pipeline.pipeline_config.content).to eq(config_content_result) expect(command.config_content).to eq(config_content_result) expect(command.pipeline_config.internal_include_prepended?).to eq(true) end @@ -224,7 +217,6 @@ RSpec.describe Gitlab::Ci::Pipeline::Chain::Config::Content, feature_category: : subject.perform! expect(pipeline.config_source).to eq 'parameter_source' - expect(pipeline.pipeline_config.content).to eq(content) expect(command.config_content).to eq(content) expect(command.pipeline_config.internal_include_prepended?).to eq(false) end @@ -244,7 +236,6 @@ RSpec.describe Gitlab::Ci::Pipeline::Chain::Config::Content, feature_category: : subject.perform! expect(pipeline.config_source).to eq 'parameter_source' - expect(pipeline.pipeline_config).to be_nil expect(command.config_content).to eq(content) expect(command.pipeline_config.internal_include_prepended?).to eq(false) expect(command.pipeline_config.inputs_for_pipeline_creation).to eq(inputs) @@ -263,7 +254,6 @@ RSpec.describe Gitlab::Ci::Pipeline::Chain::Config::Content, feature_category: : subject.perform! expect(pipeline.config_source).to eq('unknown_source') - expect(pipeline.pipeline_config).to be_nil expect(command.config_content).to be_nil expect(command.pipeline_config).to be_nil expect(pipeline.errors.full_messages).to include('Missing CI config file') diff --git a/spec/lib/gitlab/database/sharding_key_spec.rb b/spec/lib/gitlab/database/sharding_key_spec.rb index d91be235823..1d6d16f01f8 100644 --- a/spec/lib/gitlab/database/sharding_key_spec.rb +++ b/spec/lib/gitlab/database/sharding_key_spec.rb @@ -275,6 +275,7 @@ RSpec.describe 'new tables missing sharding_key', feature_category: :cell do "ai_duo_chat_events" => "https://gitlab.com/gitlab-org/gitlab/-/issues/516140", "fork_networks" => "https://gitlab.com/gitlab-org/gitlab/-/issues/522958", "merge_request_diff_commit_users" => "https://gitlab.com/gitlab-org/gitlab/-/issues/526725", + "bulk_import_configurations" => "https://gitlab.com/gitlab-org/gitlab/-/issues/536521", # All the tables below related to uploads are part of the same work to # add sharding key to the table "uploads" => "https://gitlab.com/gitlab-org/gitlab/-/issues/398199", diff --git a/spec/migrations/20250409172701_queue_backfill_resource_iteration_events_namespace_id_spec.rb b/spec/migrations/20250409172701_queue_backfill_resource_iteration_events_namespace_id_spec.rb new file mode 100644 index 00000000000..d61f878060e --- /dev/null +++ b/spec/migrations/20250409172701_queue_backfill_resource_iteration_events_namespace_id_spec.rb @@ -0,0 +1,27 @@ +# frozen_string_literal: true + +require 'spec_helper' +require_migration! + +RSpec.describe QueueBackfillResourceIterationEventsNamespaceId, migration: :gitlab_main, feature_category: :team_planning do + let!(:batched_migration) { described_class::MIGRATION } + + it 'schedules a new batched migration' do + reversible_migration do |migration| + migration.before -> { + expect(batched_migration).not_to have_scheduled_batched_migration + } + + migration.after -> { + expect(batched_migration).to have_scheduled_batched_migration( + gitlab_schema: :gitlab_main, + table_name: :resource_iteration_events, + column_name: :id, + interval: described_class::DELAY_INTERVAL, + batch_size: described_class::BATCH_SIZE, + sub_batch_size: described_class::SUB_BATCH_SIZE + ) + } + end + end +end diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 93f5d7baf3f..9a86fa91ee7 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -3292,6 +3292,7 @@ RSpec.describe User, feature_category: :user_profile do :without_projects | 'wop' :trusted | 'trusted' :external | 'external' + :ldap | 'ldap_sync' end with_them do @@ -8803,6 +8804,19 @@ RSpec.describe User, feature_category: :user_profile do end end + describe '.ldap' do + subject(:ldap) { described_class.ldap } + + let_it_be(:ldap_user) { create(:omniauth_user, provider: "ldapmain") } + let_it_be(:gitlab_user) { create(:omniauth_user, provider: "gitlab") } + let_it_be(:regular_user) { create(:user) } + + it 'returns LDAP users' do + expect(ldap).to include(ldap_user) + expect(ldap).not_to include(gitlab_user, regular_user) + end + end + describe '#unset_secondary_emails_matching_deleted_email!' do let(:deleted_email) { 'kermit@muppets.com' } diff --git a/spec/requests/admin/users_controller_spec.rb b/spec/requests/admin/users_controller_spec.rb index 2f8025691f4..14e737c5bf4 100644 --- a/spec/requests/admin/users_controller_spec.rb +++ b/spec/requests/admin/users_controller_spec.rb @@ -10,6 +10,16 @@ RSpec.describe Admin::UsersController, :enable_admin_mode, feature_category: :us sign_in(admin) end + describe 'GET #index' do + it 'avoids N+1 query', :use_sql_query_cache do + base_query_count = ActiveRecord::QueryRecorder.new(skip_cached: false) { get admin_users_path } + + create_list(:user, 3) + + expect { get admin_users_path }.not_to exceed_query_limit(base_query_count) + end + end + describe 'PATCH #update' do let(:user) { create(:user) } diff --git a/spec/services/ci/create_pipeline_service_spec.rb b/spec/services/ci/create_pipeline_service_spec.rb index 34312a8dd63..b2049126589 100644 --- a/spec/services/ci/create_pipeline_service_spec.rb +++ b/spec/services/ci/create_pipeline_service_spec.rb @@ -158,11 +158,6 @@ RSpec.describe Ci::CreatePipelineService, :clean_gitlab_redis_cache, feature_cat execute_service end - it 'creates pipeline_config' do - expect { execute_service } - .to change { Ci::PipelineConfig.count }.by(1) - end - context 'when merge requests already exist for this source branch' do let!(:merge_request_1) do create(:merge_request, source_branch: 'feature', target_branch: "master", source_project: project) diff --git a/spec/support/database/prevent_cross_joins.rb b/spec/support/database/prevent_cross_joins.rb index 7b0a946247a..9db318eba88 100644 --- a/spec/support/database/prevent_cross_joins.rb +++ b/spec/support/database/prevent_cross_joins.rb @@ -45,7 +45,7 @@ module Database Thread.current[:has_cross_join_exception] = true raise CrossJoinAcrossUnsupportedTablesError, "Unsupported cross-join across '#{tables.join(', ')}' querying '#{schemas.to_a.join(', ')}' discovered " \ - "when executing query '#{sql}'. Please refer to https://docs.gitlab.com/ee/development/database/multiple_databases.html#removing-joins-between-ci_-and-non-ci_-tables for details on how to resolve this exception." + "when executing query '#{sql}'. Please refer to https://docs.gitlab.com/ee/development/database/multiple_databases.html#removing-joins-between-main_-and-non-main_-tables for details on how to resolve this exception." end end diff --git a/spec/support/shared_examples/controllers/uploads_actions_shared_examples.rb b/spec/support/shared_examples/controllers/uploads_actions_shared_examples.rb index af4a617d3cd..63b2e4eb222 100644 --- a/spec/support/shared_examples/controllers/uploads_actions_shared_examples.rb +++ b/spec/support/shared_examples/controllers/uploads_actions_shared_examples.rb @@ -112,6 +112,32 @@ RSpec.shared_examples 'handle uploads' do expect(response.headers['Content-Type']).to eq('application/octet-stream') end + + it 'sets the :html request format' do + get :show, params: params.merge(secret: secret, filename: filename) + + expect(response.request.format.symbol).to eq(:html) + end + end + + context 'when the upload has a MIME type that Rails knows' do + let(:filename) { 'image.png' } + + it 'sets the correct request format' do + get :show, params: params.merge(secret: secret, filename: filename) + + expect(response.request.format.symbol).to eq(:png) + end + + context 'when the upload is a JS file' do + let(:filename) { 'axios.min.js' } + + it 'sets the :text request format' do + get :show, params: params.merge(secret: secret, filename: filename) + + expect(response.request.format.symbol).to eq(:text) + end + end end context "when the model is public" do