diff --git a/.gitlab/ci/rules.gitlab-ci.yml b/.gitlab/ci/rules.gitlab-ci.yml index 283b5c1d9d7..4b031c42fee 100644 --- a/.gitlab/ci/rules.gitlab-ci.yml +++ b/.gitlab/ci/rules.gitlab-ci.yml @@ -1036,6 +1036,8 @@ .db:rules:invalidate-old-pipeline-results: rules: + - <<: *if-not-canonical-namespace + when: never - <<: *if-merge-request changes: *db-patterns when: always diff --git a/.rubocop_todo/rspec/context_wording.yml b/.rubocop_todo/rspec/context_wording.yml index 249c2d097a3..5fe9371b149 100644 --- a/.rubocop_todo/rspec/context_wording.yml +++ b/.rubocop_todo/rspec/context_wording.yml @@ -2309,7 +2309,6 @@ RSpec/ContextWording: - 'spec/services/clusters/kubernetes/create_or_update_service_account_service_spec.rb' - 'spec/services/clusters/management/validate_management_project_permissions_service_spec.rb' - 'spec/services/clusters/update_service_spec.rb' - - 'spec/services/commits/tag_service_spec.rb' - 'spec/services/compare_service_spec.rb' - 'spec/services/concerns/merge_requests/assigns_merge_params_spec.rb' - 'spec/services/concerns/rate_limited_service_spec.rb' diff --git a/GITLAB_KAS_VERSION b/GITLAB_KAS_VERSION index 98488193ed6..6b371f3cb5c 100644 --- a/GITLAB_KAS_VERSION +++ b/GITLAB_KAS_VERSION @@ -1 +1 @@ -5a16392c66524f6e4f2745a85d24cdaad3e2b777 +489987d4c04b2eb18639b15d96795a6c6078b44f diff --git a/app/assets/javascripts/glql/components/common/footer.vue b/app/assets/javascripts/glql/components/common/footer.vue index 33e66bcf3d7..4d6cc012cfe 100644 --- a/app/assets/javascripts/glql/components/common/footer.vue +++ b/app/assets/javascripts/glql/components/common/footer.vue @@ -1,6 +1,7 @@ + diff --git a/app/assets/javascripts/issues/show/components/incidents/incident_tabs.vue b/app/assets/javascripts/issues/show/components/incidents/incident_tabs.vue index 3f516db4995..289a9a154e9 100644 --- a/app/assets/javascripts/issues/show/components/incidents/incident_tabs.vue +++ b/app/assets/javascripts/issues/show/components/incidents/incident_tabs.vue @@ -31,7 +31,7 @@ export default { GlTab, GlTabs, HighlightBar, - TimelineTab, + ...(gon.features?.hideIncidentManagementFeatures ? {} : { TimelineTab }), IncidentMetricTab: () => import('ee_component/issues/show/components/incidents/incident_metric_tab.vue'), }, @@ -69,6 +69,9 @@ export default { const { tabId } = this.$route.params; return tabId ? this.tabMapping.tabNamesToIndex[tabId] : 0; }, + showIncidentManagementFeatures() { + return !gon.features.hideIncidentManagementFeatures; + }, tabMapping() { const availableTabs = [TAB_NAMES.SUMMARY]; @@ -79,7 +82,9 @@ export default { availableTabs.push(TAB_NAMES.ALERTS); } - availableTabs.push(TAB_NAMES.TIMELINE); + if (this.showIncidentManagementFeatures) { + availableTabs.push(TAB_NAMES.TIMELINE); + } const tabNamesToIndex = {}; const tabIndexToName = {}; @@ -167,7 +172,12 @@ export default { > - + + diff --git a/app/assets/javascripts/work_items/components/design_management/design_management_widget.vue b/app/assets/javascripts/work_items/components/design_management/design_management_widget.vue index c1417db8646..175bc30afc5 100644 --- a/app/assets/javascripts/work_items/components/design_management/design_management_widget.vue +++ b/app/assets/javascripts/work_items/components/design_management/design_management_widget.vue @@ -238,9 +238,17 @@ export default { }) && !this.isBoard ); }, + isDesignDetailActive() { + return this.$route.path.includes('/designs/') || this.$route.name === 'design'; + }, + enablePasteOnNoDesign() { + return ( + !this.hasDesigns && this.canPasteDesign && this.canAddDesign && !this.isDesignDetailActive + ); + }, }, watch: { - canPasteDesign: { + enablePasteOnNoDesign: { immediate: true, handler(newVal) { if (newVal) { @@ -440,7 +448,9 @@ export default { }); }, toggleOnPasteListener() { - document.addEventListener('paste', this.onDesignPaste); + if (this.canAddDesign && !this.isDesignDetailActive) { + document.addEventListener('paste', this.onDesignPaste); + } }, toggleOffPasteListener() { document.removeEventListener('paste', this.onDesignPaste); diff --git a/app/controllers/concerns/wiki_actions.rb b/app/controllers/concerns/wiki_actions.rb index 6fccbd7ecb2..7bcf7e17af6 100644 --- a/app/controllers/concerns/wiki_actions.rb +++ b/app/controllers/concerns/wiki_actions.rb @@ -34,6 +34,7 @@ module WikiActions before_action do push_frontend_feature_flag(:preserve_markdown, container) + push_frontend_feature_flag(:glql_work_items, container) push_force_frontend_feature_flag(:glql_integration, !!container&.glql_integration_feature_flag_enabled?) push_force_frontend_feature_flag(:glql_load_on_click, !!container&.glql_load_on_click_feature_flag_enabled?) push_force_frontend_feature_flag(:continue_indented_text, diff --git a/app/controllers/projects/issues_controller.rb b/app/controllers/projects/issues_controller.rb index 272bc154300..f15697254db 100644 --- a/app/controllers/projects/issues_controller.rb +++ b/app/controllers/projects/issues_controller.rb @@ -60,6 +60,7 @@ class Projects::IssuesController < Projects::ApplicationController push_force_frontend_feature_flag(:work_items_alpha, !!project&.work_items_alpha_feature_flag_enabled?) push_frontend_feature_flag(:work_item_view_for_issues, project&.group) push_frontend_feature_flag(:work_item_status_feature_flag, project&.root_ancestor) + push_frontend_feature_flag(:hide_incident_management_features, project) end before_action only: [:index, :show] do diff --git a/app/controllers/projects/settings/merge_requests_controller.rb b/app/controllers/projects/settings/merge_requests_controller.rb index f6cbd7cf9d2..a34a9a88cb6 100644 --- a/app/controllers/projects/settings/merge_requests_controller.rb +++ b/app/controllers/projects/settings/merge_requests_controller.rb @@ -18,9 +18,6 @@ module Projects flash[:notice] = format(_("Project '%{project_name}' was successfully updated."), project_name: @project.name) redirect_to project_settings_merge_requests_path(@project) else - # Refresh the repo in case anything changed - @repository = @project.repository.reset - flash[:alert] = result[:message] @project.reset render 'show' diff --git a/app/graphql/resolvers/incident_management/timeline_events_resolver.rb b/app/graphql/resolvers/incident_management/timeline_events_resolver.rb index 01a7d97e5c7..d9aa4c86018 100644 --- a/app/graphql/resolvers/incident_management/timeline_events_resolver.rb +++ b/app/graphql/resolvers/incident_management/timeline_events_resolver.rb @@ -24,6 +24,7 @@ module Resolvers def resolve_with_lookahead(**args) incident = args[:incident_id].find + raise GraphQL::ExecutionError, error_message if alert_is_disabled?(incident&.project) apply_lookahead(::IncidentManagement::TimelineEventsFinder.new(current_user, incident, args).execute) end @@ -33,6 +34,16 @@ module Resolvers timeline_event_tags: [:timeline_event_tags] } end + + private + + def alert_is_disabled?(project) + Feature.enabled?(:hide_incident_management_features, project) + end + + def error_message + "Field 'incidentManagementTimelineEvents' doesn't exist on type 'Project'." + end end end end diff --git a/app/services/ci/workloads/run_workload_service.rb b/app/services/ci/workloads/run_workload_service.rb index 714e49b0a7a..caffa0bb0d8 100644 --- a/app/services/ci/workloads/run_workload_service.rb +++ b/app/services/ci/workloads/run_workload_service.rb @@ -11,17 +11,18 @@ module Ci # In the future it's likely that this class will persist additional models and the concept of a `Workload` may # become first class. For that reason we abstract users from the underlying `Ci::Pipeline` semantics. class RunWorkloadService - def initialize(project:, current_user:, source:, workload_definition:, create_branch: false) + def initialize(project:, current_user:, source:, workload_definition:, create_branch: false, source_branch: nil) @project = project @current_user = current_user @source = source @workload_definition = workload_definition @create_branch = create_branch + @source_branch = source_branch end def execute validate_source! - @ref = @create_branch ? create_repository_branch : default_branch + @ref = @create_branch ? create_repository_branch(@source_branch) : default_branch @workload_definition.add_variable(:CI_WORKLOAD_REF, @ref) service = ::Ci::CreatePipelineService.new(@project, @current_user, ref: @ref) @@ -49,11 +50,13 @@ module Ci private - def create_repository_branch + def create_repository_branch(source_branch) branch_name = "workloads/#{SecureRandom.hex[0..10]}" raise "Branch already exists" if @project.repository.branch_exists?(branch_name) - repo_branch = @project.repository.add_branch(@current_user, branch_name, default_branch, skip_ci: true) + branch = @project.repository.branch_exists?(source_branch) ? source_branch : default_branch + + repo_branch = @project.repository.add_branch(@current_user, branch_name, branch, skip_ci: true) raise "Error in git branch creation" unless repo_branch branch_name diff --git a/config/feature_flags/development/global_ai_catalog.yml b/config/feature_flags/development/global_ai_catalog.yml deleted file mode 100644 index 37255313f4b..00000000000 --- a/config/feature_flags/development/global_ai_catalog.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -name: global_ai_catalog -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/193705 -rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/549914 -milestone: '18.2' -type: development -group: group::workflow catalog -default_enabled: false diff --git a/doc/administration/geo/setup/external_database.md b/doc/administration/geo/setup/external_database.md index 9765bcf614f..4f9ab54f591 100644 --- a/doc/administration/geo/setup/external_database.md +++ b/doc/administration/geo/setup/external_database.md @@ -24,7 +24,7 @@ in case a Geo site has to be rebuilt. {{< alert type="note" >}} -If you’re using GitLab Geo, we strongly recommend running instances installed by using the Linux package or using +If you're using GitLab Geo, we strongly recommend running instances installed by using the Linux package or using [validated cloud-managed instances](../../reference_architectures/_index.md#recommended-cloud-providers-and-services), as we actively develop and test based on those. We cannot guarantee compatibility with other external databases. diff --git a/doc/administration/gitaly/tls_support.md b/doc/administration/gitaly/tls_support.md index 1d244b3b1d3..b37f7336b4e 100644 --- a/doc/administration/gitaly/tls_support.md +++ b/doc/administration/gitaly/tls_support.md @@ -211,7 +211,7 @@ To update the Gitaly certificates after initial configuration: {{< tab title="Linux package (Omnibus)" >}} If the content of your SSL certificates under the `/etc/gitlab/ssl` directory have been updated, but no configuration changes have been made to -`/etc/gitlab/gitlab.rb`, then reconfiguring GitLab doesn’t affect Gitaly. Instead, you must restart Gitaly manually for the certificates to be loaded +`/etc/gitlab/gitlab.rb`, then reconfiguring GitLab doesn't affect Gitaly. Instead, you must restart Gitaly manually for the certificates to be loaded by the Gitaly process: ```shell diff --git a/doc/ci/jobs/job_artifacts.md b/doc/ci/jobs/job_artifacts.md index f16fd3ec698..4f64ea3b775 100644 --- a/doc/ci/jobs/job_artifacts.md +++ b/doc/ci/jobs/job_artifacts.md @@ -389,7 +389,7 @@ By default, artifacts are always kept for the most recent successful pipeline on When a new pipeline on the same ref completes successfully, the previous pipeline's artifacts are deleted according to the `expire_in` configuration. The artifacts of the new pipeline are kept automatically. -A pipeline’s artifacts are only deleted according to the `expire_in` configuration if a new pipeline runs for the same ref and: +A pipeline's artifacts are only deleted according to the `expire_in` configuration if a new pipeline runs for the same ref and: - Succeeds. - Stops running due to being blocked by a manual job. diff --git a/doc/ci/secrets/id_token_authentication.md b/doc/ci/secrets/id_token_authentication.md index 50780ad00c5..6f5ca4cf0c0 100644 --- a/doc/ci/secrets/id_token_authentication.md +++ b/doc/ci/secrets/id_token_authentication.md @@ -190,6 +190,6 @@ echo $OIDC_TOKEN | cut -d '.' -f2 | base64 -d | jq . Make sure that: -- `aud` (audience) matches the expected audience (for example, the external service’s URL). -- `sub` (subject) is mapped in the service’s Identity Provider settings. +- `aud` (audience) matches the expected audience (for example, the external service's URL). +- `sub` (subject) is mapped in the service's Identity Provider settings. - `preferred_username` is not present by default in GitLab ID tokens. diff --git a/doc/development/ai_features/glossary.md b/doc/development/ai_features/glossary.md index 6ca2cdf6a28..0159912170f 100644 --- a/doc/development/ai_features/glossary.md +++ b/doc/development/ai_features/glossary.md @@ -180,7 +180,7 @@ A **goal-oriented, structured graph** that orchestrates agents and tools to deli - **Input** - Each Flow must have an input. Inputs set the context for the Flow run and will differentiate different flows in outcomes. Inputs can be: Free text, Entities (GitLab or from 3rd party) - **Run** – One execution of an flow; runs carry user-specific goals and data -> **Analogy:** *competency / job description* – the “what & when” of getting work done. +> **Analogy:** *competency / job description* – the "what & when" of getting work done. ### Agent @@ -222,7 +222,7 @@ Tools expose data or side-effects; they themselves perform **no reasoning**. | **Task** | A formal object representing a unit of work inside a run. At present only the *Executor* agent persists tasks, but the concept is extensible. | | **Trigger** | An event that starts an flow run (e.g., slash command, schedule, issue label). | | **Agent Handover** | Node type that packages context from one agent and passes it to another. | -| **Supervisor Agent** | An agent node that monitors other agents’ progress and enforces run-level constraints (timeout, max tokens, etc.). | +| **Supervisor Agent** | An agent node that monitors other agents' progress and enforces run-level constraints (timeout, max tokens, etc.). | | **Subagent** | Shorthand for an agent that operates under a Supervisor within the same run. | | **Autonomous Agent** | Historical term for an agent that can loop without human approval. In GitLab, autonomy level is governed by flow design, not by a separate agent type. | | **Framework** | A platform for building multi-agent systems. GitLab Duo Agent Platform uses **LangGraph**, an extension to LangChain that natively models agent graphs. | @@ -238,9 +238,9 @@ Flows are executed in the following ways: | Layer | Human Analogy | Key Question Answered | | ----- | ------------- | --------------------- | -| **Tool** | Capability | “What concrete action can I perform?” | -| **Agent** | Skill / Specialist | “How do I use my tools to reach my goal?” | -| **Flow** | Competency / Job | “When and in what order should skills be applied to deliver value?” | +| **Tool** | Capability | "What concrete action can I perform?" | +| **Agent** | Skill / Specialist | "How do I use my tools to reach my goal?" | +| **Flow** | Competency / Job | "When and in what order should skills be applied to deliver value?" | ## AI Context Terminology diff --git a/doc/development/database/batched_background_migrations.md b/doc/development/database/batched_background_migrations.md index 454de46b1ce..f446416e3bd 100644 --- a/doc/development/database/batched_background_migrations.md +++ b/doc/development/database/batched_background_migrations.md @@ -1303,7 +1303,7 @@ Use `scope_to` **only when the scoped column is indexed**, and ideally, the batc A strong indicator of good performance is the absence of the `Rows Removed by Filter` line in the query plan. -Let’s improve performance by indexing the `theme_id` column: +Let's improve performance by indexing the `theme_id` column: ```sql CREATE INDEX idx_users_theme_id ON users (theme_id); diff --git a/doc/development/fe_guide/_index.md b/doc/development/fe_guide/_index.md index 26dc90b736b..10addde117e 100644 --- a/doc/development/fe_guide/_index.md +++ b/doc/development/fe_guide/_index.md @@ -59,9 +59,9 @@ The application structure typically follows the pattern: `app/assets/javascripts - `constants.js` (shared variables) - `index.js` (file that injects the Vue app) -There is always a top-level Vue component that acts as the “main” component and imports lower-level components to build a feature. In all cases, there is an accompanying file (often named index.js or app.js but often varies) that looks for the injection point on a Haml view (for example, `#pipeline-schedules-app`) and mounts the Vue app to the page. +There is always a top-level Vue component that acts as the "main" component and imports lower-level components to build a feature. In all cases, there is an accompanying file (often named index.js or app.js but often varies) that looks for the injection point on a Haml view (for example, `#pipeline-schedules-app`) and mounts the Vue app to the page. -We achieve this by importing a JavaScript file like [`app/assets/javascripts/ci/pipeline_schedules/mount_pipeline_schedules_app.js`](https://gitlab.com/gitlab-org/gitlab/-/blob/4ce851345054dbf09956dabcc9b958ae8aab77bb/app/assets/javascripts/ci/pipeline_schedules/mount_pipeline_schedules_app.js) (which sets up the Vue app) into the related Haml view’s corresponding page bundle, such as [`app/assets/javascripts/pages/projects/pipeline_schedules/index/index.js`](https://gitlab.com/gitlab-org/gitlab/-/blob/4ce851345054dbf09956dabcc9b958ae8aab77bb/app/assets/javascripts/pages/projects/pipeline_schedules/index/index.js). +We achieve this by importing a JavaScript file like [`app/assets/javascripts/ci/pipeline_schedules/mount_pipeline_schedules_app.js`](https://gitlab.com/gitlab-org/gitlab/-/blob/4ce851345054dbf09956dabcc9b958ae8aab77bb/app/assets/javascripts/ci/pipeline_schedules/mount_pipeline_schedules_app.js) (which sets up the Vue app) into the related Haml view's corresponding page bundle, such as [`app/assets/javascripts/pages/projects/pipeline_schedules/index/index.js`](https://gitlab.com/gitlab-org/gitlab/-/blob/4ce851345054dbf09956dabcc9b958ae8aab77bb/app/assets/javascripts/pages/projects/pipeline_schedules/index/index.js). Often, a feature will have multiple routes, such as `index`, `show`, `edit`, or `new`. For these cases, we typically inject different Vue applications based on the specific route. The folder structure within `app/assets/javascripts/pages` reflects this setup. For example, a subfolder like `app/assets/javascripts/pages//show` corresponds to the Rails controller `app/controllers/` and its action `def show; end`. Alternatively, we can mount the Vue application on the `index` route and handle routing on the client with [Vue Router](https://router.vuejs.org/). diff --git a/doc/development/fe_guide/onboarding_course/lesson_1.md b/doc/development/fe_guide/onboarding_course/lesson_1.md index b811820b7cc..a4089518608 100644 --- a/doc/development/fe_guide/onboarding_course/lesson_1.md +++ b/doc/development/fe_guide/onboarding_course/lesson_1.md @@ -138,18 +138,18 @@ Here we'll explore a step-by-step process for finding files and finding where th If you already know the file you are going to work on and now you want to find where it is rendered: -1. Start by gathering clues to understand the file’s purpose. Look for relevant information within the file itself, such as keywords or specific content that might indicate its context. +1. Start by gathering clues to understand the file's purpose. Look for relevant information within the file itself, such as keywords or specific content that might indicate its context. 1. You can also examine the file path (or folder structure) to gain insights into where the file might be rendered. A lot of routing in GitLab is very similar to the folder structure. 1. If you can work out which feature (or one of the features) that this component is used in, you can then leverage the GitLab user documentation to find out how to go to the feature page. 1. Follow the component hierarchy, do a global search for the filename to identify the parent component that renders the component. Continue to follow the hierarchy of components to trace back to a feature you recognize or can search for in the GitLab user docs. 1. You can use `git blame` with an extension like GitLens to find a recent MR where this file was changed. - Most MR’s have a "How to validate" section that you can follow, if the MR doesn't have one, look for the previous change and until you find one that have validation steps. + Most MR's have a "How to validate" section that you can follow, if the MR doesn't have one, look for the previous change and until you find one that have validation steps. If you know which page you need to fix and you want to find the file path, here are some things you can try: -- Look for content that is unique and doesn’t contain variables so that you can search for the translation variable. +- Look for content that is unique and doesn't contain variables so that you can search for the translation variable. - Try using Vue Dev Tools to find the component name. - Look for unique identifiers like a `data-testid`,`id` or a unique looking CSS class in the HTML of the component and then search globally the codebase for those identifying strings. @@ -169,7 +169,7 @@ When writing a merge request there are some important things to be aware of: - At least 2 other engineers are going to review your code. For the sake of efficiency (much like the code itself you have written) it is best to take a little while longer to get your MR right so that it is quicker and easier for others to read. - The MRs that you create on GitLab are available to the public. This means you can add a link to MRs you are particularly proud of to your portfolio page when looking for a job. - Since an MR is a technical document, you should try to implement a technical writing style. - If you don’t know what that is, here is a highly recommended short course from [Google on Technical writing](https://developers.google.com/tech-writing/one). + If you don't know what that is, here is a highly recommended short course from [Google on Technical writing](https://developers.google.com/tech-writing/one). If you are also contributing to the documentation at GitLab, there is a [Technical Writing Fundamentals course available here from GitLab](https://university.gitlab.com/courses/gitlab-technical-writing-fundamentals). ## Live coding diff --git a/doc/development/fe_guide/troubleshooting.md b/doc/development/fe_guide/troubleshooting.md index bcabdad2637..522af59c328 100644 --- a/doc/development/fe_guide/troubleshooting.md +++ b/doc/development/fe_guide/troubleshooting.md @@ -133,7 +133,7 @@ You should be able to see the method in the stack trace where this is originatin Apollo GraphQL queries may not be cached in several scenarios: 1. Cache Misses or Partial Caches/Query Invalidation or Changes: -If the query only returns partial data or there’s a cache miss (when part of the requested data isn’t in the cache), Apollo might not be able to cache the result effectively. +If the query only returns partial data or there's a cache miss (when part of the requested data isn't in the cache), Apollo might not be able to cache the result effectively. If data related to a query has been invalidated or updated, the cache might not have valid information. For example: @@ -175,17 +175,17 @@ query workItemTreeQuery($id: WorkItemID!, $pageSize: Int = 100, $endCursor: Stri ``` 1. `fetchPolicy` Settings: -Apollo Client uses a fetchPolicy to control how queries interact with the cache. Depending on the policy, the query may bypass caching entirely if the fetchPolicy is `no-cache`. This policy ensures that no part of the query is written to the cache. Each query directly fetches data from the server and doesn't store any results in the cache and hence multiple queries are being fetched + Apollo Client uses a fetchPolicy to control how queries interact with the cache. Depending on the policy, the query may bypass caching entirely if the fetchPolicy is `no-cache`. This policy ensures that no part of the query is written to the cache. Each query directly fetches data from the server and doesn't store any results in the cache and hence multiple queries are being fetched 1. When the same query is fired from different Apollo Client instances. It may be that the clients firing the two queries are from different clients. 1. Missing `id` or `__typename`: -Apollo Client uses `id` and `__typename` to uniquely identify entities and cache them. If these fields are missing from your query response, Apollo may not be able to cache the result properly. + Apollo Client uses `id` and `__typename` to uniquely identify entities and cache them. If these fields are missing from your query response, Apollo may not be able to cache the result properly. 1. Complex or Nested Queries: -Some queries might be too complex or involve nested queries that Apollo Client might struggle to cache correctly. This can happen if the structure of the data returned doesn’t map cleanly to the cache schema, requiring manual cache management. + Some queries might be too complex or involve nested queries that Apollo Client might struggle to cache correctly. This can happen if the structure of the data returned doesn't map cleanly to the cache schema, requiring manual cache management. 1. Pagination Queries: -For queries involving pagination, like those using fetchMore, Apollo might not cache results properly unless the cache is explicitly updated. + For queries involving pagination, like those using fetchMore, Apollo might not cache results properly unless the cache is explicitly updated. -In all of these cases, you may need to configure Apollo’s cache policies or manually update the cache to handle query caching effectively. +In all of these cases, you may need to configure Apollo's cache policies or manually update the cache to handle query caching effectively. diff --git a/doc/development/fips_gitlab.md b/doc/development/fips_gitlab.md index bd9c5ec5e06..0688485ab72 100644 --- a/doc/development/fips_gitlab.md +++ b/doc/development/fips_gitlab.md @@ -91,7 +91,7 @@ module selection per CSP10 is as follows: Third party assessment organizations (3PAOs) validate the use of a FIPS-validated CM by: 1. Checking the certificate number. -1. Validating that the CM is configured in an approved mode and only uses algorithms listed as approved in the CM’s security policy. +1. Validating that the CM is configured in an approved mode and only uses algorithms listed as approved in the CM's security policy. GitLab also does internal continuous monitoring and, in the past, has contracted independent auditors to audit our software against the FIPS 140 standard. Results are available in the Trust Center. diff --git a/doc/development/organization/sharding/_index.md b/doc/development/organization/sharding/_index.md index d227fd0364a..c36c2af3c9b 100644 --- a/doc/development/organization/sharding/_index.md +++ b/doc/development/organization/sharding/_index.md @@ -20,7 +20,7 @@ You should break out these shared issues into a single one per table, and update ## Update unresolved, closed issues Some of the issues linked in the database YAML docs have been closed, sometimes in favor of new issues, but the YAML files still point to the original URL. -You should update these to point to the correct items to ensure we’re accurately measuring progress. +You should update these to point to the correct items to ensure we're accurately measuring progress. ## Add more information to sharding issues diff --git a/doc/development/testing_guide/best_practices.md b/doc/development/testing_guide/best_practices.md index 1bdec9ef49c..a49f2550c69 100644 --- a/doc/development/testing_guide/best_practices.md +++ b/doc/development/testing_guide/best_practices.md @@ -1085,7 +1085,7 @@ end #### Timestamp truncation -Active Record timestamps are [set by the Rails’ `ActiveRecord::Timestamp`](https://github.com/rails/rails/blob/1eb5cc13a2ed8922b47df4ae47faf5f23faf3d35/activerecord/lib/active_record/timestamp.rb#L105) +Active Record timestamps are [set by the Rails' `ActiveRecord::Timestamp`](https://github.com/rails/rails/blob/1eb5cc13a2ed8922b47df4ae47faf5f23faf3d35/activerecord/lib/active_record/timestamp.rb#L105) module [using `Time.now`](https://github.com/rails/rails/blob/1eb5cc13a2ed8922b47df4ae47faf5f23faf3d35/activerecord/lib/active_record/timestamp.rb#L78). Time precision is [OS-dependent](https://ruby-doc.org/core-2.6.3/Time.html#method-c-new), and as the docs state, may include fractional seconds. diff --git a/doc/install/install_ai_gateway.md b/doc/install/install_ai_gateway.md index bb47761c5eb..9e587f640a8 100644 --- a/doc/install/install_ai_gateway.md +++ b/doc/install/install_ai_gateway.md @@ -383,11 +383,11 @@ These tests are performed for offline environments: ## Does the AI gateway need to autoscale? -Autoscaling is not mandatory but is recommended for environments with variable workloads, high concurrency requirements, or unpredictable usage patterns. In GitLab’s production environment: +Autoscaling is not mandatory but is recommended for environments with variable workloads, high concurrency requirements, or unpredictable usage patterns. In the GitLab production environment: - Baseline setup: A single AI gateway instance with 2 CPU cores and 8 GB RAM can handle approximately 40 concurrent requests. - Scaling guidelines: For larger setups, such as an AWS t3.2xlarge instance (8 vCPUs, 32 GB RAM), the gateway can handle up to 160 concurrent requests, equivalent to 4x the baseline setup. -- Request throughput: GitLab.com’s observed usage suggests that 7 RPS (requests per second) per 1000 active users is a reasonable metric for planning. +- Request throughput: GitLab.com's observed usage suggests that 7 RPS (requests per second) per 1000 active users is a reasonable metric for planning. - Autoscaling options: Use Kubernetes Horizontal Pod Autoscalers (HPA) or similar mechanisms to dynamically adjust the number of instances based on metrics like CPU, memory utilization, or request latency thresholds. ## Configuration examples by deployment size diff --git a/doc/solutions/cloud/aws/_index.md b/doc/solutions/cloud/aws/_index.md index 858c8a5bb19..a9403af6763 100644 --- a/doc/solutions/cloud/aws/_index.md +++ b/doc/solutions/cloud/aws/_index.md @@ -24,7 +24,7 @@ Testing-backed architectural qualification is a fundamental concept behind Cloud ## AWS known issues list -Known issues are gathered from within GitLab and from customer reported issues. Customers successfully implement GitLab with a variety of “as a Service” components that GitLab has not specifically been designed for, nor has ongoing testing for. While GitLab does take partner technologies very seriously, the highlighting of known issues here is a convenience for implementers and it does not imply that GitLab has targeted compatibility with, nor carries any type of guarantee of running on the partner technology where the issues occur. Consult individual issues to understand the GitLab stance and plans on any given known issue. +Known issues are gathered from within GitLab and from customer reported issues. Customers successfully implement GitLab with a variety of "as a Service" components that GitLab has not specifically been designed for, nor has ongoing testing for. While GitLab does take partner technologies very seriously, the highlighting of known issues here is a convenience for implementers and it does not imply that GitLab has targeted compatibility with, nor carries any type of guarantee of running on the partner technology where the issues occur. Consult individual issues to understand the GitLab stance and plans on any given known issue. See the [GitLab AWS known issues list](https://gitlab.com/gitlab-com/alliances/aws/public-tracker/-/issues?label_name[]=AWS+Known+Issue) for a complete list. diff --git a/doc/topics/runner_fleet_design_guides/gitlab_runner_fleet_config_and_best_practices.md b/doc/topics/runner_fleet_design_guides/gitlab_runner_fleet_config_and_best_practices.md index aa3a2fbfbd0..8623498144b 100644 --- a/doc/topics/runner_fleet_design_guides/gitlab_runner_fleet_config_and_best_practices.md +++ b/doc/topics/runner_fleet_design_guides/gitlab_runner_fleet_config_and_best_practices.md @@ -239,7 +239,7 @@ For the FastAPI, consider the following information: - **How many job profiles do I need to cover?** We only have one job profile with the following characteristics: `1 CPU` and `303 Mi` of memory. As explained in [Analyzing the metrics collected](#analyzing-the-metrics-collected) sections, we change those raw values to the following: - `400 Mi` for the memory limit instead of `303 Mi` to avoid any job failure due to the memory limits. - - `0.20` for the CPU instead of `1 CPU`. We don’t mind our job taking more time to complete. We prioritize accuracy and quality over speed when completing tasks. + - `0.20` for the CPU instead of `1 CPU`. We don't mind our job taking more time to complete. We prioritize accuracy and quality over speed when completing tasks. - **How many GitLab Runner Managers do I need to run?** Only one GitLab Runner Manager is enough for our tests. - **What is the expected Workload?** We want to be able to run up to 20 jobs simultaneously at any time. @@ -431,7 +431,7 @@ node_pools = { #### GitLab Runner configuration -The current implementation of GRIT doesn’t allow the installation of more than one runner at the time. The `config_template` provided doesn't set configurations like `node_selection` and other limits, as done in the previous example. A simple configuration allows the maximum allowed overwrite value for CPU-intensive jobs and sets the correct values in the `.gitlab-ci.yml` file. The resulting GitLab Runner configuration looks similar to this: +The current implementation of GRIT doesn't allow the installation of more than one runner at the time. The `config_template` provided doesn't set configurations like `node_selection` and other limits, as done in the previous example. A simple configuration allows the maximum allowed overwrite value for CPU-intensive jobs and sets the correct values in the `.gitlab-ci.yml` file. The resulting GitLab Runner configuration looks similar to this: ```terraform gitlab_pat = "glpat-REDACTED" diff --git a/doc/update/versions/gitlab_16_changes.md b/doc/update/versions/gitlab_16_changes.md index da3d333fa68..3d88ce94d68 100644 --- a/doc/update/versions/gitlab_16_changes.md +++ b/doc/update/versions/gitlab_16_changes.md @@ -864,7 +864,7 @@ Specific information applies to installations using Geo: - **Update to GitLab 16.3.5 or later**. This avoids [issue 425971](https://gitlab.com/gitlab-org/gitlab/-/issues/425971) that causes an excessive use of database disk space for GitLab 16.3.3 and 16.3.4. -- A unique index was added to ensure that there’s no duplicate NPM packages in the database. If you have duplicate NPM packages, you need to upgrade to 16.1 first, or you are likely to run into the following error: `PG::UniqueViolation: ERROR: could not create unique index "idx_packages_on_project_id_name_version_unique_when_npm"`. +- A unique index was added to ensure that there's no duplicate NPM packages in the database. If you have duplicate NPM packages, you need to upgrade to 16.1 first, or you are likely to run into the following error: `PG::UniqueViolation: ERROR: could not create unique index "idx_packages_on_project_id_name_version_unique_when_npm"`. - For Go applications, [`crypto/tls`: verifying certificate chains containing large RSA keys is slow (CVE-2023-29409)](https://github.com/golang/go/issues/61460) introduced a hard limit of 8192 bits for RSA keys. In the context of Go applications at GitLab, RSA keys can be configured for: diff --git a/doc/user/application_security/api_security_testing/checks/open_redirect_check.md b/doc/user/application_security/api_security_testing/checks/open_redirect_check.md index af41adc3dc8..112d022d66d 100644 --- a/doc/user/application_security/api_security_testing/checks/open_redirect_check.md +++ b/doc/user/application_security/api_security_testing/checks/open_redirect_check.md @@ -11,7 +11,7 @@ Identify open redirects and determine if they can be abused by attackers. ## Remediation -Unvalidated redirects and forwards are possible when a web application accepts untrusted input that could cause the web application to redirect the request to a URL contained within untrusted input. By modifying untrusted URL input to a malicious site, an attacker may successfully launch a phishing scam and steal user credentials. Because the server name in the modified link is identical to the original site, phishing attempts may have a more trustworthy appearance. Unvalidated redirect and forward attacks can also be used to maliciously craft a URL that would pass the application’s access control check and then forward the attacker to privileged functions that they would usually not be able to access. +Unvalidated redirects and forwards are possible when a web application accepts untrusted input that could cause the web application to redirect the request to a URL contained within untrusted input. By modifying untrusted URL input to a malicious site, an attacker may successfully launch a phishing scam and steal user credentials. Because the server name in the modified link is identical to the original site, phishing attempts may have a more trustworthy appearance. Unvalidated redirect and forward attacks can also be used to maliciously craft a URL that would pass the application's access control check and then forward the attacker to privileged functions that they would usually not be able to access. ## Links diff --git a/doc/user/application_security/secret_detection/pipeline/configure.md b/doc/user/application_security/secret_detection/pipeline/configure.md index 220a5194672..627c61faded 100644 --- a/doc/user/application_security/secret_detection/pipeline/configure.md +++ b/doc/user/application_security/secret_detection/pipeline/configure.md @@ -165,7 +165,7 @@ There are multiple kinds of customizations available: To create a ruleset configuration file: -1. Create a `.gitlab` directory at the root of your project, if one doesn’t already exist. +1. Create a `.gitlab` directory at the root of your project, if one doesn't already exist. 1. Create a file named `secret-detection-ruleset.toml` in the `.gitlab` directory. ### Modify rules from the default ruleset diff --git a/doc/user/gitlab_duo/setup.md b/doc/user/gitlab_duo/setup.md index 7d3582151f5..18811b83e3b 100644 --- a/doc/user/gitlab_duo/setup.md +++ b/doc/user/gitlab_duo/setup.md @@ -16,7 +16,7 @@ gitlab_dedicated: no GitLab Duo is powered by large language models (LLMs), with data sent through an AI gateway. To use GitLab Duo on a GitLab Self-Managed instance, you can do either of the following: -- Use the GitLab AI vendor models and the cloud-based AI gateway that’s hosted by +- Use the GitLab AI vendor models and the cloud-based AI gateway that's hosted by GitLab. This is the default option. - [Use GitLab Duo Self-Hosted to self-host the AI gateway, with a supported self-hosted LLM](../../administration/gitlab_duo_self_hosted/_index.md#set-up-a-gitlab-duo-self-hosted-infrastructure). This option provides full control over your data and security. diff --git a/doc/user/gitlab_duo_chat/turn_on_off.md b/doc/user/gitlab_duo_chat/turn_on_off.md index b5eee2ef9de..ca58f3fc889 100644 --- a/doc/user/gitlab_duo_chat/turn_on_off.md +++ b/doc/user/gitlab_duo_chat/turn_on_off.md @@ -20,7 +20,7 @@ If you [turn GitLab Duo on or off](../gitlab_duo/turn_on_off.md), you turn on or To use GitLab Duo Chat on a GitLab Self-Managed instance, do one of the following: -- Use the GitLab AI vendor models and the cloud-based AI gateway that’s hosted by GitLab (default option). +- Use the GitLab AI vendor models and the cloud-based AI gateway that's hosted by GitLab (default option). - [Use GitLab Duo Self-Hosted to self-host the AI gateway, with a supported self-hosted LLM](../../administration/gitlab_duo_self_hosted/_index.md#set-up-a-gitlab-duo-self-hosted-infrastructure). Prerequisites: diff --git a/locale/gitlab.pot b/locale/gitlab.pot index 79632d7479a..3c847accd67 100644 --- a/locale/gitlab.pot +++ b/locale/gitlab.pot @@ -8970,6 +8970,12 @@ msgstr "" msgid "Attribute 'pod-overrides' is not yet supported" msgstr "" +msgid "Audit Event Author Placeholder" +msgstr "" + +msgid "Audit Event Details placeholder" +msgstr "" + msgid "Audit events" msgstr "" @@ -15946,6 +15952,9 @@ msgstr "" msgid "ComplianceManagement|Requirement" msgstr "" +msgid "ComplianceReport|Action" +msgstr "" + msgid "ComplianceReport|Apply frameworks to selected projects" msgstr "" @@ -15955,9 +15964,15 @@ msgstr "" msgid "ComplianceReport|Approved by committer" msgstr "" +msgid "ComplianceReport|Audit Event" +msgstr "" + msgid "ComplianceReport|Avoid creating new compliance pipelines and use pipeline execution policies instead. %{linkStart}Pipeline execution policies%{linkEnd} provide the ability to enforce CI/CD jobs, execute security scans, and better manage compliance enforcement in pipelines." msgstr "" +msgid "ComplianceReport|Change status" +msgstr "" + msgid "ComplianceReport|Choose one bulk action" msgstr "" @@ -15973,6 +15988,12 @@ msgstr "" msgid "ComplianceReport|Create policy" msgstr "" +msgid "ComplianceReport|Date detected" +msgstr "" + +msgid "ComplianceReport|Details" +msgstr "" + msgid "ComplianceReport|Dismiss" msgstr "" @@ -15982,6 +16003,9 @@ msgstr "" msgid "ComplianceReport|Edit the framework" msgstr "" +msgid "ComplianceReport|Failed to update violation status. Please try again." +msgstr "" + msgid "ComplianceReport|For more information, see %{linkStart}how to migrate from compliance pipelines to pipeline execution policies%{linkEnd}." msgstr "" @@ -16066,6 +16090,9 @@ msgstr "" msgid "ComplianceReport|View the framework details" msgstr "" +msgid "ComplianceReport|Violated control and framework" +msgstr "" + msgid "ComplianceReport|We are replacing the violations report with a new version that includes enhanced features for your compliance workflow." msgstr "" @@ -55622,7 +55649,7 @@ msgstr "" msgid "SecurityInventory|Load more" msgstr "" -msgid "SecurityInventory|Manage security configuration" +msgid "SecurityInventory|Manage tool coverage" msgstr "" msgid "SecurityInventory|No projects found" @@ -55664,9 +55691,15 @@ msgstr "" msgid "SecurityInventory|Tool coverage: %{coverage}" msgstr "" +msgid "SecurityInventory|View project" +msgstr "" + msgid "SecurityInventory|View security coverage and vulnerabilities for all the projects in this group." msgstr "" +msgid "SecurityInventory|View subgroup" +msgstr "" + msgid "SecurityInventory|View vulnerability report" msgstr "" diff --git a/package.json b/package.json index 0c2f6e0b403..bf6ca282f96 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ "@gitlab/favicon-overlay": "2.0.0", "@gitlab/fonts": "^1.3.0", "@gitlab/query-language-rust": "0.9.2", - "@gitlab/svgs": "3.134.0", + "@gitlab/svgs": "3.137.0", "@gitlab/ui": "114.8.1", "@gitlab/vue-router-vue3": "npm:vue-router@4.5.1", "@gitlab/vuex-vue3": "npm:vuex@4.1.0", diff --git a/qa/knapsack/example_runtimes/master_report.json b/qa/knapsack/example_runtimes/master_report.json index 6f894322343..ec5918a8a53 100644 --- a/qa/knapsack/example_runtimes/master_report.json +++ b/qa/knapsack/example_runtimes/master_report.json @@ -1,491 +1,487 @@ { - "./qa/specs/features/api/10_software_supply_chain_security/group_access_token_spec.rb[1:1:1]": 34.820205922, - "./qa/specs/features/api/10_software_supply_chain_security/group_access_token_spec.rb[1:1:2]": 20.055017136, - "./qa/specs/features/api/10_software_supply_chain_security/project_access_token_spec.rb[1:1:1:1]": 21.054816031, - "./qa/specs/features/api/10_software_supply_chain_security/project_access_token_spec.rb[1:1:1:2]": 14.942597808, - "./qa/specs/features/api/10_software_supply_chain_security/project_access_token_spec.rb[1:1:2:1]": 45.147812858, - "./qa/specs/features/api/10_software_supply_chain_security/project_access_token_spec.rb[1:1:2:2]": 79.455012423, - "./qa/specs/features/api/12_systems/gitaly/automatic_failover_and_recovery_spec.rb[1:1:1]": 64.095719874, - "./qa/specs/features/api/12_systems/gitaly/automatic_failover_and_recovery_spec.rb[1:1:2:1]": 32.112749936, - "./qa/specs/features/api/12_systems/gitaly/backend_node_recovery_spec.rb[1:1:1]": 109.627102697, - "./qa/specs/features/api/12_systems/gitaly/distributed_reads_spec.rb[1:1:1]": 54.04093681, - "./qa/specs/features/api/12_systems/gitaly/distributed_reads_spec.rb[1:1:2:1]": 58.284144745, - "./qa/specs/features/api/12_systems/gitaly/gitaly_mtls_spec.rb[1:1:1]": 12.683987097, - "./qa/specs/features/api/1_manage/import/import_github_repo_spec.rb[1:1:1:1]": 67.029896753, - "./qa/specs/features/api/1_manage/integrations/webhook_events_spec.rb[1:1:1]": 13.260453534, - "./qa/specs/features/api/1_manage/integrations/webhook_events_spec.rb[1:1:2]": 12.397814853, - "./qa/specs/features/api/1_manage/integrations/webhook_events_spec.rb[1:1:3]": 14.956306898, - "./qa/specs/features/api/1_manage/integrations/webhook_events_spec.rb[1:1:4]": 12.021696541, - "./qa/specs/features/api/1_manage/integrations/webhook_events_spec.rb[1:1:5]": 14.295014652, - "./qa/specs/features/api/1_manage/migration/gitlab_migration_group_spec.rb[1:1:2:1]": 52.789375341, - "./qa/specs/features/api/1_manage/migration/gitlab_migration_issue_spec.rb[1:1:2:1]": 117.68429382, - "./qa/specs/features/api/1_manage/migration/gitlab_migration_issue_spec.rb[1:1:3:1]": 96.685377547, - "./qa/specs/features/api/1_manage/migration/gitlab_migration_pipeline_spec.rb[1:1:1:1]": 95.183408053, - "./qa/specs/features/api/1_manage/rate_limits_spec.rb[1:1:1]": 18.570701422, - "./qa/specs/features/api/2_plan/closes_issue_via_pushing_a_commit_spec.rb[1:1:1]": 26.350634321, - "./qa/specs/features/api/3_create/merge_request/push_options_mwps_spec.rb[1:1:1]": 11.1672686, - "./qa/specs/features/api/3_create/merge_request/push_options_remove_source_branch_spec.rb[1:1:1]": 19.716478539, - "./qa/specs/features/api/3_create/merge_request/push_options_spec.rb[1:1:1]": 23.335908128, - "./qa/specs/features/api/3_create/merge_request/push_options_spec.rb[1:1:2]": 25.656841763, - "./qa/specs/features/api/3_create/merge_request/view_merge_requests_spec.rb[1:1:1:1]": 1.12492613, - "./qa/specs/features/api/3_create/repository/add_list_delete_branches_spec.rb[1:1:1]": 37.033504004, - "./qa/specs/features/api/3_create/repository/commit_to_templated_project_spec.rb[1:1:1]": 15.834466598, - "./qa/specs/features/api/3_create/repository/default_branch_name_setting_spec.rb[1:1:1]": 7.363520403, - "./qa/specs/features/api/3_create/repository/default_branch_name_setting_spec.rb[1:1:2]": 10.419778644, - "./qa/specs/features/api/3_create/repository/files_spec.rb[1:1:1]": 11.070951394, - "./qa/specs/features/api/3_create/repository/files_spec.rb[1:1:2:1]": 5.187000272, - "./qa/specs/features/api/3_create/repository/project_archive_compare_spec.rb[1:1:1]": 20.169613538, - "./qa/specs/features/api/3_create/repository/push_postreceive_idempotent_spec.rb[1:1:1]": 22.981041414, - "./qa/specs/features/api/3_create/repository/storage_size_spec.rb[1:1:1]": 19.574459601, - "./qa/specs/features/api/3_create/repository/tag_revision_trigger_prereceive_hook_spec.rb[1:1:1:1:1]": 15.513966763, - "./qa/specs/features/api/4_verify/api_variable_inheritance_with_forward_pipeline_variables_spec.rb[1:1:1]": 59.508752848, - "./qa/specs/features/api/4_verify/cancel_pipeline_when_block_user_spec.rb[1:1:1]": 19.05238086, - "./qa/specs/features/api/4_verify/file_variable_spec.rb[1:1:1]": 36.793189879, - "./qa/specs/features/api/4_verify/file_variable_spec.rb[1:1:2]": 22.533759213, - "./qa/specs/features/api/4_verify/job_downloads_artifacts_spec.rb[1:1:1]": 72.660757127, - "./qa/specs/features/api/8_monitor/metrics_spec.rb[1:1:2:1]": 5.55494271, - "./qa/specs/features/api/8_monitor/metrics_spec.rb[1:2:1:1]": 2.962983811, - "./qa/specs/features/api/9_tenant_scale/user_inherited_access_spec.rb[1:1:1:1]": 19.310681977, - "./qa/specs/features/api/9_tenant_scale/user_inherited_access_spec.rb[1:1:1:2]": 14.505665585, - "./qa/specs/features/api/9_tenant_scale/user_inherited_access_spec.rb[1:1:1:3]": 15.652969815, - "./qa/specs/features/api/9_tenant_scale/user_inherited_access_spec.rb[1:1:2:1]": 38.617714035, - "./qa/specs/features/api/9_tenant_scale/user_inherited_access_spec.rb[1:1:2:2]": 11.184736844, - "./qa/specs/features/api/9_tenant_scale/user_inherited_access_spec.rb[1:1:2:3]": 9.051293998, - "./qa/specs/features/api/9_tenant_scale/users_spec.rb[1:1:1]": 4.105724999, - "./qa/specs/features/api/9_tenant_scale/users_spec.rb[1:1:2]": 1.415402318, - "./qa/specs/features/api/9_tenant_scale/users_spec.rb[1:1:3]": 1.680564151, - "./qa/specs/features/browser_ui/10_govern/login/log_in_spec.rb[1:1:1]": 5.645742649, - "./qa/specs/features/browser_ui/10_govern/project/project_access_token_spec.rb[1:1:1]": 9.759487105, - "./qa/specs/features/browser_ui/10_software_supply_chain_security/group/group_access_token_spec.rb[1:1:1]": 23.862099606, - "./qa/specs/features/browser_ui/10_software_supply_chain_security/login/2fa_recovery_spec.rb[1:1:1]": 62.072023224, - "./qa/specs/features/browser_ui/10_software_supply_chain_security/login/2fa_ssh_recovery_spec.rb[1:1:1]": 72.346186181, - "./qa/specs/features/browser_ui/10_software_supply_chain_security/login/log_in_spec.rb[1:1:1]": 77.483603659, - "./qa/specs/features/browser_ui/10_software_supply_chain_security/login/log_in_with_2fa_spec.rb[1:1:1]": 92.720895708, - "./qa/specs/features/browser_ui/10_software_supply_chain_security/login/log_into_gitlab_via_ldap_spec.rb[1:1:1]": 6.338282952, - "./qa/specs/features/browser_ui/10_software_supply_chain_security/login/log_into_mattermost_via_gitlab_spec.rb[1:1:1]": 30.089140519, - "./qa/specs/features/browser_ui/10_software_supply_chain_security/login/login_via_instance_wide_saml_sso_spec.rb[1:1:1]": 20.638053878, - "./qa/specs/features/browser_ui/10_software_supply_chain_security/login/oauth_login_with_github_spec.rb[1:1:1]": 42.285240967, - "./qa/specs/features/browser_ui/10_software_supply_chain_security/login/register_spec.rb[1:1:1]": 5.546796423, - "./qa/specs/features/browser_ui/10_software_supply_chain_security/login/register_spec.rb[1:2:1:1:1]": 32.355716083, - "./qa/specs/features/browser_ui/10_software_supply_chain_security/login/register_spec.rb[1:2:1:2:1]": 11.720073809, - "./qa/specs/features/browser_ui/10_software_supply_chain_security/login/register_spec.rb[1:2:2:1]": 52.910317142, - "./qa/specs/features/browser_ui/10_software_supply_chain_security/project/project_access_token_spec.rb[1:1:1]": 105.354748361, - "./qa/specs/features/browser_ui/10_software_supply_chain_security/user/impersonation_token_spec.rb[1:1:1]": 34.526505666, - "./qa/specs/features/browser_ui/10_software_supply_chain_security/user/user_access_termination_spec.rb[1:1:1:1]": 18.848340816, - "./qa/specs/features/browser_ui/10_software_supply_chain_security/user/user_access_termination_spec.rb[1:1:1:2]": 20.588710128, - "./qa/specs/features/browser_ui/10_software_supply_chain_security/user/user_access_termination_spec.rb[1:1:1:3]": 16.173942936, - "./qa/specs/features/browser_ui/14_analytics/performance_bar_spec.rb[1:1:1:1]": 47.220210135, - "./qa/specs/features/browser_ui/14_analytics/service_ping_disabled_spec.rb[1:1:1:1]": 17.573776535, - "./qa/specs/features/browser_ui/1_manage/integrations/jenkins/jenkins_build_status_spec.rb[1:1:1]": 85.893562972, - "./qa/specs/features/browser_ui/1_manage/integrations/jira/jira_basic_integration_spec.rb[1:1:1]": 19.145247248, - "./qa/specs/features/browser_ui/1_manage/integrations/jira/jira_basic_integration_spec.rb[1:1:2]": 35.214806679, - "./qa/specs/features/browser_ui/1_manage/integrations/jira/jira_issue_import_spec.rb[1:1:1]": 54.811785611, - "./qa/specs/features/browser_ui/1_manage/integrations/pipeline_status_emails_spec.rb[1:1:1:1]": 35.188760803, - "./qa/specs/features/browser_ui/1_manage/integrations/pipeline_status_emails_spec.rb[1:1:2:1]": 29.066357098, - "./qa/specs/features/browser_ui/1_manage/migration/gitlab_migration_group_spec.rb[1:1:1]": 55.861687965, - "./qa/specs/features/browser_ui/1_manage/migration/gitlab_migration_user_contribution_reassignment_spec.rb[1:1:1:1]": 181.911416618, - "./qa/specs/features/browser_ui/2_plan/design_management/add_design_content_spec.rb[1:1:1]": 25.777852256, - "./qa/specs/features/browser_ui/2_plan/design_management/archive_design_content_spec.rb[1:1:1]": 33.968196818, - "./qa/specs/features/browser_ui/2_plan/design_management/modify_design_content_spec.rb[1:1:1]": 25.254255532, - "./qa/specs/features/browser_ui/2_plan/email/trigger_email_notification_spec.rb[1:1:1]": 16.10203123, - "./qa/specs/features/browser_ui/2_plan/issue/collapse_comments_in_discussions_spec.rb[1:1:1]": 28.491427843, - "./qa/specs/features/browser_ui/2_plan/issue/comment_issue_spec.rb[1:1:1]": 32.526472383, - "./qa/specs/features/browser_ui/2_plan/issue/create_issue_spec.rb[1:1:1]": 52.064169909, - "./qa/specs/features/browser_ui/2_plan/issue/create_issue_spec.rb[1:1:2]": 66.253846542, - "./qa/specs/features/browser_ui/2_plan/issue/create_issue_spec.rb[1:1:3]": 48.849763471, - "./qa/specs/features/browser_ui/2_plan/issue/create_issue_spec.rb[1:1:4:1]": 49.519796422, - "./qa/specs/features/browser_ui/2_plan/issue/custom_issue_template_spec.rb[1:1:1]": 33.686072116, - "./qa/specs/features/browser_ui/2_plan/issue/export_as_csv_spec.rb[1:1:1]": 46.844171275, - "./qa/specs/features/browser_ui/2_plan/issue/issue_suggestions_spec.rb[1:1:1]": 27.425600497, - "./qa/specs/features/browser_ui/2_plan/issue/mentions_spec.rb[1:1:1]": 35.18644136, - "./qa/specs/features/browser_ui/2_plan/issue/real_time_assignee_spec.rb[1:1:1]": 39.257234624, - "./qa/specs/features/browser_ui/2_plan/issue_boards/focus_mode_spec.rb[1:1:1]": 22.977953001, - "./qa/specs/features/browser_ui/2_plan/milestone/assign_milestone_spec.rb[1:1:1:1:1]": 27.539115155, - "./qa/specs/features/browser_ui/2_plan/milestone/assign_milestone_spec.rb[1:1:1:2:1]": 36.956964495, - "./qa/specs/features/browser_ui/2_plan/milestone/assign_milestone_spec.rb[1:1:2:1:1]": 29.052393248, - "./qa/specs/features/browser_ui/2_plan/milestone/assign_milestone_spec.rb[1:1:2:2:1]": 37.575030902, - "./qa/specs/features/browser_ui/2_plan/milestone/create_group_milestone_spec.rb[1:1:1]": 20.785159661, - "./qa/specs/features/browser_ui/2_plan/milestone/create_project_milestone_spec.rb[1:1:1]": 64.341025041, - "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_content_creation_spec.rb[1:1:1]": 24.311661877, - "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_content_creation_spec.rb[1:1:2]": 13.956722323, - "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_content_creation_spec.rb[1:1:3]": 10.186410868, - "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_content_creation_spec.rb[1:1:4]": 10.821494935, - "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_content_creation_spec.rb[1:1:5]": 12.248841866, - "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_content_manipulation_spec.rb[1:1:1]": 13.830065307, - "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_content_manipulation_spec.rb[1:1:2]": 15.12172673, - "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_content_manipulation_spec.rb[1:1:3]": 13.593774671, - "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_directory_management_spec.rb[1:1:1]": 21.408307458, - "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_file_upload_spec.rb[1:1:1]": 60.802825621, - "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_list_spec.rb[1:1:1:1]": 15.741282193, - "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_list_spec.rb[1:1:2:1]": 22.154011282, - "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_page_deletion_spec.rb[1:1:1]": 18.72610644, - "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_page_deletion_spec.rb[1:1:2]": 34.38203789, - "./qa/specs/features/browser_ui/2_plan/related_issues/related_issues_spec.rb[1:1:1]": 43.995752361, - "./qa/specs/features/browser_ui/3_create/merge_request/add_batch_comments_in_merge_request_spec.rb[1:1:1]": 61.337743027, - "./qa/specs/features/browser_ui/3_create/merge_request/add_batch_comments_in_merge_request_spec.rb[1:1:2]": 52.554009839, - "./qa/specs/features/browser_ui/3_create/merge_request/cherry_pick/cherry_pick_a_merge_spec.rb[1:1:1]": 96.021465925, - "./qa/specs/features/browser_ui/3_create/merge_request/cherry_pick/cherry_pick_commit_spec.rb[1:1:1]": 33.546476528, - "./qa/specs/features/browser_ui/3_create/merge_request/create_merge_request_spec.rb[1:1:1]": 50.910922396, - "./qa/specs/features/browser_ui/3_create/merge_request/create_merge_request_spec.rb[1:1:2]": 63.466139216, - "./qa/specs/features/browser_ui/3_create/merge_request/merge_merge_request_from_fork_spec.rb[1:1:1]": 76.401185183, - "./qa/specs/features/browser_ui/3_create/merge_request/merge_request_set_to_auto_merge_spec.rb[1:1:1]": 89.249417263, - "./qa/specs/features/browser_ui/3_create/merge_request/rebase_merge_request_spec.rb[1:1:1]": 100.928800686, + "./qa/specs/features/api/10_software_supply_chain_security/group_access_token_spec.rb[1:1:1]": 38.694389293, + "./qa/specs/features/api/10_software_supply_chain_security/group_access_token_spec.rb[1:1:2]": 17.292118204, + "./qa/specs/features/api/10_software_supply_chain_security/project_access_token_spec.rb[1:1:1:1]": 26.430254007, + "./qa/specs/features/api/10_software_supply_chain_security/project_access_token_spec.rb[1:1:1:2]": 16.92764476, + "./qa/specs/features/api/10_software_supply_chain_security/project_access_token_spec.rb[1:1:2:1]": 28.780049471, + "./qa/specs/features/api/10_software_supply_chain_security/project_access_token_spec.rb[1:1:2:2]": 23.857157074, + "./qa/specs/features/api/12_systems/gitaly/automatic_failover_and_recovery_spec.rb[1:1:1]": 70.603283417, + "./qa/specs/features/api/12_systems/gitaly/automatic_failover_and_recovery_spec.rb[1:1:2:1]": 34.422397236, + "./qa/specs/features/api/12_systems/gitaly/backend_node_recovery_spec.rb[1:1:1]": 117.271956587, + "./qa/specs/features/api/12_systems/gitaly/distributed_reads_spec.rb[1:1:1]": 57.815332469, + "./qa/specs/features/api/12_systems/gitaly/distributed_reads_spec.rb[1:1:2:1]": 57.723498327, + "./qa/specs/features/api/12_systems/gitaly/gitaly_mtls_spec.rb[1:1:1]": 23.506219002, + "./qa/specs/features/api/1_manage/import/import_github_repo_spec.rb[1:1:1:1]": 102.444887798, + "./qa/specs/features/api/1_manage/integrations/webhook_events_spec.rb[1:1:1]": 21.385592246, + "./qa/specs/features/api/1_manage/integrations/webhook_events_spec.rb[1:1:2]": 15.601028635, + "./qa/specs/features/api/1_manage/integrations/webhook_events_spec.rb[1:1:3]": 14.618249586, + "./qa/specs/features/api/1_manage/integrations/webhook_events_spec.rb[1:1:4]": 23.979884097, + "./qa/specs/features/api/1_manage/integrations/webhook_events_spec.rb[1:1:5]": 12.638915084, + "./qa/specs/features/api/1_manage/migration/gitlab_migration_group_spec.rb[1:1:2:1]": 59.054067834, + "./qa/specs/features/api/1_manage/migration/gitlab_migration_issue_spec.rb[1:1:2:1]": 108.083540722, + "./qa/specs/features/api/1_manage/migration/gitlab_migration_issue_spec.rb[1:1:3:1]": 103.832499163, + "./qa/specs/features/api/1_manage/migration/gitlab_migration_pipeline_spec.rb[1:1:1:1]": 99.236012186, + "./qa/specs/features/api/1_manage/rate_limits_spec.rb[1:1:1]": 20.307458919, + "./qa/specs/features/api/2_plan/closes_issue_via_pushing_a_commit_spec.rb[1:1:1]": 26.064993832, + "./qa/specs/features/api/3_create/merge_request/push_options_mwps_spec.rb[1:1:1]": 24.607449956, + "./qa/specs/features/api/3_create/merge_request/push_options_remove_source_branch_spec.rb[1:1:1]": 29.733459992, + "./qa/specs/features/api/3_create/merge_request/push_options_spec.rb[1:1:1]": 21.867775605, + "./qa/specs/features/api/3_create/merge_request/push_options_spec.rb[1:1:2]": 22.324081094, + "./qa/specs/features/api/3_create/merge_request/view_merge_requests_spec.rb[1:1:1:1]": 4.324227588, + "./qa/specs/features/api/3_create/repository/add_list_delete_branches_spec.rb[1:1:1]": 22.531714816, + "./qa/specs/features/api/3_create/repository/commit_to_templated_project_spec.rb[1:1:1]": 16.648754346, + "./qa/specs/features/api/3_create/repository/default_branch_name_setting_spec.rb[1:1:1]": 9.298442911, + "./qa/specs/features/api/3_create/repository/default_branch_name_setting_spec.rb[1:1:2]": 7.391353417, + "./qa/specs/features/api/3_create/repository/files_spec.rb[1:1:1]": 15.419656801, + "./qa/specs/features/api/3_create/repository/files_spec.rb[1:1:2:1]": 5.480705945, + "./qa/specs/features/api/3_create/repository/project_archive_compare_spec.rb[1:1:1]": 17.139648441, + "./qa/specs/features/api/3_create/repository/push_postreceive_idempotent_spec.rb[1:1:1]": 30.063760053, + "./qa/specs/features/api/3_create/repository/storage_size_spec.rb[1:1:1]": 32.208002541, + "./qa/specs/features/api/3_create/repository/tag_revision_trigger_prereceive_hook_spec.rb[1:1:1:1:1]": 16.570051916, + "./qa/specs/features/api/4_verify/api_variable_inheritance_with_forward_pipeline_variables_spec.rb[1:1:1]": 101.882578906, + "./qa/specs/features/api/4_verify/cancel_pipeline_when_block_user_spec.rb[1:1:1]": 26.143110228, + "./qa/specs/features/api/4_verify/file_variable_spec.rb[1:1:1]": 33.984459104, + "./qa/specs/features/api/4_verify/file_variable_spec.rb[1:1:2]": 17.619995565, + "./qa/specs/features/api/4_verify/job_downloads_artifacts_spec.rb[1:1:1]": 52.761883797, + "./qa/specs/features/api/8_monitor/metrics_spec.rb[1:1:2:1]": 4.487503617, + "./qa/specs/features/api/8_monitor/metrics_spec.rb[1:2:1:1]": 3.506797329, + "./qa/specs/features/api/9_tenant_scale/user_inherited_access_spec.rb[1:1:1:1]": 9.822278235, + "./qa/specs/features/api/9_tenant_scale/user_inherited_access_spec.rb[1:1:1:2]": 10.241255251, + "./qa/specs/features/api/9_tenant_scale/user_inherited_access_spec.rb[1:1:1:3]": 9.304075182, + "./qa/specs/features/api/9_tenant_scale/user_inherited_access_spec.rb[1:1:2:1]": 38.940904688, + "./qa/specs/features/api/9_tenant_scale/user_inherited_access_spec.rb[1:1:2:2]": 11.205342165, + "./qa/specs/features/api/9_tenant_scale/user_inherited_access_spec.rb[1:1:2:3]": 13.047903776, + "./qa/specs/features/api/9_tenant_scale/users_spec.rb[1:1:1]": 1.560156932, + "./qa/specs/features/api/9_tenant_scale/users_spec.rb[1:1:2]": 1.726265668, + "./qa/specs/features/api/9_tenant_scale/users_spec.rb[1:1:3]": 4.230629499, + "./qa/specs/features/browser_ui/10_govern/login/log_in_spec.rb[1:1:1]": 5.501264819, + "./qa/specs/features/browser_ui/10_govern/project/project_access_token_spec.rb[1:1:1]": 19.255498857, + "./qa/specs/features/browser_ui/10_software_supply_chain_security/group/group_access_token_spec.rb[1:1:1]": 27.346987433, + "./qa/specs/features/browser_ui/10_software_supply_chain_security/login/2fa_recovery_spec.rb[1:1:1]": 72.103145546, + "./qa/specs/features/browser_ui/10_software_supply_chain_security/login/2fa_ssh_recovery_spec.rb[1:1:1]": 67.685360543, + "./qa/specs/features/browser_ui/10_software_supply_chain_security/login/log_in_spec.rb[1:1:1]": 16.518583144, + "./qa/specs/features/browser_ui/10_software_supply_chain_security/login/log_in_with_2fa_spec.rb[1:1:1]": 103.747503687, + "./qa/specs/features/browser_ui/10_software_supply_chain_security/login/log_into_gitlab_via_ldap_spec.rb[1:1:1]": 3.630414747, + "./qa/specs/features/browser_ui/10_software_supply_chain_security/login/log_into_mattermost_via_gitlab_spec.rb[1:1:1]": 33.587231572, + "./qa/specs/features/browser_ui/10_software_supply_chain_security/login/login_via_instance_wide_saml_sso_spec.rb[1:1:1]": 24.134020043, + "./qa/specs/features/browser_ui/10_software_supply_chain_security/login/oauth_login_with_github_spec.rb[1:1:1]": 44.565257342, + "./qa/specs/features/browser_ui/10_software_supply_chain_security/login/register_spec.rb[1:1:1]": 12.422305203, + "./qa/specs/features/browser_ui/10_software_supply_chain_security/login/register_spec.rb[1:2:1:1:1]": 40.464955162, + "./qa/specs/features/browser_ui/10_software_supply_chain_security/login/register_spec.rb[1:2:1:2:1]": 12.862383043, + "./qa/specs/features/browser_ui/10_software_supply_chain_security/login/register_spec.rb[1:2:2:1]": 57.651772102, + "./qa/specs/features/browser_ui/10_software_supply_chain_security/project/project_access_token_spec.rb[1:1:1]": 32.549480048, + "./qa/specs/features/browser_ui/10_software_supply_chain_security/user/impersonation_token_spec.rb[1:1:1]": 33.604157366, + "./qa/specs/features/browser_ui/10_software_supply_chain_security/user/user_access_termination_spec.rb[1:1:1:1]": 26.16416678, + "./qa/specs/features/browser_ui/10_software_supply_chain_security/user/user_access_termination_spec.rb[1:1:1:2]": 11.710626798, + "./qa/specs/features/browser_ui/10_software_supply_chain_security/user/user_access_termination_spec.rb[1:1:1:3]": 10.493667827, + "./qa/specs/features/browser_ui/14_analytics/performance_bar_spec.rb[1:1:1:1]": 44.393421006, + "./qa/specs/features/browser_ui/14_analytics/service_ping_disabled_spec.rb[1:1:1:1]": 18.755478154, + "./qa/specs/features/browser_ui/1_manage/integrations/jenkins/jenkins_build_status_spec.rb[1:1:1]": 73.94146909, + "./qa/specs/features/browser_ui/1_manage/integrations/jira/jira_basic_integration_spec.rb[1:1:1]": 22.852797038, + "./qa/specs/features/browser_ui/1_manage/integrations/jira/jira_basic_integration_spec.rb[1:1:2]": 51.221329819, + "./qa/specs/features/browser_ui/1_manage/integrations/jira/jira_issue_import_spec.rb[1:1:1]": 57.759919622, + "./qa/specs/features/browser_ui/1_manage/integrations/pipeline_status_emails_spec.rb[1:1:1:1]": 42.43665319, + "./qa/specs/features/browser_ui/1_manage/integrations/pipeline_status_emails_spec.rb[1:1:2:1]": 56.545380017, + "./qa/specs/features/browser_ui/1_manage/migration/gitlab_migration_group_spec.rb[1:1:1]": 68.77737532, + "./qa/specs/features/browser_ui/1_manage/migration/gitlab_migration_user_contribution_reassignment_spec.rb[1:1:1:1]": 226.724148246, + "./qa/specs/features/browser_ui/2_plan/design_management/add_design_content_spec.rb[1:1:1]": 27.022102342, + "./qa/specs/features/browser_ui/2_plan/design_management/archive_design_content_spec.rb[1:1:1]": 33.599834108, + "./qa/specs/features/browser_ui/2_plan/design_management/modify_design_content_spec.rb[1:1:1]": 23.949575188, + "./qa/specs/features/browser_ui/2_plan/email/trigger_email_notification_spec.rb[1:1:1]": 16.182167695, + "./qa/specs/features/browser_ui/2_plan/issue/collapse_comments_in_discussions_spec.rb[1:1:1]": 27.392979917, + "./qa/specs/features/browser_ui/2_plan/issue/comment_issue_spec.rb[1:1:1]": 30.688736942, + "./qa/specs/features/browser_ui/2_plan/issue/create_issue_spec.rb[1:1:1]": 47.628175707, + "./qa/specs/features/browser_ui/2_plan/issue/create_issue_spec.rb[1:1:2]": 67.316807152, + "./qa/specs/features/browser_ui/2_plan/issue/create_issue_spec.rb[1:1:3]": 38.996583159, + "./qa/specs/features/browser_ui/2_plan/issue/create_issue_spec.rb[1:1:4:1]": 37.78338327, + "./qa/specs/features/browser_ui/2_plan/issue/custom_issue_template_spec.rb[1:1:1]": 36.23987222, + "./qa/specs/features/browser_ui/2_plan/issue/export_as_csv_spec.rb[1:1:1]": 42.708311198, + "./qa/specs/features/browser_ui/2_plan/issue/issue_suggestions_spec.rb[1:1:1]": 30.999926927, + "./qa/specs/features/browser_ui/2_plan/issue/mentions_spec.rb[1:1:1]": 39.326301794, + "./qa/specs/features/browser_ui/2_plan/issue/real_time_assignee_spec.rb[1:1:1]": 35.2258463, + "./qa/specs/features/browser_ui/2_plan/issue_boards/focus_mode_spec.rb[1:1:1]": 21.420580941, + "./qa/specs/features/browser_ui/2_plan/milestone/assign_milestone_spec.rb[1:1:1:1:1]": 34.809529055, + "./qa/specs/features/browser_ui/2_plan/milestone/assign_milestone_spec.rb[1:1:1:2:1]": 46.917093033, + "./qa/specs/features/browser_ui/2_plan/milestone/assign_milestone_spec.rb[1:1:2:1:1]": 28.730658132, + "./qa/specs/features/browser_ui/2_plan/milestone/assign_milestone_spec.rb[1:1:2:2:1]": 36.776003927, + "./qa/specs/features/browser_ui/2_plan/milestone/create_group_milestone_spec.rb[1:1:1]": 26.227822282, + "./qa/specs/features/browser_ui/2_plan/milestone/create_project_milestone_spec.rb[1:1:1]": 30.304092714, + "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_content_creation_spec.rb[1:1:1]": 16.038005868, + "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_content_creation_spec.rb[1:1:2]": 23.231260791, + "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_content_creation_spec.rb[1:1:3]": 12.951422052, + "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_content_creation_spec.rb[1:1:4]": 15.013719133, + "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_content_creation_spec.rb[1:1:5]": 13.73717918, + "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_content_manipulation_spec.rb[1:1:1]": 14.912152096, + "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_content_manipulation_spec.rb[1:1:2]": 23.624754331, + "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_content_manipulation_spec.rb[1:1:3]": 15.153050467, + "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_directory_management_spec.rb[1:1:1]": 19.97157403, + "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_file_upload_spec.rb[1:1:1]": 40.415613521, + "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_list_spec.rb[1:1:1:1]": 16.35326248, + "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_list_spec.rb[1:1:2:1]": 32.572255394, + "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_page_deletion_spec.rb[1:1:1]": 22.90052116, + "./qa/specs/features/browser_ui/2_plan/project_wiki/project_based_page_deletion_spec.rb[1:1:2]": 36.506695024, + "./qa/specs/features/browser_ui/2_plan/related_issues/related_issues_spec.rb[1:1:1]": 35.204347683, + "./qa/specs/features/browser_ui/3_create/merge_request/add_batch_comments_in_merge_request_spec.rb[1:1:1]": 64.113232829, + "./qa/specs/features/browser_ui/3_create/merge_request/add_batch_comments_in_merge_request_spec.rb[1:1:2]": 43.678541457, + "./qa/specs/features/browser_ui/3_create/merge_request/cherry_pick/cherry_pick_a_merge_spec.rb[1:1:1]": 58.484658344, + "./qa/specs/features/browser_ui/3_create/merge_request/cherry_pick/cherry_pick_commit_spec.rb[1:1:1]": 39.589417478, + "./qa/specs/features/browser_ui/3_create/merge_request/create_merge_request_spec.rb[1:1:1]": 58.154924852, + "./qa/specs/features/browser_ui/3_create/merge_request/create_merge_request_spec.rb[1:1:2]": 51.571512105, + "./qa/specs/features/browser_ui/3_create/merge_request/merge_merge_request_from_fork_spec.rb[1:1:1]": 50.121743641, + "./qa/specs/features/browser_ui/3_create/merge_request/merge_request_set_to_auto_merge_spec.rb[1:1:1]": 91.995121723, + "./qa/specs/features/browser_ui/3_create/merge_request/rebase_merge_request_spec.rb[1:1:1]": 64.518948272, "./qa/specs/features/browser_ui/3_create/merge_request/revert/revert_commit_spec.rb[1:1:1]": 42.619851143, - "./qa/specs/features/browser_ui/3_create/merge_request/revert/reverting_merge_request_spec.rb[1:1:1]": 55.013765404, - "./qa/specs/features/browser_ui/3_create/merge_request/suggestions/batch_suggestion_spec.rb[1:1:1]": 64.952121787, - "./qa/specs/features/browser_ui/3_create/merge_request/suggestions/custom_commit_suggestion_spec.rb[1:1:1]": 79.891230044, - "./qa/specs/features/browser_ui/3_create/merge_request/view_merge_request_diff_patch_spec.rb[1:1:1]": 37.824577464, - "./qa/specs/features/browser_ui/3_create/merge_request/view_merge_request_diff_patch_spec.rb[1:1:2]": 44.616515734, - "./qa/specs/features/browser_ui/3_create/repository/add_file_template_spec.rb[1:1:1]": 14.378236701, - "./qa/specs/features/browser_ui/3_create/repository/add_new_branch_rule_spec.rb[1:1:1]": 32.130782561, - "./qa/specs/features/browser_ui/3_create/repository/branch_with_unusual_name_spec.rb[1:1:1:1]": 25.845700274, - "./qa/specs/features/browser_ui/3_create/repository/clone_spec.rb[1:1:1]": 16.792638113, + "./qa/specs/features/browser_ui/3_create/merge_request/revert/reverting_merge_request_spec.rb[1:1:1]": 119.011992346, + "./qa/specs/features/browser_ui/3_create/merge_request/suggestions/batch_suggestion_spec.rb[1:1:1]": 72.973859571, + "./qa/specs/features/browser_ui/3_create/merge_request/suggestions/custom_commit_suggestion_spec.rb[1:1:1]": 55.490958561, + "./qa/specs/features/browser_ui/3_create/merge_request/view_merge_request_diff_patch_spec.rb[1:1:1]": 17.433211064, + "./qa/specs/features/browser_ui/3_create/merge_request/view_merge_request_diff_patch_spec.rb[1:1:2]": 42.158202863, + "./qa/specs/features/browser_ui/3_create/repository/add_file_template_spec.rb[1:1:1]": 31.896742286, + "./qa/specs/features/browser_ui/3_create/repository/add_new_branch_rule_spec.rb[1:1:1]": 22.013382561, + "./qa/specs/features/browser_ui/3_create/repository/branch_with_unusual_name_spec.rb[1:1:1:1]": 24.255446708, + "./qa/specs/features/browser_ui/3_create/repository/clone_spec.rb[1:1:1]": 15.532787108, "./qa/specs/features/browser_ui/3_create/repository/clone_spec.rb[1:1:2]": 18.095374191, - "./qa/specs/features/browser_ui/3_create/repository/license_detection_spec.rb[1:1:1:1:1]": 18.930325342, - "./qa/specs/features/browser_ui/3_create/repository/license_detection_spec.rb[1:1:2:1:1]": 22.586499318, - "./qa/specs/features/browser_ui/3_create/repository/protected_tags_spec.rb[1:1:1:1:1]": 22.19956748, - "./qa/specs/features/browser_ui/3_create/repository/protected_tags_spec.rb[1:1:1:2:1]": 18.960596681, - "./qa/specs/features/browser_ui/3_create/repository/protected_tags_spec.rb[1:1:2:1:1]": 34.082444058, - "./qa/specs/features/browser_ui/3_create/repository/protected_tags_spec.rb[1:1:2:2:1]": 29.421926029, - "./qa/specs/features/browser_ui/3_create/repository/protocol_v2_push_http_spec.rb[1:1:1]": 20.983555698, - "./qa/specs/features/browser_ui/3_create/repository/protocol_v2_push_ssh_spec.rb[1:1:1]": 22.993484033, - "./qa/specs/features/browser_ui/3_create/repository/push_http_private_token_spec.rb[1:1:1]": 23.893908452, - "./qa/specs/features/browser_ui/3_create/repository/push_mirroring_lfs_over_http_spec.rb[1:1:1]": 81.681736675, - "./qa/specs/features/browser_ui/3_create/repository/push_mirroring_over_http_spec.rb[1:1:1]": 61.214462347, - "./qa/specs/features/browser_ui/3_create/repository/push_over_http_file_size_spec.rb[1:1:1]": 11.441413817, - "./qa/specs/features/browser_ui/3_create/repository/push_over_http_file_size_spec.rb[1:1:2]": 49.286374574, - "./qa/specs/features/browser_ui/3_create/repository/push_over_http_spec.rb[1:1:1]": 27.008086845, - "./qa/specs/features/browser_ui/3_create/repository/push_over_http_spec.rb[1:1:2]": 11.569749825, - "./qa/specs/features/browser_ui/3_create/repository/push_over_ssh_file_size_spec.rb[1:1:1]": 14.810899691, - "./qa/specs/features/browser_ui/3_create/repository/push_over_ssh_file_size_spec.rb[1:1:2]": 48.359587761, - "./qa/specs/features/browser_ui/3_create/repository/push_over_ssh_spec.rb[1:1:1]": 32.987368195, - "./qa/specs/features/browser_ui/3_create/repository/push_over_ssh_spec.rb[1:1:2]": 31.64283544, - "./qa/specs/features/browser_ui/3_create/repository/push_protected_branch_spec.rb[1:1:1:1]": 16.10712286, - "./qa/specs/features/browser_ui/3_create/repository/push_to_canary_gitaly_spec.rb[1:1:1]": 31.979930263, - "./qa/specs/features/browser_ui/3_create/repository/ssh_key_support_create_spec.rb[1:1:1]": 28.519392892, - "./qa/specs/features/browser_ui/3_create/repository/ssh_key_support_delete_spec.rb[1:1:1]": 26.933149902, - "./qa/specs/features/browser_ui/3_create/repository/user_views_commit_diff_patch_spec.rb[1:1:1]": 18.822981458, - "./qa/specs/features/browser_ui/3_create/repository/user_views_commit_diff_patch_spec.rb[1:1:2]": 31.336603184, - "./qa/specs/features/browser_ui/3_create/snippet/add_comment_to_snippet_spec.rb[1:1:1]": 22.754370168, - "./qa/specs/features/browser_ui/3_create/snippet/add_file_to_snippet_spec.rb[1:1:1:1]": 15.523604506, - "./qa/specs/features/browser_ui/3_create/snippet/add_file_to_snippet_spec.rb[1:1:2:1]": 13.77471168, - "./qa/specs/features/browser_ui/3_create/snippet/clone_push_pull_personal_snippet_spec.rb[1:1:1]": 30.73314148, - "./qa/specs/features/browser_ui/3_create/snippet/clone_push_pull_personal_snippet_spec.rb[1:1:2]": 33.53868324, - "./qa/specs/features/browser_ui/3_create/snippet/clone_push_pull_project_snippet_spec.rb[1:1:1]": 25.234651066, - "./qa/specs/features/browser_ui/3_create/snippet/clone_push_pull_project_snippet_spec.rb[1:1:2]": 36.837263514, - "./qa/specs/features/browser_ui/3_create/snippet/copy_snippet_file_contents_spec.rb[1:1:1]": 25.67589362, - "./qa/specs/features/browser_ui/3_create/snippet/create_personal_snippet_with_multiple_files_spec.rb[1:1:1]": 15.017239204, - "./qa/specs/features/browser_ui/3_create/snippet/create_project_snippet_with_multiple_files_spec.rb[1:1:1]": 31.959883501, - "./qa/specs/features/browser_ui/3_create/snippet/delete_file_from_snippet_spec.rb[1:1:1:1]": 29.782608067, - "./qa/specs/features/browser_ui/3_create/snippet/delete_file_from_snippet_spec.rb[1:1:2:1]": 40.291787425, - "./qa/specs/features/browser_ui/3_create/snippet/share_snippet_spec.rb[1:1:1:1]": 36.544978511, - "./qa/specs/features/browser_ui/3_create/snippet/share_snippet_spec.rb[1:1:2:1]": 17.680096653, - "./qa/specs/features/browser_ui/3_create/source_editor/source_editor_toolbar_spec.rb[1:1:1]": 14.889595088, - "./qa/specs/features/browser_ui/3_create/web_ide/add_first_file_in_web_ide_spec.rb[1:1:1:1]": 28.560373166, - "./qa/specs/features/browser_ui/3_create/web_ide/add_first_file_in_web_ide_spec.rb[1:1:2:1]": 34.238539093, - "./qa/specs/features/browser_ui/3_create/web_ide/add_new_directory_in_web_ide_spec.rb[1:1:1:1]": 39.873616008, - "./qa/specs/features/browser_ui/3_create/web_ide/add_new_directory_in_web_ide_spec.rb[1:1:2:1]": 53.084344827, - "./qa/specs/features/browser_ui/3_create/web_ide/closing_web_ide_with_unsaved_changes_spec.rb[1:1:1]": 58.134480258, - "./qa/specs/features/browser_ui/3_create/web_ide/settings_sync_web_ide_spec.rb[1:1:1]": 59.263491973, - "./qa/specs/features/browser_ui/3_create/web_ide/settings_sync_web_ide_spec.rb[1:1:2]": 87.423838949, - "./qa/specs/features/browser_ui/3_create/web_ide/settings_sync_web_ide_spec.rb[1:1:3]": 78.074399438, - "./qa/specs/features/browser_ui/3_create/web_ide/upload_new_file_in_web_ide_spec.rb[1:1:1:1]": 29.745840689, - "./qa/specs/features/browser_ui/3_create/web_ide/upload_new_file_in_web_ide_spec.rb[1:1:2:1:1:1]": 36.468545667, - "./qa/specs/features/browser_ui/3_create/web_ide/upload_new_file_in_web_ide_spec.rb[1:1:2:2:1:1]": 35.250264448, - "./qa/specs/features/browser_ui/4_verify/ci_components_catalog/ci_catalog_sorting_spec.rb[1:1:1:2:1:1]": 39.330961857, - "./qa/specs/features/browser_ui/4_verify/ci_components_catalog/ci_catalog_sorting_spec.rb[1:1:1:2:2:1]": 45.819363065, - "./qa/specs/features/browser_ui/4_verify/ci_components_catalog/release_with_glab_spec.rb[1:1:1]": 91.975965077, - "./qa/specs/features/browser_ui/4_verify/ci_components_catalog/release_with_glab_spec.rb[1:1:2]": 56.516837582, - "./qa/specs/features/browser_ui/4_verify/ci_components_catalog/release_with_release_cli_spec.rb[1:1:1]": 51.108029485, - "./qa/specs/features/browser_ui/4_verify/ci_components_catalog/release_with_release_cli_spec.rb[1:1:2]": 69.65637044, - "./qa/specs/features/browser_ui/4_verify/ci_components_catalog/run_component_in_project_pipeline_spec.rb[1:1:1]": 48.187835077, - "./qa/specs/features/browser_ui/4_verify/ci_job_artifacts/expose_job_artifacts_in_mr_spec.rb[1:1:1:1]": 54.072714141, - "./qa/specs/features/browser_ui/4_verify/ci_job_artifacts/job_artifacts_access_keyword_spec.rb[1:1:1:1:1]": 45.717540615, - "./qa/specs/features/browser_ui/4_verify/ci_job_artifacts/job_artifacts_access_keyword_spec.rb[1:1:1:1:2]": 45.670591342, - "./qa/specs/features/browser_ui/4_verify/ci_job_artifacts/job_artifacts_access_keyword_spec.rb[1:1:2:1:1]": 32.365520127, - "./qa/specs/features/browser_ui/4_verify/ci_job_artifacts/job_artifacts_access_keyword_spec.rb[1:1:2:1:2]": 56.551521195, - "./qa/specs/features/browser_ui/4_verify/ci_job_artifacts/job_artifacts_access_keyword_spec.rb[1:1:3:1:1]": 43.798453897, - "./qa/specs/features/browser_ui/4_verify/ci_job_artifacts/job_artifacts_access_keyword_spec.rb[1:1:3:1:2]": 47.645485778, - "./qa/specs/features/browser_ui/4_verify/ci_job_artifacts/unlocking_job_artifacts_across_pipelines_spec.rb[1:1:1:1]": 104.603927021, - "./qa/specs/features/browser_ui/4_verify/ci_job_artifacts/unlocking_job_artifacts_across_pipelines_spec.rb[1:1:2:1]": 68.15761766, - "./qa/specs/features/browser_ui/4_verify/ci_job_artifacts/unlocking_job_artifacts_across_pipelines_spec.rb[1:1:3:1]": 97.953803956, - "./qa/specs/features/browser_ui/4_verify/ci_project_artifacts/user_can_bulk_delete_artifacts_spec.rb[1:1:1:1]": 61.125103701, - "./qa/specs/features/browser_ui/4_verify/ci_variable/pipeline_with_protected_variable_spec.rb[1:1:1]": 90.76940204, - "./qa/specs/features/browser_ui/4_verify/ci_variable/pipeline_with_protected_variable_spec.rb[1:1:2]": 121.555854965, - "./qa/specs/features/browser_ui/4_verify/ci_variable/raw_variables_defined_in_yaml_spec.rb[1:1:1]": 44.14739695, - "./qa/specs/features/browser_ui/4_verify/ci_variable/ui_variable_inheritable_when_forward_pipeline_variables_true_spec.rb[1:1:1]": 72.589089386, - "./qa/specs/features/browser_ui/4_verify/pipeline/include_local_config_file_paths_with_wildcard_spec.rb[1:1:1]": 30.376025208, - "./qa/specs/features/browser_ui/4_verify/pipeline/include_multiple_files_from_a_project_spec.rb[1:1:1]": 68.093532799, - "./qa/specs/features/browser_ui/4_verify/pipeline/include_multiple_files_from_multiple_projects_spec.rb[1:1:1]": 43.62499226, - "./qa/specs/features/browser_ui/4_verify/pipeline/parent_child_pipelines_independent_relationship_spec.rb[1:1:1]": 32.194807252, - "./qa/specs/features/browser_ui/4_verify/pipeline/parent_child_pipelines_independent_relationship_spec.rb[1:1:2]": 27.898961775, - "./qa/specs/features/browser_ui/4_verify/pipeline/pass_dotenv_variables_to_downstream_via_bridge_spec.rb[1:1:1]": 54.043790938, - "./qa/specs/features/browser_ui/4_verify/pipeline/run_pipeline_with_manual_jobs_spec.rb[1:1:1]": 76.176077096, - "./qa/specs/features/browser_ui/4_verify/pipeline/trigger_child_pipeline_with_manual_spec.rb[1:1:1]": 52.206088476, - "./qa/specs/features/browser_ui/4_verify/pipeline/trigger_matrix_spec.rb[1:1:1]": 72.534261312, - "./qa/specs/features/browser_ui/4_verify/pipeline/update_ci_file_with_pipeline_editor_spec.rb[1:1:1]": 33.392652195, - "./qa/specs/features/browser_ui/4_verify/runner/deprecated_registration_token_spec.rb[1:1:1]": 22.851657633, - "./qa/specs/features/browser_ui/4_verify/runner/deprecated_unregister_runner_spec.rb[1:1:1]": 36.250127991, - "./qa/specs/features/browser_ui/4_verify/runner/fleet_visibility/group_runner_counts_spec.rb[1:1:1]": 26.619422719, - "./qa/specs/features/browser_ui/4_verify/runner/fleet_visibility/group_runner_status_counts_spec.rb[1:1:1]": 22.59406119, - "./qa/specs/features/browser_ui/4_verify/runner/register_group_runner_spec.rb[1:1:1]": 21.472004247, - "./qa/specs/features/browser_ui/4_verify/runner/register_project_runner_spec.rb[1:1:1]": 43.832828383, - "./qa/specs/features/browser_ui/4_verify/runner/unregister_runner_spec.rb[1:1:1]": 24.179718406, - "./qa/specs/features/browser_ui/4_verify/testing/endpoint_coverage_spec.rb[1:1:1]": 47.871990355, - "./qa/specs/features/browser_ui/5_package/container_registry/self_managed/container_registry_spec.rb[1:1:1:1:1]": 90.955551381, - "./qa/specs/features/browser_ui/5_package/container_registry/self_managed/container_registry_spec.rb[1:1:1:2:1]": 100.006414947, - "./qa/specs/features/browser_ui/5_package/container_registry/self_managed/container_registry_spec.rb[1:1:1:3:1]": 78.320249861, - "./qa/specs/features/browser_ui/5_package/dependency_proxy/dependency_proxy_spec.rb[1:1:1:1]": 52.680739741, - "./qa/specs/features/browser_ui/5_package/dependency_proxy/dependency_proxy_spec.rb[1:1:2:1]": 69.772960011, - "./qa/specs/features/browser_ui/5_package/dependency_proxy/dependency_proxy_spec.rb[1:1:3:1]": 52.390973966, - "./qa/specs/features/browser_ui/5_package/package_registry/composer_registry_spec.rb[1:1:1]": 49.721526131, - "./qa/specs/features/browser_ui/5_package/package_registry/conan_repository_spec.rb[1:1:1]": 75.395842204, - "./qa/specs/features/browser_ui/5_package/package_registry/generic_repository_spec.rb[1:1:1]": 67.784632993, - "./qa/specs/features/browser_ui/5_package/package_registry/helm_registry_spec.rb[1:1:1:1]": 91.102406484, - "./qa/specs/features/browser_ui/5_package/package_registry/helm_registry_spec.rb[1:1:2:1]": 78.831457099, - "./qa/specs/features/browser_ui/5_package/package_registry/helm_registry_spec.rb[1:1:3:1]": 90.352321829, - "./qa/specs/features/browser_ui/5_package/package_registry/maven/maven_group_level_spec.rb[1:1:1:1:1]": 111.523713056, - "./qa/specs/features/browser_ui/5_package/package_registry/maven/maven_group_level_spec.rb[1:1:1:2:1]": 133.474290302, - "./qa/specs/features/browser_ui/5_package/package_registry/maven/maven_group_level_spec.rb[1:1:1:3:1]": 92.43836092, - "./qa/specs/features/browser_ui/5_package/package_registry/maven/maven_group_level_spec.rb[1:1:2:1:1]": 89.68809315, - "./qa/specs/features/browser_ui/5_package/package_registry/maven/maven_group_level_spec.rb[1:1:2:2:1]": 98.068634984, - "./qa/specs/features/browser_ui/5_package/package_registry/maven/maven_project_level_spec.rb[1:1:1:1]": 89.539313814, + "./qa/specs/features/browser_ui/3_create/repository/license_detection_spec.rb[1:1:1:1:1]": 21.122529291, + "./qa/specs/features/browser_ui/3_create/repository/license_detection_spec.rb[1:1:2:1:1]": 17.545276685, + "./qa/specs/features/browser_ui/3_create/repository/protected_tags_spec.rb[1:1:1:1:1]": 28.340101306, + "./qa/specs/features/browser_ui/3_create/repository/protected_tags_spec.rb[1:1:1:2:1]": 26.867127071, + "./qa/specs/features/browser_ui/3_create/repository/protected_tags_spec.rb[1:1:2:1:1]": 43.389036366, + "./qa/specs/features/browser_ui/3_create/repository/protected_tags_spec.rb[1:1:2:2:1]": 36.570744746, + "./qa/specs/features/browser_ui/3_create/repository/protocol_v2_push_http_spec.rb[1:1:1]": 14.510380366, + "./qa/specs/features/browser_ui/3_create/repository/protocol_v2_push_ssh_spec.rb[1:1:1]": 21.062992441, + "./qa/specs/features/browser_ui/3_create/repository/push_http_private_token_spec.rb[1:1:1]": 30.560765635, + "./qa/specs/features/browser_ui/3_create/repository/push_mirroring_lfs_over_http_spec.rb[1:1:1]": 69.133049878, + "./qa/specs/features/browser_ui/3_create/repository/push_mirroring_over_http_spec.rb[1:1:1]": 74.386765891, + "./qa/specs/features/browser_ui/3_create/repository/push_over_http_file_size_spec.rb[1:1:1]": 8.755592146, + "./qa/specs/features/browser_ui/3_create/repository/push_over_http_file_size_spec.rb[1:1:2]": 42.316069467, + "./qa/specs/features/browser_ui/3_create/repository/push_over_http_spec.rb[1:1:1]": 32.333019019, + "./qa/specs/features/browser_ui/3_create/repository/push_over_http_spec.rb[1:1:2]": 18.348481109, + "./qa/specs/features/browser_ui/3_create/repository/push_over_ssh_file_size_spec.rb[1:1:1]": 14.510595156, + "./qa/specs/features/browser_ui/3_create/repository/push_over_ssh_file_size_spec.rb[1:1:2]": 42.730659866, + "./qa/specs/features/browser_ui/3_create/repository/push_over_ssh_spec.rb[1:1:1]": 43.446119978, + "./qa/specs/features/browser_ui/3_create/repository/push_over_ssh_spec.rb[1:1:2]": 25.011681558, + "./qa/specs/features/browser_ui/3_create/repository/push_protected_branch_spec.rb[1:1:1:1]": 21.231989439, + "./qa/specs/features/browser_ui/3_create/repository/push_to_canary_gitaly_spec.rb[1:1:1]": 24.161292576, + "./qa/specs/features/browser_ui/3_create/repository/ssh_key_support_create_spec.rb[1:1:1]": 30.621314026, + "./qa/specs/features/browser_ui/3_create/repository/ssh_key_support_delete_spec.rb[1:1:1]": 23.329709009, + "./qa/specs/features/browser_ui/3_create/repository/user_views_commit_diff_patch_spec.rb[1:1:1]": 29.304123389, + "./qa/specs/features/browser_ui/3_create/repository/user_views_commit_diff_patch_spec.rb[1:1:2]": 21.461800455, + "./qa/specs/features/browser_ui/3_create/snippet/add_comment_to_snippet_spec.rb[1:1:1]": 30.15168315, + "./qa/specs/features/browser_ui/3_create/snippet/add_file_to_snippet_spec.rb[1:1:1:1]": 16.054199628, + "./qa/specs/features/browser_ui/3_create/snippet/add_file_to_snippet_spec.rb[1:1:2:1]": 25.941697282, + "./qa/specs/features/browser_ui/3_create/snippet/clone_push_pull_personal_snippet_spec.rb[1:1:1]": 19.915216925, + "./qa/specs/features/browser_ui/3_create/snippet/clone_push_pull_personal_snippet_spec.rb[1:1:2]": 25.75701109, + "./qa/specs/features/browser_ui/3_create/snippet/clone_push_pull_project_snippet_spec.rb[1:1:1]": 34.156739227, + "./qa/specs/features/browser_ui/3_create/snippet/clone_push_pull_project_snippet_spec.rb[1:1:2]": 29.336986799, + "./qa/specs/features/browser_ui/3_create/snippet/copy_snippet_file_contents_spec.rb[1:1:1]": 15.23259039, + "./qa/specs/features/browser_ui/3_create/snippet/create_personal_snippet_with_multiple_files_spec.rb[1:1:1]": 23.75466285, + "./qa/specs/features/browser_ui/3_create/snippet/create_project_snippet_with_multiple_files_spec.rb[1:1:1]": 26.126468368, + "./qa/specs/features/browser_ui/3_create/snippet/delete_file_from_snippet_spec.rb[1:1:1:1]": 18.838706545, + "./qa/specs/features/browser_ui/3_create/snippet/delete_file_from_snippet_spec.rb[1:1:2:1]": 15.178190303, + "./qa/specs/features/browser_ui/3_create/snippet/share_snippet_spec.rb[1:1:1:1]": 11.018093953, + "./qa/specs/features/browser_ui/3_create/snippet/share_snippet_spec.rb[1:1:2:1]": 8.336160352, + "./qa/specs/features/browser_ui/3_create/source_editor/source_editor_toolbar_spec.rb[1:1:1]": 22.073854035, + "./qa/specs/features/browser_ui/3_create/web_ide/add_first_file_in_web_ide_spec.rb[1:1:1:1]": 40.77336723, + "./qa/specs/features/browser_ui/3_create/web_ide/add_first_file_in_web_ide_spec.rb[1:1:2:1]": 36.631020359, + "./qa/specs/features/browser_ui/3_create/web_ide/add_new_directory_in_web_ide_spec.rb[1:1:1:1]": 40.564262896, + "./qa/specs/features/browser_ui/3_create/web_ide/add_new_directory_in_web_ide_spec.rb[1:1:2:1]": 53.899381651, + "./qa/specs/features/browser_ui/3_create/web_ide/closing_web_ide_with_unsaved_changes_spec.rb[1:1:1]": 30.580542109, + "./qa/specs/features/browser_ui/3_create/web_ide/settings_sync_web_ide_spec.rb[1:1:1]": 49.919160302, + "./qa/specs/features/browser_ui/3_create/web_ide/settings_sync_web_ide_spec.rb[1:1:2]": 93.506284615, + "./qa/specs/features/browser_ui/3_create/web_ide/settings_sync_web_ide_spec.rb[1:1:3]": 71.522480942, + "./qa/specs/features/browser_ui/3_create/web_ide/upload_new_file_in_web_ide_spec.rb[1:1:1:1]": 37.389099934, + "./qa/specs/features/browser_ui/3_create/web_ide/upload_new_file_in_web_ide_spec.rb[1:1:2:1:1:1]": 42.873530905, + "./qa/specs/features/browser_ui/3_create/web_ide/upload_new_file_in_web_ide_spec.rb[1:1:2:2:1:1]": 99.112071097, + "./qa/specs/features/browser_ui/4_verify/ci_components_catalog/ci_catalog_sorting_spec.rb[1:1:1:2:1:1]": 41.462672024, + "./qa/specs/features/browser_ui/4_verify/ci_components_catalog/ci_catalog_sorting_spec.rb[1:1:1:2:2:1]": 45.980388434, + "./qa/specs/features/browser_ui/4_verify/ci_components_catalog/release_with_glab_spec.rb[1:1:1]": 60.77329751, + "./qa/specs/features/browser_ui/4_verify/ci_components_catalog/release_with_glab_spec.rb[1:1:2]": 72.638833153, + "./qa/specs/features/browser_ui/4_verify/ci_components_catalog/release_with_release_cli_spec.rb[1:1:1]": 99.144834026, + "./qa/specs/features/browser_ui/4_verify/ci_components_catalog/release_with_release_cli_spec.rb[1:1:2]": 61.302757179, + "./qa/specs/features/browser_ui/4_verify/ci_components_catalog/run_component_in_project_pipeline_spec.rb[1:1:1]": 38.555187054, + "./qa/specs/features/browser_ui/4_verify/ci_job_artifacts/expose_job_artifacts_in_mr_spec.rb[1:1:1:1]": 46.880668887, + "./qa/specs/features/browser_ui/4_verify/ci_job_artifacts/job_artifacts_access_keyword_spec.rb[1:1:1:1:1]": 50.307015178, + "./qa/specs/features/browser_ui/4_verify/ci_job_artifacts/job_artifacts_access_keyword_spec.rb[1:1:1:1:2]": 49.808595702, + "./qa/specs/features/browser_ui/4_verify/ci_job_artifacts/job_artifacts_access_keyword_spec.rb[1:1:2:1:1]": 47.515747725, + "./qa/specs/features/browser_ui/4_verify/ci_job_artifacts/job_artifacts_access_keyword_spec.rb[1:1:2:1:2]": 21.78147481, + "./qa/specs/features/browser_ui/4_verify/ci_job_artifacts/job_artifacts_access_keyword_spec.rb[1:1:3:1:1]": 30.833380609, + "./qa/specs/features/browser_ui/4_verify/ci_job_artifacts/job_artifacts_access_keyword_spec.rb[1:1:3:1:2]": 41.816585028, + "./qa/specs/features/browser_ui/4_verify/ci_job_artifacts/unlocking_job_artifacts_across_pipelines_spec.rb[1:1:1:1]": 72.948520582, + "./qa/specs/features/browser_ui/4_verify/ci_job_artifacts/unlocking_job_artifacts_across_pipelines_spec.rb[1:1:2:1]": 91.837301182, + "./qa/specs/features/browser_ui/4_verify/ci_job_artifacts/unlocking_job_artifacts_across_pipelines_spec.rb[1:1:3:1]": 106.037321035, + "./qa/specs/features/browser_ui/4_verify/ci_project_artifacts/user_can_bulk_delete_artifacts_spec.rb[1:1:1:1]": 60.846353213, + "./qa/specs/features/browser_ui/4_verify/ci_variable/pipeline_with_protected_variable_spec.rb[1:1:1]": 60.839096322, + "./qa/specs/features/browser_ui/4_verify/ci_variable/pipeline_with_protected_variable_spec.rb[1:1:2]": 101.839163656, + "./qa/specs/features/browser_ui/4_verify/ci_variable/raw_variables_defined_in_yaml_spec.rb[1:1:1]": 35.52694225, + "./qa/specs/features/browser_ui/4_verify/ci_variable/ui_variable_inheritable_when_forward_pipeline_variables_true_spec.rb[1:1:1]": 75.564626407, + "./qa/specs/features/browser_ui/4_verify/pipeline/include_local_config_file_paths_with_wildcard_spec.rb[1:1:1]": 28.19214171, + "./qa/specs/features/browser_ui/4_verify/pipeline/include_multiple_files_from_a_project_spec.rb[1:1:1]": 40.724605633, + "./qa/specs/features/browser_ui/4_verify/pipeline/include_multiple_files_from_multiple_projects_spec.rb[1:1:1]": 66.15629568, + "./qa/specs/features/browser_ui/4_verify/pipeline/parent_child_pipelines_independent_relationship_spec.rb[1:1:1]": 27.148854265, + "./qa/specs/features/browser_ui/4_verify/pipeline/parent_child_pipelines_independent_relationship_spec.rb[1:1:2]": 34.23308389, + "./qa/specs/features/browser_ui/4_verify/pipeline/pass_dotenv_variables_to_downstream_via_bridge_spec.rb[1:1:1]": 54.030389654, + "./qa/specs/features/browser_ui/4_verify/pipeline/run_pipeline_with_manual_jobs_spec.rb[1:1:1]": 67.174006431, + "./qa/specs/features/browser_ui/4_verify/pipeline/trigger_child_pipeline_with_manual_spec.rb[1:1:1]": 49.054119867, + "./qa/specs/features/browser_ui/4_verify/pipeline/trigger_matrix_spec.rb[1:1:1]": 39.902980952, + "./qa/specs/features/browser_ui/4_verify/pipeline/update_ci_file_with_pipeline_editor_spec.rb[1:1:1]": 56.093351699, + "./qa/specs/features/browser_ui/4_verify/runner/deprecated_registration_token_spec.rb[1:1:1]": 21.540832606, + "./qa/specs/features/browser_ui/4_verify/runner/deprecated_unregister_runner_spec.rb[1:1:1]": 28.48518882, + "./qa/specs/features/browser_ui/4_verify/runner/fleet_visibility/group_runner_counts_spec.rb[1:1:1]": 35.390574858, + "./qa/specs/features/browser_ui/4_verify/runner/fleet_visibility/group_runner_status_counts_spec.rb[1:1:1]": 20.496156941, + "./qa/specs/features/browser_ui/4_verify/runner/register_group_runner_spec.rb[1:1:1]": 25.631017185, + "./qa/specs/features/browser_ui/4_verify/runner/register_project_runner_spec.rb[1:1:1]": 39.982659926, + "./qa/specs/features/browser_ui/4_verify/runner/unregister_runner_spec.rb[1:1:1]": 24.72155451, + "./qa/specs/features/browser_ui/4_verify/testing/endpoint_coverage_spec.rb[1:1:1]": 61.2427085, + "./qa/specs/features/browser_ui/5_package/container_registry/self_managed/container_registry_spec.rb[1:1:1:1:1]": 84.982427554, + "./qa/specs/features/browser_ui/5_package/container_registry/self_managed/container_registry_spec.rb[1:1:1:2:1]": 82.13896003, + "./qa/specs/features/browser_ui/5_package/container_registry/self_managed/container_registry_spec.rb[1:1:1:3:1]": 74.202955329, + "./qa/specs/features/browser_ui/5_package/dependency_proxy/dependency_proxy_spec.rb[1:1:1:1]": 54.570091369, + "./qa/specs/features/browser_ui/5_package/dependency_proxy/dependency_proxy_spec.rb[1:1:2:1]": 54.590168692, + "./qa/specs/features/browser_ui/5_package/dependency_proxy/dependency_proxy_spec.rb[1:1:3:1]": 70.999368951, + "./qa/specs/features/browser_ui/5_package/package_registry/composer_registry_spec.rb[1:1:1]": 77.239396383, + "./qa/specs/features/browser_ui/5_package/package_registry/conan_repository_spec.rb[1:1:1]": 93.81690755, + "./qa/specs/features/browser_ui/5_package/package_registry/generic_repository_spec.rb[1:1:1]": 92.363120955, + "./qa/specs/features/browser_ui/5_package/package_registry/helm_registry_spec.rb[1:1:1:1]": 79.563275974, + "./qa/specs/features/browser_ui/5_package/package_registry/helm_registry_spec.rb[1:1:2:1]": 84.783918815, + "./qa/specs/features/browser_ui/5_package/package_registry/helm_registry_spec.rb[1:1:3:1]": 96.353398183, + "./qa/specs/features/browser_ui/5_package/package_registry/maven/maven_group_level_spec.rb[1:1:1:1:1]": 140.565987206, + "./qa/specs/features/browser_ui/5_package/package_registry/maven/maven_group_level_spec.rb[1:1:1:2:1]": 107.142666805, + "./qa/specs/features/browser_ui/5_package/package_registry/maven/maven_group_level_spec.rb[1:1:1:3:1]": 112.133286684, + "./qa/specs/features/browser_ui/5_package/package_registry/maven/maven_group_level_spec.rb[1:1:2:1:1]": 98.9383065, + "./qa/specs/features/browser_ui/5_package/package_registry/maven/maven_group_level_spec.rb[1:1:2:2:1]": 86.552788495, + "./qa/specs/features/browser_ui/5_package/package_registry/maven/maven_project_level_spec.rb[1:1:1:1]": 118.945361511, "./qa/specs/features/browser_ui/5_package/package_registry/maven/maven_project_level_spec.rb[1:1:2:1]": 106.395425031, - "./qa/specs/features/browser_ui/5_package/package_registry/maven/maven_project_level_spec.rb[1:1:3:1]": 111.77577324, - "./qa/specs/features/browser_ui/5_package/package_registry/maven_gradle_repository_spec.rb[1:1:1:1]": 76.921475344, - "./qa/specs/features/browser_ui/5_package/package_registry/maven_gradle_repository_spec.rb[1:1:2:1]": 90.381545074, - "./qa/specs/features/browser_ui/5_package/package_registry/maven_gradle_repository_spec.rb[1:1:3:1]": 65.626697934, - "./qa/specs/features/browser_ui/5_package/package_registry/npm/npm_group_level_spec.rb[1:1:1:1]": 95.616876224, - "./qa/specs/features/browser_ui/5_package/package_registry/npm/npm_group_level_spec.rb[1:1:2:1]": 96.561839872, - "./qa/specs/features/browser_ui/5_package/package_registry/npm/npm_group_level_spec.rb[1:1:3:1]": 118.217078664, - "./qa/specs/features/browser_ui/5_package/package_registry/npm/npm_instance_level_spec.rb[1:1:1:1]": 125.95720179, - "./qa/specs/features/browser_ui/5_package/package_registry/npm/npm_instance_level_spec.rb[1:1:2:1]": 82.126935598, - "./qa/specs/features/browser_ui/5_package/package_registry/npm/npm_instance_level_spec.rb[1:1:3:1]": 108.190715465, - "./qa/specs/features/browser_ui/5_package/package_registry/pypi_repository_spec.rb[1:1:1:1]": 90.51188421, - "./qa/specs/features/browser_ui/6_deploy/deploy_key/add_deploy_key_spec.rb[1:1:1]": 30.893006255, - "./qa/specs/features/browser_ui/6_deploy/deploy_key/clone_using_deploy_key_spec.rb[1:1:1]": 56.887484383, - "./qa/specs/features/browser_ui/6_deploy/deploy_key/clone_using_deploy_key_spec.rb[1:1:2]": 96.44393353, - "./qa/specs/features/browser_ui/6_deploy/deploy_key/clone_using_deploy_key_spec.rb[1:1:3]": 55.18007517, - "./qa/specs/features/browser_ui/6_deploy/deploy_token/add_deploy_token_spec.rb[1:1:1]": 8.157398722, - "./qa/specs/features/browser_ui/8_monitor/alert_management/alert_management_spec.rb[1:1:1:1:1]": 27.076477129, - "./qa/specs/features/browser_ui/8_monitor/alert_management/alert_management_spec.rb[1:1:1:2:1]": 29.805178938, + "./qa/specs/features/browser_ui/5_package/package_registry/maven/maven_project_level_spec.rb[1:1:3:1]": 96.450130562, + "./qa/specs/features/browser_ui/5_package/package_registry/maven_gradle_repository_spec.rb[1:1:1:1]": 78.946559015, + "./qa/specs/features/browser_ui/5_package/package_registry/maven_gradle_repository_spec.rb[1:1:2:1]": 80.717728175, + "./qa/specs/features/browser_ui/5_package/package_registry/maven_gradle_repository_spec.rb[1:1:3:1]": 103.465023072, + "./qa/specs/features/browser_ui/5_package/package_registry/npm/npm_group_level_spec.rb[1:1:1:1]": 130.340133778, + "./qa/specs/features/browser_ui/5_package/package_registry/npm/npm_group_level_spec.rb[1:1:2:1]": 112.108429319, + "./qa/specs/features/browser_ui/5_package/package_registry/npm/npm_group_level_spec.rb[1:1:3:1]": 75.26088045, + "./qa/specs/features/browser_ui/5_package/package_registry/npm/npm_instance_level_spec.rb[1:1:1:1]": 77.415471632, + "./qa/specs/features/browser_ui/5_package/package_registry/npm/npm_instance_level_spec.rb[1:1:2:1]": 102.162500577, + "./qa/specs/features/browser_ui/5_package/package_registry/npm/npm_instance_level_spec.rb[1:1:3:1]": 102.173215665, + "./qa/specs/features/browser_ui/5_package/package_registry/pypi_repository_spec.rb[1:1:1:1]": 86.369992361, + "./qa/specs/features/browser_ui/6_deploy/deploy_key/add_deploy_key_spec.rb[1:1:1]": 39.971712895, + "./qa/specs/features/browser_ui/6_deploy/deploy_key/clone_using_deploy_key_spec.rb[1:1:1]": 63.319088805, + "./qa/specs/features/browser_ui/6_deploy/deploy_key/clone_using_deploy_key_spec.rb[1:1:2]": 57.755587289, + "./qa/specs/features/browser_ui/6_deploy/deploy_key/clone_using_deploy_key_spec.rb[1:1:3]": 110.313789397, + "./qa/specs/features/browser_ui/6_deploy/deploy_token/add_deploy_token_spec.rb[1:1:1]": 8.726697009, + "./qa/specs/features/browser_ui/8_monitor/alert_management/alert_management_spec.rb[1:1:1:1:1]": 23.661516453, + "./qa/specs/features/browser_ui/8_monitor/alert_management/alert_management_spec.rb[1:1:1:2:1]": 28.288289394, "./qa/specs/features/browser_ui/8_monitor/alert_management/alert_management_spec.rb[1:1:1:3:1]": 35.838681363, - "./qa/specs/features/browser_ui/8_monitor/alert_management/alert_management_spec.rb[1:1:1:4:1]": 30.808808312, - "./qa/specs/features/browser_ui/8_monitor/alert_management/alert_management_spec.rb[1:1:2:1:1]": 28.895791271, - "./qa/specs/features/browser_ui/8_monitor/alert_management/alert_management_spec.rb[1:1:2:2:1]": 35.934786514, - "./qa/specs/features/browser_ui/8_monitor/alert_management/alert_management_spec.rb[1:1:2:3:1]": 37.029205725, - "./qa/specs/features/browser_ui/8_monitor/alert_management/email_notification_for_alert_spec.rb[1:1:1:1:1:1]": 30.162876434, - "./qa/specs/features/browser_ui/8_monitor/alert_management/email_notification_for_alert_spec.rb[1:1:1:2:1:1]": 21.834871059, - "./qa/specs/features/browser_ui/8_monitor/alert_management/email_notification_for_alert_spec.rb[1:1:2:1:1:1]": 37.274644332, - "./qa/specs/features/browser_ui/8_monitor/alert_management/email_notification_for_alert_spec.rb[1:1:2:2:1:1]": 21.804773575, - "./qa/specs/features/browser_ui/9_tenant_scale/group/create_group_with_mattermost_team_spec.rb[1:1:1]": 14.244899635, - "./qa/specs/features/browser_ui/9_tenant_scale/group/group_member_access_request_spec.rb[1:1:1]": 27.082023928, - "./qa/specs/features/browser_ui/9_tenant_scale/group/group_member_access_request_spec.rb[1:1:2:1:1]": 24.677786958, - "./qa/specs/features/browser_ui/9_tenant_scale/group/group_member_access_request_spec.rb[1:1:2:2:1]": 25.107117323, - "./qa/specs/features/browser_ui/9_tenant_scale/group/transfer_project_spec.rb[1:1:1]": 30.904438436, - "./qa/specs/features/browser_ui/9_tenant_scale/project/add_project_member_spec.rb[1:1:1]": 39.495862767, - "./qa/specs/features/browser_ui/9_tenant_scale/project/create_project_badge_spec.rb[1:1:1]": 27.413835705, - "./qa/specs/features/browser_ui/9_tenant_scale/project/create_project_spec.rb[1:1:1:1:1]": 31.602944846, - "./qa/specs/features/browser_ui/9_tenant_scale/project/create_project_spec.rb[1:1:2:1:1]": 35.320998078, - "./qa/specs/features/browser_ui/9_tenant_scale/project/dashboard_images_spec.rb[1:1:1:1:1]": 9.594507771, - "./qa/specs/features/browser_ui/9_tenant_scale/project/dashboard_images_spec.rb[1:1:2:1:1]": 11.483880894, - "./qa/specs/features/browser_ui/9_tenant_scale/project/invite_group_to_project_spec.rb[1:1:1:1:1]": 31.136233871, - "./qa/specs/features/browser_ui/9_tenant_scale/project/invite_group_to_project_spec.rb[1:1:2:1:1]": 40.09517895, - "./qa/specs/features/browser_ui/9_tenant_scale/project/project_owner_permissions_spec.rb[1:1:1:1:1]": 38.333764712, - "./qa/specs/features/browser_ui/9_tenant_scale/project/project_owner_permissions_spec.rb[1:1:1:2:1]": 35.984211296, - "./qa/specs/features/browser_ui/9_tenant_scale/project/project_owner_permissions_spec.rb[1:1:2:1:1]": 43.802138351, - "./qa/specs/features/browser_ui/9_tenant_scale/project/project_owner_permissions_spec.rb[1:1:2:2:1]": 58.669160106, - "./qa/specs/features/browser_ui/9_tenant_scale/project/view_project_activity_spec.rb[1:1:1:1]": 33.385142455, - "./qa/specs/features/browser_ui/9_tenant_scale/user/follow_user_activity_spec.rb[1:1:1]": 32.043511714, - "./qa/specs/features/browser_ui/9_tenant_scale/user/parent_group_access_termination_spec.rb[1:1:1:1]": 44.283543879, - "./qa/specs/features/browser_ui/9_tenant_scale/user/user_inherited_access_spec.rb[1:1:1:1]": 27.538219086, - "./qa/specs/features/browser_ui/9_tenant_scale/user/user_inherited_access_spec.rb[1:1:2:1]": 14.700469155, - "./qa/specs/features/ee/api/10_software_supply_chain_security/compliance_pipeline_spec.rb[1:1:1:1]": 42.390892266, - "./qa/specs/features/ee/api/10_software_supply_chain_security/instance_audit_event_streaming_spec.rb[1:1:1:1]": 9.087395279, - "./qa/specs/features/ee/api/10_software_supply_chain_security/instance_audit_event_streaming_spec.rb[1:1:4:1]": 14.681763611, - "./qa/specs/features/ee/api/10_software_supply_chain_security/user/minimal_access_user_spec.rb[1:1:1]": 43.927126666, - "./qa/specs/features/ee/api/10_software_supply_chain_security/user/minimal_access_user_spec.rb[1:1:2]": 18.051245753, - "./qa/specs/features/ee/api/10_software_supply_chain_security/user/minimal_access_user_spec.rb[1:1:3]": 18.405057492, - "./qa/specs/features/ee/api/17_foundations/elasticsearch/advanced_global_advanced_syntax_search_spec.rb[1:1:1:1]": 60.671031968, - "./qa/specs/features/ee/api/17_foundations/elasticsearch/advanced_global_advanced_syntax_search_spec.rb[1:1:1:2]": 56.817816273, - "./qa/specs/features/ee/api/17_foundations/elasticsearch/elasticsearch_api_spec.rb[1:1:1]": 12.813502246, - "./qa/specs/features/ee/api/17_foundations/elasticsearch/elasticsearch_api_spec.rb[1:1:2:2]": 12.799525584, - "./qa/specs/features/ee/api/17_foundations/elasticsearch/index_tests/blob_index_spec.rb[1:1:1]": 108.426553772, - "./qa/specs/features/ee/api/17_foundations/elasticsearch/index_tests/commit_index_spec.rb[1:1:1]": 20.79489988, - "./qa/specs/features/ee/api/17_foundations/elasticsearch/index_tests/issue_index_spec.rb[1:1:1]": 59.445564036, - "./qa/specs/features/ee/api/17_foundations/elasticsearch/index_tests/merge_request_index_spec.rb[1:1:1]": 63.033179036, - "./qa/specs/features/ee/api/17_foundations/elasticsearch/index_tests/note_index_spec.rb[1:1:1]": 45.471914002, - "./qa/specs/features/ee/api/17_foundations/elasticsearch/index_tests/user_index_spec.rb[1:1:1]": 66.870891997, - "./qa/specs/features/ee/api/1_manage/import/import_github_repo_spec.rb[1:1:1:1]": 95.121990797, - "./qa/specs/features/ee/api/1_manage/integrations/group_webhook_events_spec.rb[1:1:1]": 6.066587687, - "./qa/specs/features/ee/api/1_manage/migration/gitlab_migration_group_spec.rb[1:1:1:1]": 77.157374724, - "./qa/specs/features/ee/api/2_plan/epics_milestone_dates_spec.rb[1:1:1]": 12.541912606, - "./qa/specs/features/ee/api/2_plan/epics_milestone_dates_spec.rb[1:1:2]": 28.514563983, - "./qa/specs/features/ee/api/2_plan/epics_milestone_dates_spec.rb[1:1:3]": 29.527916915, - "./qa/specs/features/ee/api/2_plan/epics_milestone_dates_spec.rb[1:1:4]": 23.130887041, - "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:1:1:1:1]": 1.838089053, - "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:1:1:2:1:1]": 2.734734602, - "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:1:2:1:1:1:1:1]": 0.24886261, - "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:1:2:1:1:1:2:1:1]": 1.790366886, - "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:2:1:1:1]": 9.266789627, - "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:2:2:1:1:1:1:1]": 1.085996988, - "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:2:2:1:1:2:1]": 4.364299215, - "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:2:2:1:2:1]": 5.434353683, - "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:2:2:2:1]": 0.069891045, - "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:2:3:1:1]": 9.350628317, - "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:2:3:2:1:1:1:1]": 1.414441796, - "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:3:1:1]": 4.14660048, - "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:3:1:2]": 6.094765222, - "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:3:2:1:1:1:1]": 2.474961938, - "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:3:2:1:1:1:2]": 1.417762455, - "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:3:2:1:1:1:3:1]": 1.548198005, - "./qa/specs/features/ee/browser_ui/10_software_supply_chain_security/group/group_audit_event_streaming_spec.rb[1:1:1:1]": 19.153270179, - "./qa/specs/features/ee/browser_ui/10_software_supply_chain_security/group/group_audit_event_streaming_spec.rb[1:1:2:1:1]": 7.902151024, - "./qa/specs/features/ee/browser_ui/10_software_supply_chain_security/group/group_audit_event_streaming_spec.rb[1:1:2:2:1]": 11.044387516, - "./qa/specs/features/ee/browser_ui/10_software_supply_chain_security/group/group_audit_event_streaming_spec.rb[1:1:2:3:1]": 8.941037295, - "./qa/specs/features/ee/browser_ui/10_software_supply_chain_security/group/group_audit_logs_1_spec.rb[1:1:1:1:1]": 37.805598301, - "./qa/specs/features/ee/browser_ui/10_software_supply_chain_security/group/group_audit_logs_1_spec.rb[1:1:2:1:1]": 42.546001102, - "./qa/specs/features/ee/browser_ui/10_software_supply_chain_security/group/group_audit_logs_1_spec.rb[1:1:3:1:1]": 14.905456697, - "./qa/specs/features/ee/browser_ui/10_software_supply_chain_security/group/group_audit_logs_1_spec.rb[1:1:4:1:1]": 38.661902569, - "./qa/specs/features/ee/browser_ui/10_software_supply_chain_security/group/group_audit_logs_1_spec.rb[1:1:5:1:1]": 31.533743457, - "./qa/specs/features/ee/browser_ui/10_software_supply_chain_security/group/restrict_by_ip_address_spec.rb[1:1:1:1:1]": 16.54769068, - "./qa/specs/features/ee/browser_ui/10_software_supply_chain_security/group/restrict_by_ip_address_spec.rb[1:1:1:2:1]": 12.277659356, - "./qa/specs/features/ee/browser_ui/10_software_supply_chain_security/group/restrict_by_ip_address_spec.rb[1:1:1:3:1]": 48.586038872, - "./qa/specs/features/ee/browser_ui/10_software_supply_chain_security/group/restrict_by_ip_address_spec.rb[1:1:2:1:1]": 22.967798048, - "./qa/specs/features/ee/browser_ui/10_software_supply_chain_security/group/restrict_by_ip_address_spec.rb[1:1:2:2:1]": 12.245422393, - "./qa/specs/features/ee/browser_ui/10_software_supply_chain_security/group/restrict_by_ip_address_spec.rb[1:1:2:3:1]": 16.447244085, - "./qa/specs/features/ee/browser_ui/10_software_supply_chain_security/project/project_audit_logs_spec.rb[1:1:1:1:1]": 14.558753972, - "./qa/specs/features/ee/browser_ui/10_software_supply_chain_security/project/project_audit_logs_spec.rb[1:1:2:1:1]": 28.634982769, - "./qa/specs/features/ee/browser_ui/10_software_supply_chain_security/project/project_audit_logs_spec.rb[1:1:3:1:1]": 17.914270562, - "./qa/specs/features/ee/browser_ui/10_software_supply_chain_security/project/project_audit_logs_spec.rb[1:1:4:1:1]": 17.379467955, - "./qa/specs/features/ee/browser_ui/10_software_supply_chain_security/project/project_audit_logs_spec.rb[1:1:5:1:1]": 51.321999154, - "./qa/specs/features/ee/browser_ui/10_software_supply_chain_security/project/project_audit_logs_spec.rb[1:1:6:1:1]": 23.058794555, - "./qa/specs/features/ee/browser_ui/10_software_supply_chain_security/user/minimal_access_user_spec.rb[1:1:1]": 25.989457065, - "./qa/specs/features/ee/browser_ui/11_fulfillment/license/cloud_activation_spec.rb[1:1:1]": 18.737125486, - "./qa/specs/features/ee/browser_ui/11_fulfillment/license/license_spec.rb[1:1:1]": 10.800785706, - "./qa/specs/features/ee/browser_ui/11_fulfillment/utilization/user_registration_billing_spec.rb[1:1:1:1:1]": 18.554956627, - "./qa/specs/features/ee/browser_ui/13_secure/cvs_dependency_scanning_spec.rb[1:1:1:1]": 167.092594258, - "./qa/specs/features/ee/browser_ui/13_secure/on_demand_dast_spec.rb[1:1:1:1]": 174.186045766, - "./qa/specs/features/ee/browser_ui/13_secure/secret_push_protection_spec.rb[1:1:1]": 55.464000243, - "./qa/specs/features/ee/browser_ui/13_secure/secret_push_protection_spec.rb[1:1:2:1]": 83.625793577, - "./qa/specs/features/ee/browser_ui/16_ai_powered/duo_chat/duo_chat_spec.rb[1:1:1:2:1]": 12.837081114, - "./qa/specs/features/ee/browser_ui/17_foundations/elasticsearch_reindexing_spec.rb[1:1:1]": 189.626924891, - "./qa/specs/features/ee/browser_ui/17_foundations/elasticsearch_reindexing_spec.rb[1:1:2]": 111.965837858, - "./qa/specs/features/ee/browser_ui/18_security_risk_management/change_vulnerability_status_spec.rb[1:1:1]": 46.532664428, - "./qa/specs/features/ee/browser_ui/18_security_risk_management/change_vulnerability_status_spec.rb[1:1:2]": 70.114420525, - "./qa/specs/features/ee/browser_ui/18_security_risk_management/change_vulnerability_status_spec.rb[1:1:3]": 19.138960469, - "./qa/specs/features/ee/browser_ui/18_security_risk_management/create_merge_request_with_secure_spec.rb[1:1:1]": 101.197980741, - "./qa/specs/features/ee/browser_ui/18_security_risk_management/dismissed_vulnerabilities_in_security_widget_spec.rb[1:1:1]": 86.726138438, - "./qa/specs/features/ee/browser_ui/18_security_risk_management/export_vulnerability_report_spec.rb[1:1:1]": 14.915845606, - "./qa/specs/features/ee/browser_ui/18_security_risk_management/fix_vulnerability_workflow_spec.rb[1:1:1]": 139.802555867, - "./qa/specs/features/ee/browser_ui/18_security_risk_management/group_pipeline_execution_policy_spec.rb[1:1:1]": 87.144310606, - "./qa/specs/features/ee/browser_ui/18_security_risk_management/group_pipeline_execution_policy_spec.rb[1:1:2]": 95.576353307, - "./qa/specs/features/ee/browser_ui/18_security_risk_management/project_security_dashboard_spec.rb[1:1:1]": 32.719714214, - "./qa/specs/features/ee/browser_ui/18_security_risk_management/project_security_dashboard_spec.rb[1:1:2]": 39.400748185, - "./qa/specs/features/ee/browser_ui/18_security_risk_management/scan_execution_policy_vulnerabilities_spec.rb[1:1:2]": 164.814060179, - "./qa/specs/features/ee/browser_ui/18_security_risk_management/scan_result_policy_vulnerabilities_spec.rb[1:1:1]": 51.293632699, - "./qa/specs/features/ee/browser_ui/18_security_risk_management/scan_result_policy_vulnerabilities_spec.rb[1:1:2]": 64.682179345, - "./qa/specs/features/ee/browser_ui/18_security_risk_management/security_policies_spec.rb[1:1:1]": 32.166845299, - "./qa/specs/features/ee/browser_ui/18_security_risk_management/security_policies_spec.rb[1:1:2]": 30.406698658, - "./qa/specs/features/ee/browser_ui/18_security_risk_management/security_policies_spec.rb[1:1:3]": 43.255562226, - "./qa/specs/features/ee/browser_ui/18_security_risk_management/security_reports_spec.rb[1:1:1]": 10.123369386, - "./qa/specs/features/ee/browser_ui/18_security_risk_management/security_reports_spec.rb[1:1:2]": 109.451472438, - "./qa/specs/features/ee/browser_ui/18_security_risk_management/security_reports_spec.rb[1:1:3]": 48.761415297, - "./qa/specs/features/ee/browser_ui/18_security_risk_management/security_reports_spec.rb[1:1:4]": 136.187691302, - "./qa/specs/features/ee/browser_ui/18_security_risk_management/security_reports_spec.rb[1:1:6:1]": 24.874358336, - "./qa/specs/features/ee/browser_ui/18_security_risk_management/vulnerabilities_jira_integration_spec.rb[1:1:1]": 24.422920471, - "./qa/specs/features/ee/browser_ui/18_security_risk_management/vulnerability_management_spec.rb[1:1:1]": 82.217974545, - "./qa/specs/features/ee/browser_ui/18_security_risk_management/vulnerability_management_spec.rb[1:1:2]": 48.634892469, - "./qa/specs/features/ee/browser_ui/18_security_risk_management/vulnerability_management_spec.rb[1:1:3]": 112.520929823, - "./qa/specs/features/ee/browser_ui/18_security_risk_management/vulnerability_management_spec.rb[1:1:4]": 84.061430632, - "./qa/specs/features/ee/browser_ui/1_manage/integrations/jira_issues_list_spec.rb[1:1:1]": 28.190357147, - "./qa/specs/features/ee/browser_ui/1_manage/integrations/jira_issues_list_spec.rb[1:1:2]": 16.873124832, - "./qa/specs/features/ee/browser_ui/1_manage/integrations/jira_issues_list_spec.rb[1:1:3]": 22.783629451, - "./qa/specs/features/ee/browser_ui/2_plan/analytics/contribution_analytics_spec.rb[1:1:1]": 44.045388704, - "./qa/specs/features/ee/browser_ui/2_plan/analytics/mr_analytics_spec.rb[1:1:1]": 49.605608008, - "./qa/specs/features/ee/browser_ui/2_plan/analytics/value_stream_analytics_spec.rb[1:1:1:1:1:1]": 16.873834824, - "./qa/specs/features/ee/browser_ui/2_plan/analytics/value_stream_analytics_spec.rb[1:1:1:2:1:1]": 15.071253854, - "./qa/specs/features/ee/browser_ui/2_plan/burndown_chart/burndown_chart_spec.rb[1:1:1]": 12.425744862, - "./qa/specs/features/ee/browser_ui/2_plan/custom_email/custom_email_spec.rb[1:1:1]": 21.275432512, - "./qa/specs/features/ee/browser_ui/2_plan/epic/epics_management_spec.rb[1:1:1]": 55.126528227, - "./qa/specs/features/ee/browser_ui/2_plan/epic/epics_management_spec.rb[1:1:2]": 51.734337307, - "./qa/specs/features/ee/browser_ui/2_plan/epic/epics_management_spec.rb[1:1:3:1:1]": 13.359568297, - "./qa/specs/features/ee/browser_ui/2_plan/epic/epics_management_spec.rb[1:1:3:1:2]": 11.827790271, - "./qa/specs/features/ee/browser_ui/2_plan/epic/epics_management_spec.rb[1:1:3:1:3]": 11.937871751, - "./qa/specs/features/ee/browser_ui/2_plan/epic/epics_management_spec.rb[1:1:3:2]": 19.083010107, - "./qa/specs/features/ee/browser_ui/2_plan/epic/promote_issue_to_epic_spec.rb[1:1:1]": 43.010970875, - "./qa/specs/features/ee/browser_ui/2_plan/epic/roadmap_spec.rb[1:1:1]": 17.212945005, - "./qa/specs/features/ee/browser_ui/2_plan/group_wiki/create_group_wiki_page_spec.rb[1:1:1:1]": 13.376569093, - "./qa/specs/features/ee/browser_ui/2_plan/group_wiki/create_group_wiki_page_spec.rb[1:1:2:1]": 11.753431241, - "./qa/specs/features/ee/browser_ui/2_plan/group_wiki/delete_group_wiki_page_spec.rb[1:1:1]": 11.061300879, - "./qa/specs/features/ee/browser_ui/2_plan/group_wiki/file_upload_group_wiki_page_spec.rb[1:1:1]": 27.601030025, - "./qa/specs/features/ee/browser_ui/2_plan/insights/default_insights_spec.rb[1:1:1:1]": 18.031038686, - "./qa/specs/features/ee/browser_ui/2_plan/insights/default_insights_spec.rb[1:2:1:1]": 11.738860173, - "./qa/specs/features/ee/browser_ui/2_plan/issue/default_issue_template_spec.rb[1:1:1]": 37.399222131, - "./qa/specs/features/ee/browser_ui/2_plan/issue_boards/configurable_issue_board_spec.rb[1:1:1]": 15.641959559, - "./qa/specs/features/ee/browser_ui/2_plan/issue_boards/configure_issue_board_by_label_spec.rb[1:1:1]": 31.445921866, - "./qa/specs/features/ee/browser_ui/2_plan/issue_boards/create_group_issue_board_spec.rb[1:1:1]": 19.505610728, - "./qa/specs/features/ee/browser_ui/2_plan/issue_boards/group_issue_boards_spec.rb[1:1:1]": 27.690979316, - "./qa/specs/features/ee/browser_ui/2_plan/issue_boards/project_issue_boards_spec.rb[1:1:1:1]": 24.748766853, - "./qa/specs/features/ee/browser_ui/2_plan/issue_boards/project_issue_boards_spec.rb[1:1:2:1]": 12.858331655, - "./qa/specs/features/ee/browser_ui/2_plan/issue_boards/project_issue_boards_spec.rb[1:1:3:1]": 15.608596717, - "./qa/specs/features/ee/browser_ui/2_plan/issue_boards/read_only_board_configuration_spec.rb[1:1:1]": 32.967628635, - "./qa/specs/features/ee/browser_ui/2_plan/issue_boards/sum_of_issues_weights_spec.rb[1:1:1]": 24.847033452, - "./qa/specs/features/ee/browser_ui/2_plan/issues_analytics/issues_analytics_spec.rb[1:1:1:1]": 13.326465803, - "./qa/specs/features/ee/browser_ui/2_plan/issues_analytics/issues_analytics_spec.rb[1:2:1:1]": 10.58827123, - "./qa/specs/features/ee/browser_ui/2_plan/issues_weight/issue_weight_visualization_spec.rb[1:1:1]": 33.033353934, - "./qa/specs/features/ee/browser_ui/2_plan/iterations/assign_group_iteration_spec.rb[1:1:1]": 28.489613854, - "./qa/specs/features/ee/browser_ui/2_plan/iterations/create_group_iteration_spec.rb[1:1:1:1]": 29.662146848, - "./qa/specs/features/ee/browser_ui/2_plan/iterations/create_group_iteration_spec.rb[1:1:2:1]": 22.665586731, - "./qa/specs/features/ee/browser_ui/2_plan/multiple_assignees_for_issues/four_assignees_spec.rb[1:1:1]": 44.814552858, - "./qa/specs/features/ee/browser_ui/2_plan/multiple_assignees_for_issues/more_than_four_assignees_spec.rb[1:1:1]": 41.630750595, - "./qa/specs/features/ee/browser_ui/2_plan/multiple_assignees_for_issues/more_than_four_assignees_spec.rb[1:1:2]": 32.397741838, - "./qa/specs/features/ee/browser_ui/2_plan/scoped_labels/editing_scoped_labels_spec.rb[1:1:1]": 32.664653309, - "./qa/specs/features/ee/browser_ui/3_create/merge_request/approval_rules_spec.rb[1:1:1]": 93.612982487, - "./qa/specs/features/ee/browser_ui/3_create/merge_request/default_merge_request_template_spec.rb[1:1:1]": 32.723992507, - "./qa/specs/features/ee/browser_ui/3_create/repository/assign_code_owners_spec.rb[1:1:1]": 80.569115631, - "./qa/specs/features/ee/browser_ui/3_create/repository/code_owners_spec.rb[1:1:1]": 35.770031326, - "./qa/specs/features/ee/browser_ui/3_create/repository/file_locking_spec.rb[1:1:1]": 47.414073966, - "./qa/specs/features/ee/browser_ui/3_create/repository/file_locking_spec.rb[1:1:2]": 38.412633551, - "./qa/specs/features/ee/browser_ui/3_create/repository/file_locking_spec.rb[1:1:3]": 37.938831977, - "./qa/specs/features/ee/browser_ui/3_create/repository/file_locking_spec.rb[1:1:4]": 29.502836099, - "./qa/specs/features/ee/browser_ui/3_create/repository/group_file_template_spec.rb[1:1:1]": 29.675254965, - "./qa/specs/features/ee/browser_ui/3_create/repository/merge_with_code_owner_in_root_group_spec.rb[1:1:1:1:1:1]": 53.260257075, - "./qa/specs/features/ee/browser_ui/3_create/repository/merge_with_code_owner_in_root_group_spec.rb[1:1:1:2:1:1]": 53.883369267, - "./qa/specs/features/ee/browser_ui/3_create/repository/merge_with_code_owner_in_subgroup_spec.rb[1:1:1:1:1:1]": 67.091532135, - "./qa/specs/features/ee/browser_ui/3_create/repository/merge_with_code_owner_in_subgroup_spec.rb[1:1:1:2:1:1]": 39.776961616, - "./qa/specs/features/ee/browser_ui/3_create/repository/merge_with_code_owner_in_subgroup_spec.rb[1:1:1:3:1:1]": 54.178879928, - "./qa/specs/features/ee/browser_ui/3_create/repository/prevent_forking_outside_group_spec.rb[1:1:1:1]": 45.796577177, - "./qa/specs/features/ee/browser_ui/3_create/repository/prevent_forking_outside_group_spec.rb[1:1:2:1]": 31.199611203, - "./qa/specs/features/ee/browser_ui/3_create/repository/project_templates_spec.rb[1:1:1:1]": 30.305352063, - "./qa/specs/features/ee/browser_ui/3_create/repository/project_templates_spec.rb[1:1:2:1]": 43.137186031, - "./qa/specs/features/ee/browser_ui/3_create/repository/project_templates_spec.rb[1:1:3:1]": 47.028150901, - "./qa/specs/features/ee/browser_ui/3_create/repository/pull_mirroring_over_http_spec.rb[1:1:1]": 29.40459859, - "./qa/specs/features/ee/browser_ui/3_create/repository/pull_mirroring_over_ssh_with_key_spec.rb[1:1:1]": 54.89428058, - "./qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb[1:1:1:1]": 15.908919856, - "./qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb[1:1:1:2]": 37.558669126, - "./qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb[1:1:1:3]": 30.372965946, - "./qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb[1:1:1:4]": 25.920041929, - "./qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb[1:1:1:5]": 46.022771024, - "./qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb[1:1:1:6]": 24.555188623, - "./qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb[1:1:1:7]": 30.196531532, - "./qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb[1:1:1:8]": 30.958081225, - "./qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb[1:1:1:9]": 37.062542404, - "./qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb[1:1:2:1]": 37.798257351, - "./qa/specs/features/ee/browser_ui/3_create/repository/restrict_push_protected_branch_spec.rb[1:1:1:1:1]": 35.931208013, - "./qa/specs/features/ee/browser_ui/3_create/repository/restrict_push_protected_branch_spec.rb[1:1:1:2:1]": 55.066991319, - "./qa/specs/features/ee/browser_ui/3_create/repository/restrict_push_protected_branch_spec.rb[1:1:2:1:1]": 38.007752053, - "./qa/specs/features/ee/browser_ui/3_create/repository/restrict_push_protected_branch_spec.rb[1:1:2:2:1]": 72.890472789, - "./qa/specs/features/ee/browser_ui/3_create/repository/restrict_push_protected_branch_spec.rb[1:1:3:1:1]": 46.227410058, - "./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]": 48.767454583, - "./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]": 44.117405654, - "./qa/specs/features/ee/browser_ui/3_create/web_ide/code_suggestions_in_web_ide_spec.rb[1:1:2:1:2:1:1]": 45.328136071, - "./qa/specs/features/ee/browser_ui/3_create/web_ide/code_suggestions_in_web_ide_spec.rb[1:1:2:2:1:1]": 40.620745417, - "./qa/specs/features/ee/browser_ui/4_verify/multi-project_pipelines_spec.rb[1:1:1]": 49.828861862, - "./qa/specs/features/ee/browser_ui/4_verify/parent_child_pipelines_dependent_relationship_spec.rb[1:1:1]": 62.44191952, - "./qa/specs/features/ee/browser_ui/4_verify/parent_child_pipelines_dependent_relationship_spec.rb[1:1:2]": 87.550240907, - "./qa/specs/features/ee/browser_ui/4_verify/pipeline_for_merged_result_spec.rb[1:1:1]": 42.619210116, - "./qa/specs/features/ee/browser_ui/4_verify/pipeline_subscription_with_group_owned_project_spec.rb[1:1:1:1]": 38.96152773, - "./qa/specs/features/ee/browser_ui/8_monitor/incident_management/incident_quick_action_spec.rb[1:1:1]": 18.222050133, - "./qa/specs/features/ee/browser_ui/9_tenant_scale/share_group_with_group_spec.rb[1:1:1]": 38.94106065 + "./qa/specs/features/browser_ui/8_monitor/alert_management/alert_management_spec.rb[1:1:1:4:1]": 30.958535668, + "./qa/specs/features/browser_ui/8_monitor/alert_management/alert_management_spec.rb[1:1:2:1:1]": 30.237067841, + "./qa/specs/features/browser_ui/8_monitor/alert_management/alert_management_spec.rb[1:1:2:2:1]": 41.128153057, + "./qa/specs/features/browser_ui/8_monitor/alert_management/alert_management_spec.rb[1:1:2:3:1]": 40.99883527, + "./qa/specs/features/browser_ui/8_monitor/alert_management/email_notification_for_alert_spec.rb[1:1:1:1:1:1]": 22.512779666, + "./qa/specs/features/browser_ui/8_monitor/alert_management/email_notification_for_alert_spec.rb[1:1:1:2:1:1]": 18.728963974, + "./qa/specs/features/browser_ui/8_monitor/alert_management/email_notification_for_alert_spec.rb[1:1:2:1:1:1]": 24.478425613, + "./qa/specs/features/browser_ui/8_monitor/alert_management/email_notification_for_alert_spec.rb[1:1:2:2:1:1]": 20.33373114, + "./qa/specs/features/browser_ui/9_tenant_scale/group/create_group_with_mattermost_team_spec.rb[1:1:1]": 22.108621041, + "./qa/specs/features/browser_ui/9_tenant_scale/group/group_member_access_request_spec.rb[1:1:1]": 25.536917467, + "./qa/specs/features/browser_ui/9_tenant_scale/group/group_member_access_request_spec.rb[1:1:2:1:1]": 26.342238506, + "./qa/specs/features/browser_ui/9_tenant_scale/group/group_member_access_request_spec.rb[1:1:2:2:1]": 22.289817432, + "./qa/specs/features/browser_ui/9_tenant_scale/group/transfer_project_spec.rb[1:1:1]": 30.045932109, + "./qa/specs/features/browser_ui/9_tenant_scale/project/add_project_member_spec.rb[1:1:1]": 34.413563431, + "./qa/specs/features/browser_ui/9_tenant_scale/project/create_project_badge_spec.rb[1:1:1]": 30.048491512, + "./qa/specs/features/browser_ui/9_tenant_scale/project/create_project_spec.rb[1:1:1:1:1]": 28.709629229, + "./qa/specs/features/browser_ui/9_tenant_scale/project/create_project_spec.rb[1:1:2:1:1]": 30.557763326, + "./qa/specs/features/browser_ui/9_tenant_scale/project/dashboard_images_spec.rb[1:1:1:1:1]": 11.220233912, + "./qa/specs/features/browser_ui/9_tenant_scale/project/dashboard_images_spec.rb[1:1:2:1:1]": 23.446095091, + "./qa/specs/features/browser_ui/9_tenant_scale/project/invite_group_to_project_spec.rb[1:1:1:1:1]": 28.313462841, + "./qa/specs/features/browser_ui/9_tenant_scale/project/invite_group_to_project_spec.rb[1:1:2:1:1]": 27.010253942, + "./qa/specs/features/browser_ui/9_tenant_scale/project/project_owner_permissions_spec.rb[1:1:1:1:1]": 37.577293439, + "./qa/specs/features/browser_ui/9_tenant_scale/project/project_owner_permissions_spec.rb[1:1:1:2:1]": 29.055338494, + "./qa/specs/features/browser_ui/9_tenant_scale/project/project_owner_permissions_spec.rb[1:1:2:1:1]": 43.663995918, + "./qa/specs/features/browser_ui/9_tenant_scale/project/project_owner_permissions_spec.rb[1:1:2:2:1]": 39.619807084, + "./qa/specs/features/browser_ui/9_tenant_scale/project/view_project_activity_spec.rb[1:1:1:1]": 26.214815622, + "./qa/specs/features/browser_ui/9_tenant_scale/user/follow_user_activity_spec.rb[1:1:1]": 50.963180977, + "./qa/specs/features/browser_ui/9_tenant_scale/user/parent_group_access_termination_spec.rb[1:1:1:1]": 38.339947567, + "./qa/specs/features/browser_ui/9_tenant_scale/user/user_inherited_access_spec.rb[1:1:1:1]": 31.875253949, + "./qa/specs/features/browser_ui/9_tenant_scale/user/user_inherited_access_spec.rb[1:1:2:1]": 16.986130538, + "./qa/specs/features/ee/api/10_software_supply_chain_security/compliance_pipeline_spec.rb[1:1:1:1]": 43.440990292, + "./qa/specs/features/ee/api/10_software_supply_chain_security/instance_audit_event_streaming_spec.rb[1:1:1:1]": 9.107424942, + "./qa/specs/features/ee/api/10_software_supply_chain_security/instance_audit_event_streaming_spec.rb[1:1:4:1]": 13.847432693, + "./qa/specs/features/ee/api/10_software_supply_chain_security/user/minimal_access_user_spec.rb[1:1:1]": 42.285290101, + "./qa/specs/features/ee/api/10_software_supply_chain_security/user/minimal_access_user_spec.rb[1:1:2]": 24.381743332, + "./qa/specs/features/ee/api/10_software_supply_chain_security/user/minimal_access_user_spec.rb[1:1:3]": 18.076094194, + "./qa/specs/features/ee/api/17_foundations/elasticsearch/advanced_global_advanced_syntax_search_spec.rb[1:1:1:1]": 59.706826951, + "./qa/specs/features/ee/api/17_foundations/elasticsearch/advanced_global_advanced_syntax_search_spec.rb[1:1:1:2]": 72.033586771, + "./qa/specs/features/ee/api/17_foundations/elasticsearch/elasticsearch_api_spec.rb[1:1:1]": 15.745187552, + "./qa/specs/features/ee/api/17_foundations/elasticsearch/elasticsearch_api_spec.rb[1:1:2:2]": 18.226030205, + "./qa/specs/features/ee/api/17_foundations/elasticsearch/index_tests/blob_index_spec.rb[1:1:1]": 23.571554416, + "./qa/specs/features/ee/api/17_foundations/elasticsearch/index_tests/commit_index_spec.rb[1:1:1]": 116.16382549, + "./qa/specs/features/ee/api/17_foundations/elasticsearch/index_tests/issue_index_spec.rb[1:1:1]": 57.785051616, + "./qa/specs/features/ee/api/17_foundations/elasticsearch/index_tests/merge_request_index_spec.rb[1:1:1]": 65.228165348, + "./qa/specs/features/ee/api/17_foundations/elasticsearch/index_tests/note_index_spec.rb[1:1:1]": 157.774199859, + "./qa/specs/features/ee/api/17_foundations/elasticsearch/index_tests/user_index_spec.rb[1:1:1]": 62.168856477, + "./qa/specs/features/ee/api/1_manage/import/import_github_repo_spec.rb[1:1:1:1]": 63.301241836, + "./qa/specs/features/ee/api/1_manage/integrations/group_webhook_events_spec.rb[1:1:1]": 7.3694943, + "./qa/specs/features/ee/api/1_manage/migration/gitlab_migration_group_spec.rb[1:1:1:1]": 76.400317307, + "./qa/specs/features/ee/api/2_plan/epics_milestone_dates_spec.rb[1:1:1]": 9.623640143, + "./qa/specs/features/ee/api/2_plan/epics_milestone_dates_spec.rb[1:1:2]": 22.718131824, + "./qa/specs/features/ee/api/2_plan/epics_milestone_dates_spec.rb[1:1:3]": 25.595350814, + "./qa/specs/features/ee/api/2_plan/epics_milestone_dates_spec.rb[1:1:4]": 11.626931987, + "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:1:1:1:1]": 1.278244546, + "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:1:1:2:1:1]": 1.963143116, + "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:1:2:1:1:1:1:1]": 1.960281938, + "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:1:2:1:1:1:2:1:1]": 2.967020376, + "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:2:1:1:1]": 11.05555421, + "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:2:2:1:1:1:1:1]": 2.115752454, + "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:2:2:2:1]": 0.955145348, + "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:2:3:1:1]": 10.685221419, + "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:2:3:2:1:1:1:1]": 0.211488726, + "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:3:1:1]": 3.882430613, + "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:3:1:2]": 4.043328988, + "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:3:2:1:1:1:1]": 1.989591737, + "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:3:2:1:1:1:2]": 1.797463331, + "./qa/specs/features/ee/api/3_create/code_suggestions_spec.rb[1:1:3:2:1:1:1:3:1]": 1.600826255, + "./qa/specs/features/ee/browser_ui/10_software_supply_chain_security/group/group_audit_event_streaming_spec.rb[1:1:1:1]": 15.961498313, + "./qa/specs/features/ee/browser_ui/10_software_supply_chain_security/group/group_audit_event_streaming_spec.rb[1:1:2:1:1]": 16.755230461, + "./qa/specs/features/ee/browser_ui/10_software_supply_chain_security/group/group_audit_event_streaming_spec.rb[1:1:2:2:1]": 23.048720301, + "./qa/specs/features/ee/browser_ui/10_software_supply_chain_security/group/group_audit_event_streaming_spec.rb[1:1:2:3:1]": 16.432419911, + "./qa/specs/features/ee/browser_ui/10_software_supply_chain_security/group/group_audit_logs_1_spec.rb[1:1:1:1:1]": 36.328783578, + "./qa/specs/features/ee/browser_ui/10_software_supply_chain_security/group/group_audit_logs_1_spec.rb[1:1:2:1:1]": 12.47850823, + "./qa/specs/features/ee/browser_ui/10_software_supply_chain_security/group/group_audit_logs_1_spec.rb[1:1:3:1:1]": 11.982809576, + "./qa/specs/features/ee/browser_ui/10_software_supply_chain_security/group/group_audit_logs_1_spec.rb[1:1:4:1:1]": 39.01940441, + "./qa/specs/features/ee/browser_ui/10_software_supply_chain_security/group/group_audit_logs_1_spec.rb[1:1:5:1:1]": 21.375614966, + "./qa/specs/features/ee/browser_ui/10_software_supply_chain_security/group/restrict_by_ip_address_spec.rb[1:1:1:1:1]": 19.310762583, + "./qa/specs/features/ee/browser_ui/10_software_supply_chain_security/group/restrict_by_ip_address_spec.rb[1:1:1:2:1]": 25.48950197, + "./qa/specs/features/ee/browser_ui/10_software_supply_chain_security/group/restrict_by_ip_address_spec.rb[1:1:1:3:1]": 46.759209144, + "./qa/specs/features/ee/browser_ui/10_software_supply_chain_security/group/restrict_by_ip_address_spec.rb[1:1:2:1:1]": 17.219672193, + "./qa/specs/features/ee/browser_ui/10_software_supply_chain_security/group/restrict_by_ip_address_spec.rb[1:1:2:2:1]": 14.433018117, + "./qa/specs/features/ee/browser_ui/10_software_supply_chain_security/group/restrict_by_ip_address_spec.rb[1:1:2:3:1]": 18.10493635, + "./qa/specs/features/ee/browser_ui/10_software_supply_chain_security/project/project_audit_logs_spec.rb[1:1:1:1:1]": 18.687845722, + "./qa/specs/features/ee/browser_ui/10_software_supply_chain_security/project/project_audit_logs_spec.rb[1:1:2:1:1]": 28.883322671, + "./qa/specs/features/ee/browser_ui/10_software_supply_chain_security/project/project_audit_logs_spec.rb[1:1:3:1:1]": 17.479905522, + "./qa/specs/features/ee/browser_ui/10_software_supply_chain_security/project/project_audit_logs_spec.rb[1:1:4:1:1]": 15.930147309, + "./qa/specs/features/ee/browser_ui/10_software_supply_chain_security/project/project_audit_logs_spec.rb[1:1:5:1:1]": 35.371425536, + "./qa/specs/features/ee/browser_ui/10_software_supply_chain_security/project/project_audit_logs_spec.rb[1:1:6:1:1]": 23.767067919, + "./qa/specs/features/ee/browser_ui/10_software_supply_chain_security/user/minimal_access_user_spec.rb[1:1:1]": 25.79399521, + "./qa/specs/features/ee/browser_ui/11_fulfillment/license/cloud_activation_spec.rb[1:1:1]": 17.311105516, + "./qa/specs/features/ee/browser_ui/11_fulfillment/license/license_spec.rb[1:1:1]": 7.200833254, + "./qa/specs/features/ee/browser_ui/11_fulfillment/utilization/user_registration_billing_spec.rb[1:1:1:1:1]": 21.911992263, + "./qa/specs/features/ee/browser_ui/13_secure/cvs_dependency_scanning_spec.rb[1:1:1:1]": 35.020374589, + "./qa/specs/features/ee/browser_ui/13_secure/on_demand_dast_spec.rb[1:1:1:1]": 119.977930561, + "./qa/specs/features/ee/browser_ui/13_secure/secret_push_protection_spec.rb[1:1:1]": 53.543706592, + "./qa/specs/features/ee/browser_ui/13_secure/secret_push_protection_spec.rb[1:1:2:1]": 76.659352405, + "./qa/specs/features/ee/browser_ui/16_ai_powered/duo_chat/duo_chat_spec.rb[1:1:1:2:1]": 14.72526846, + "./qa/specs/features/ee/browser_ui/17_foundations/elasticsearch_reindexing_spec.rb[1:1:1]": 74.489889374, + "./qa/specs/features/ee/browser_ui/17_foundations/elasticsearch_reindexing_spec.rb[1:1:2]": 93.306277002, + "./qa/specs/features/ee/browser_ui/18_security_risk_management/change_vulnerability_status_spec.rb[1:1:1]": 55.452391968, + "./qa/specs/features/ee/browser_ui/18_security_risk_management/change_vulnerability_status_spec.rb[1:1:2]": 42.472055657, + "./qa/specs/features/ee/browser_ui/18_security_risk_management/change_vulnerability_status_spec.rb[1:1:3]": 24.066818883, + "./qa/specs/features/ee/browser_ui/18_security_risk_management/create_merge_request_with_secure_spec.rb[1:1:1]": 78.439865892, + "./qa/specs/features/ee/browser_ui/18_security_risk_management/dismissed_vulnerabilities_in_security_widget_spec.rb[1:1:1]": 93.5359091, + "./qa/specs/features/ee/browser_ui/18_security_risk_management/export_vulnerability_report_spec.rb[1:1:1]": 27.487703354, + "./qa/specs/features/ee/browser_ui/18_security_risk_management/fix_vulnerability_workflow_spec.rb[1:1:1]": 139.650495452, + "./qa/specs/features/ee/browser_ui/18_security_risk_management/group_pipeline_execution_policy_spec.rb[1:1:1]": 176.601076893, + "./qa/specs/features/ee/browser_ui/18_security_risk_management/group_pipeline_execution_policy_spec.rb[1:1:2]": 79.101904366, + "./qa/specs/features/ee/browser_ui/18_security_risk_management/project_security_dashboard_spec.rb[1:1:1]": 31.643187116, + "./qa/specs/features/ee/browser_ui/18_security_risk_management/project_security_dashboard_spec.rb[1:1:2]": 43.344445112, + "./qa/specs/features/ee/browser_ui/18_security_risk_management/scan_execution_policy_vulnerabilities_spec.rb[1:1:2]": 94.210012774, + "./qa/specs/features/ee/browser_ui/18_security_risk_management/scan_result_policy_vulnerabilities_spec.rb[1:1:1]": 61.371620919, + "./qa/specs/features/ee/browser_ui/18_security_risk_management/scan_result_policy_vulnerabilities_spec.rb[1:1:2]": 54.060432657, + "./qa/specs/features/ee/browser_ui/18_security_risk_management/security_policies_spec.rb[1:1:1]": 32.348139946, + "./qa/specs/features/ee/browser_ui/18_security_risk_management/security_policies_spec.rb[1:1:2]": 34.298194828, + "./qa/specs/features/ee/browser_ui/18_security_risk_management/security_policies_spec.rb[1:1:3]": 47.227993798, + "./qa/specs/features/ee/browser_ui/18_security_risk_management/security_reports_spec.rb[1:1:1]": 29.747576186, + "./qa/specs/features/ee/browser_ui/18_security_risk_management/security_reports_spec.rb[1:1:2]": 95.462593614, + "./qa/specs/features/ee/browser_ui/18_security_risk_management/security_reports_spec.rb[1:1:3]": 61.938687756, + "./qa/specs/features/ee/browser_ui/18_security_risk_management/security_reports_spec.rb[1:1:4]": 130.165814517, + "./qa/specs/features/ee/browser_ui/18_security_risk_management/security_reports_spec.rb[1:1:6:1]": 31.020220442, + "./qa/specs/features/ee/browser_ui/18_security_risk_management/vulnerabilities_jira_integration_spec.rb[1:1:1]": 31.197709445, + "./qa/specs/features/ee/browser_ui/18_security_risk_management/vulnerability_management_spec.rb[1:1:1]": 67.047566609, + "./qa/specs/features/ee/browser_ui/18_security_risk_management/vulnerability_management_spec.rb[1:1:2]": 112.808424181, + "./qa/specs/features/ee/browser_ui/18_security_risk_management/vulnerability_management_spec.rb[1:1:3]": 71.33385348, + "./qa/specs/features/ee/browser_ui/18_security_risk_management/vulnerability_management_spec.rb[1:1:4]": 93.7612943, + "./qa/specs/features/ee/browser_ui/1_manage/integrations/jira_issues_list_spec.rb[1:1:1]": 26.056432792, + "./qa/specs/features/ee/browser_ui/1_manage/integrations/jira_issues_list_spec.rb[1:1:2]": 22.565748769, + "./qa/specs/features/ee/browser_ui/1_manage/integrations/jira_issues_list_spec.rb[1:1:3]": 24.049946785, + "./qa/specs/features/ee/browser_ui/2_plan/analytics/contribution_analytics_spec.rb[1:1:1]": 57.348968368, + "./qa/specs/features/ee/browser_ui/2_plan/analytics/mr_analytics_spec.rb[1:1:1]": 51.095337433, + "./qa/specs/features/ee/browser_ui/2_plan/analytics/value_stream_analytics_spec.rb[1:1:1:1:1:1]": 28.185024896, + "./qa/specs/features/ee/browser_ui/2_plan/analytics/value_stream_analytics_spec.rb[1:1:1:2:1:1]": 30.871977244, + "./qa/specs/features/ee/browser_ui/2_plan/burndown_chart/burndown_chart_spec.rb[1:1:1]": 31.343366911, + "./qa/specs/features/ee/browser_ui/2_plan/custom_email/custom_email_spec.rb[1:1:1]": 12.800758563, + "./qa/specs/features/ee/browser_ui/2_plan/epic/epics_management_spec.rb[1:1:1]": 51.278248692, + "./qa/specs/features/ee/browser_ui/2_plan/epic/epics_management_spec.rb[1:1:2]": 48.564923722, + "./qa/specs/features/ee/browser_ui/2_plan/epic/epics_management_spec.rb[1:1:3:1:1]": 12.77366838, + "./qa/specs/features/ee/browser_ui/2_plan/epic/epics_management_spec.rb[1:1:3:1:2]": 12.383634462, + "./qa/specs/features/ee/browser_ui/2_plan/epic/epics_management_spec.rb[1:1:3:1:3]": 11.156815931, + "./qa/specs/features/ee/browser_ui/2_plan/epic/epics_management_spec.rb[1:1:3:2]": 18.83896402, + "./qa/specs/features/ee/browser_ui/2_plan/epic/promote_issue_to_epic_spec.rb[1:1:1]": 43.792671588, + "./qa/specs/features/ee/browser_ui/2_plan/epic/roadmap_spec.rb[1:1:1]": 9.24733226, + "./qa/specs/features/ee/browser_ui/2_plan/group_wiki/create_group_wiki_page_spec.rb[1:1:1:1]": 15.06041112, + "./qa/specs/features/ee/browser_ui/2_plan/group_wiki/create_group_wiki_page_spec.rb[1:1:2:1]": 14.857555172, + "./qa/specs/features/ee/browser_ui/2_plan/group_wiki/delete_group_wiki_page_spec.rb[1:1:1]": 19.629283036, + "./qa/specs/features/ee/browser_ui/2_plan/group_wiki/file_upload_group_wiki_page_spec.rb[1:1:1]": 36.352454464, + "./qa/specs/features/ee/browser_ui/2_plan/insights/default_insights_spec.rb[1:1:1:1]": 17.318288618, + "./qa/specs/features/ee/browser_ui/2_plan/insights/default_insights_spec.rb[1:2:1:1]": 14.717832877, + "./qa/specs/features/ee/browser_ui/2_plan/issue/default_issue_template_spec.rb[1:1:1]": 35.248433442, + "./qa/specs/features/ee/browser_ui/2_plan/issue_boards/configurable_issue_board_spec.rb[1:1:1]": 14.583747048, + "./qa/specs/features/ee/browser_ui/2_plan/issue_boards/configure_issue_board_by_label_spec.rb[1:1:1]": 36.780308425, + "./qa/specs/features/ee/browser_ui/2_plan/issue_boards/create_group_issue_board_spec.rb[1:1:1]": 20.78197115, + "./qa/specs/features/ee/browser_ui/2_plan/issue_boards/group_issue_boards_spec.rb[1:1:1]": 20.047759955, + "./qa/specs/features/ee/browser_ui/2_plan/issue_boards/project_issue_boards_spec.rb[1:1:1:1]": 14.657021191, + "./qa/specs/features/ee/browser_ui/2_plan/issue_boards/project_issue_boards_spec.rb[1:1:2:1]": 14.946861367, + "./qa/specs/features/ee/browser_ui/2_plan/issue_boards/project_issue_boards_spec.rb[1:1:3:1]": 15.177383778, + "./qa/specs/features/ee/browser_ui/2_plan/issue_boards/read_only_board_configuration_spec.rb[1:1:1]": 29.971507346, + "./qa/specs/features/ee/browser_ui/2_plan/issue_boards/sum_of_issues_weights_spec.rb[1:1:1]": 14.407249842, + "./qa/specs/features/ee/browser_ui/2_plan/issues_analytics/issues_analytics_spec.rb[1:1:1:1]": 11.263025683, + "./qa/specs/features/ee/browser_ui/2_plan/issues_analytics/issues_analytics_spec.rb[1:2:1:1]": 10.468029905, + "./qa/specs/features/ee/browser_ui/2_plan/issues_weight/issue_weight_visualization_spec.rb[1:1:1]": 38.238879175, + "./qa/specs/features/ee/browser_ui/2_plan/iterations/assign_group_iteration_spec.rb[1:1:1]": 17.647174578, + "./qa/specs/features/ee/browser_ui/2_plan/iterations/create_group_iteration_spec.rb[1:1:1:1]": 25.217168, + "./qa/specs/features/ee/browser_ui/2_plan/iterations/create_group_iteration_spec.rb[1:1:2:1]": 24.442112914, + "./qa/specs/features/ee/browser_ui/2_plan/multiple_assignees_for_issues/four_assignees_spec.rb[1:1:1]": 48.302348051, + "./qa/specs/features/ee/browser_ui/2_plan/multiple_assignees_for_issues/more_than_four_assignees_spec.rb[1:1:1]": 31.639412336, + "./qa/specs/features/ee/browser_ui/2_plan/multiple_assignees_for_issues/more_than_four_assignees_spec.rb[1:1:2]": 29.68745318, + "./qa/specs/features/ee/browser_ui/2_plan/scoped_labels/editing_scoped_labels_spec.rb[1:1:1]": 17.395715596, + "./qa/specs/features/ee/browser_ui/3_create/merge_request/approval_rules_spec.rb[1:1:1]": 95.54773751, + "./qa/specs/features/ee/browser_ui/3_create/merge_request/default_merge_request_template_spec.rb[1:1:1]": 30.022617345, + "./qa/specs/features/ee/browser_ui/3_create/repository/assign_code_owners_spec.rb[1:1:1]": 39.102266946, + "./qa/specs/features/ee/browser_ui/3_create/repository/code_owners_spec.rb[1:1:1]": 47.163601333, + "./qa/specs/features/ee/browser_ui/3_create/repository/file_locking_spec.rb[1:1:1]": 48.449669733, + "./qa/specs/features/ee/browser_ui/3_create/repository/file_locking_spec.rb[1:1:2]": 40.615400501, + "./qa/specs/features/ee/browser_ui/3_create/repository/file_locking_spec.rb[1:1:3]": 39.101742718, + "./qa/specs/features/ee/browser_ui/3_create/repository/file_locking_spec.rb[1:1:4]": 30.365212754, + "./qa/specs/features/ee/browser_ui/3_create/repository/group_file_template_spec.rb[1:1:1]": 32.752464253, + "./qa/specs/features/ee/browser_ui/3_create/repository/merge_with_code_owner_in_root_group_spec.rb[1:1:1:1:1:1]": 45.950137018, + "./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.224086839, + "./qa/specs/features/ee/browser_ui/3_create/repository/merge_with_code_owner_in_subgroup_spec.rb[1:1:1:1:1:1]": 50.55105244, + "./qa/specs/features/ee/browser_ui/3_create/repository/merge_with_code_owner_in_subgroup_spec.rb[1:1:1:2:1:1]": 48.852108573, + "./qa/specs/features/ee/browser_ui/3_create/repository/merge_with_code_owner_in_subgroup_spec.rb[1:1:1:3:1:1]": 56.481222501, + "./qa/specs/features/ee/browser_ui/3_create/repository/prevent_forking_outside_group_spec.rb[1:1:1:1]": 30.838560514, + "./qa/specs/features/ee/browser_ui/3_create/repository/prevent_forking_outside_group_spec.rb[1:1:2:1]": 22.165747596, + "./qa/specs/features/ee/browser_ui/3_create/repository/project_templates_spec.rb[1:1:1:1]": 25.773702555, + "./qa/specs/features/ee/browser_ui/3_create/repository/project_templates_spec.rb[1:1:2:1]": 49.087016481, + "./qa/specs/features/ee/browser_ui/3_create/repository/project_templates_spec.rb[1:1:3:1]": 47.715732175, + "./qa/specs/features/ee/browser_ui/3_create/repository/pull_mirroring_over_http_spec.rb[1:1:1]": 50.37042949, + "./qa/specs/features/ee/browser_ui/3_create/repository/pull_mirroring_over_ssh_with_key_spec.rb[1:1:1]": 60.093352048, + "./qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb[1:1:1:1]": 20.329428381, + "./qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb[1:1:1:2]": 42.103309867, + "./qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb[1:1:1:3]": 27.773646452, + "./qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb[1:1:1:4]": 31.394383667, + "./qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb[1:1:1:5]": 45.767240229, + "./qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb[1:1:1:6]": 29.858613691, + "./qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb[1:1:1:7]": 31.691464589, + "./qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb[1:1:1:8]": 29.617201004, + "./qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb[1:1:1:9]": 37.541947585, + "./qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb[1:1:2:1]": 58.676874686, + "./qa/specs/features/ee/browser_ui/3_create/repository/restrict_push_protected_branch_spec.rb[1:1:1:1:1]": 33.846362738, + "./qa/specs/features/ee/browser_ui/3_create/repository/restrict_push_protected_branch_spec.rb[1:1:1:2:1]": 49.70200439, + "./qa/specs/features/ee/browser_ui/3_create/repository/restrict_push_protected_branch_spec.rb[1:1:2:1:1]": 34.961515026, + "./qa/specs/features/ee/browser_ui/3_create/repository/restrict_push_protected_branch_spec.rb[1:1:2:2:1]": 42.646415967, + "./qa/specs/features/ee/browser_ui/3_create/repository/restrict_push_protected_branch_spec.rb[1:1:3:1:1]": 33.372316721, + "./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]": 44.419115832, + "./qa/specs/features/ee/browser_ui/3_create/web_ide/code_suggestions_in_web_ide_spec.rb[1:1:2:2:1:1]": 45.823398663, + "./qa/specs/features/ee/browser_ui/4_verify/multi-project_pipelines_spec.rb[1:1:1]": 104.57082007, + "./qa/specs/features/ee/browser_ui/4_verify/parent_child_pipelines_dependent_relationship_spec.rb[1:1:1]": 40.352931799, + "./qa/specs/features/ee/browser_ui/4_verify/parent_child_pipelines_dependent_relationship_spec.rb[1:1:2]": 37.21846407, + "./qa/specs/features/ee/browser_ui/4_verify/pipeline_for_merged_result_spec.rb[1:1:1]": 53.295240454, + "./qa/specs/features/ee/browser_ui/4_verify/pipeline_subscription_with_group_owned_project_spec.rb[1:1:1:1]": 62.960696511, + "./qa/specs/features/ee/browser_ui/8_monitor/incident_management/incident_quick_action_spec.rb[1:1:1]": 15.981222191, + "./qa/specs/features/ee/browser_ui/9_tenant_scale/share_group_with_group_spec.rb[1:1:1]": 49.656757377 } diff --git a/qa/knapsack/master_report.json b/qa/knapsack/master_report.json index 1b6b30d5e88..f2504ff2b45 100644 --- a/qa/knapsack/master_report.json +++ b/qa/knapsack/master_report.json @@ -1,276 +1,276 @@ { - "qa/specs/features/api/10_software_supply_chain_security/group_access_token_spec.rb": 54.875223058, - "qa/specs/features/api/10_software_supply_chain_security/project_access_token_spec.rb": 160.60023912, - "qa/specs/features/api/12_systems/gitaly/automatic_failover_and_recovery_spec.rb": 96.20846981, - "qa/specs/features/api/12_systems/gitaly/backend_node_recovery_spec.rb": 109.627102697, - "qa/specs/features/api/12_systems/gitaly/distributed_reads_spec.rb": 112.325081555, - "qa/specs/features/api/12_systems/gitaly/gitaly_mtls_spec.rb": 12.683987097, - "qa/specs/features/api/1_manage/import/import_github_repo_spec.rb": 67.029896753, - "qa/specs/features/api/1_manage/integrations/webhook_events_spec.rb": 66.931286478, - "qa/specs/features/api/1_manage/migration/gitlab_migration_group_spec.rb": 52.789375341, - "qa/specs/features/api/1_manage/migration/gitlab_migration_issue_spec.rb": 214.369671367, - "qa/specs/features/api/1_manage/migration/gitlab_migration_pipeline_spec.rb": 95.183408053, - "qa/specs/features/api/1_manage/rate_limits_spec.rb": 18.570701422, - "qa/specs/features/api/2_plan/closes_issue_via_pushing_a_commit_spec.rb": 26.350634321, - "qa/specs/features/api/3_create/merge_request/push_options_mwps_spec.rb": 11.1672686, - "qa/specs/features/api/3_create/merge_request/push_options_remove_source_branch_spec.rb": 19.716478539, - "qa/specs/features/api/3_create/merge_request/push_options_spec.rb": 48.992749891, - "qa/specs/features/api/3_create/merge_request/view_merge_requests_spec.rb": 1.12492613, - "qa/specs/features/api/3_create/repository/add_list_delete_branches_spec.rb": 37.033504004, - "qa/specs/features/api/3_create/repository/commit_to_templated_project_spec.rb": 15.834466598, - "qa/specs/features/api/3_create/repository/default_branch_name_setting_spec.rb": 17.783299047, - "qa/specs/features/api/3_create/repository/files_spec.rb": 16.257951666, - "qa/specs/features/api/3_create/repository/project_archive_compare_spec.rb": 20.169613538, - "qa/specs/features/api/3_create/repository/push_postreceive_idempotent_spec.rb": 22.981041414, - "qa/specs/features/api/3_create/repository/storage_size_spec.rb": 19.574459601, - "qa/specs/features/api/3_create/repository/tag_revision_trigger_prereceive_hook_spec.rb": 15.513966763, - "qa/specs/features/api/4_verify/api_variable_inheritance_with_forward_pipeline_variables_spec.rb": 59.508752848, - "qa/specs/features/api/4_verify/cancel_pipeline_when_block_user_spec.rb": 19.05238086, - "qa/specs/features/api/4_verify/file_variable_spec.rb": 59.32694909200001, - "qa/specs/features/api/4_verify/job_downloads_artifacts_spec.rb": 72.660757127, - "qa/specs/features/api/8_monitor/metrics_spec.rb": 8.517926521, - "qa/specs/features/api/9_tenant_scale/user_inherited_access_spec.rb": 108.323062254, - "qa/specs/features/api/9_tenant_scale/users_spec.rb": 7.201691468, - "qa/specs/features/browser_ui/10_govern/login/log_in_spec.rb": 5.645742649, - "qa/specs/features/browser_ui/10_govern/project/project_access_token_spec.rb": 9.759487105, - "qa/specs/features/browser_ui/10_software_supply_chain_security/group/group_access_token_spec.rb": 23.862099606, - "qa/specs/features/browser_ui/10_software_supply_chain_security/login/2fa_recovery_spec.rb": 62.072023224, - "qa/specs/features/browser_ui/10_software_supply_chain_security/login/2fa_ssh_recovery_spec.rb": 72.346186181, - "qa/specs/features/browser_ui/10_software_supply_chain_security/login/log_in_spec.rb": 77.483603659, - "qa/specs/features/browser_ui/10_software_supply_chain_security/login/log_in_with_2fa_spec.rb": 92.720895708, - "qa/specs/features/browser_ui/10_software_supply_chain_security/login/log_into_gitlab_via_ldap_spec.rb": 6.338282952, - "qa/specs/features/browser_ui/10_software_supply_chain_security/login/log_into_mattermost_via_gitlab_spec.rb": 30.089140519, - "qa/specs/features/browser_ui/10_software_supply_chain_security/login/login_via_instance_wide_saml_sso_spec.rb": 20.638053878, - "qa/specs/features/browser_ui/10_software_supply_chain_security/login/oauth_login_with_github_spec.rb": 42.285240967, - "qa/specs/features/browser_ui/10_software_supply_chain_security/login/register_spec.rb": 102.53290345699999, - "qa/specs/features/browser_ui/10_software_supply_chain_security/project/project_access_token_spec.rb": 105.354748361, - "qa/specs/features/browser_ui/10_software_supply_chain_security/user/impersonation_token_spec.rb": 34.526505666, - "qa/specs/features/browser_ui/10_software_supply_chain_security/user/user_access_termination_spec.rb": 55.610993879999995, - "qa/specs/features/browser_ui/14_analytics/performance_bar_spec.rb": 47.220210135, - "qa/specs/features/browser_ui/14_analytics/service_ping_disabled_spec.rb": 17.573776535, - "qa/specs/features/browser_ui/1_manage/integrations/jenkins/jenkins_build_status_spec.rb": 85.893562972, - "qa/specs/features/browser_ui/1_manage/integrations/jira/jira_basic_integration_spec.rb": 54.360053926999996, - "qa/specs/features/browser_ui/1_manage/integrations/jira/jira_issue_import_spec.rb": 54.811785611, - "qa/specs/features/browser_ui/1_manage/integrations/pipeline_status_emails_spec.rb": 64.255117901, - "qa/specs/features/browser_ui/1_manage/migration/gitlab_migration_group_spec.rb": 55.861687965, - "qa/specs/features/browser_ui/1_manage/migration/gitlab_migration_user_contribution_reassignment_spec.rb": 181.911416618, - "qa/specs/features/browser_ui/2_plan/design_management/add_design_content_spec.rb": 25.777852256, - "qa/specs/features/browser_ui/2_plan/design_management/archive_design_content_spec.rb": 33.968196818, - "qa/specs/features/browser_ui/2_plan/design_management/modify_design_content_spec.rb": 25.254255532, - "qa/specs/features/browser_ui/2_plan/email/trigger_email_notification_spec.rb": 16.10203123, - "qa/specs/features/browser_ui/2_plan/issue/collapse_comments_in_discussions_spec.rb": 28.491427843, - "qa/specs/features/browser_ui/2_plan/issue/comment_issue_spec.rb": 32.526472383, - "qa/specs/features/browser_ui/2_plan/issue/create_issue_spec.rb": 216.68757634400004, - "qa/specs/features/browser_ui/2_plan/issue/custom_issue_template_spec.rb": 33.686072116, - "qa/specs/features/browser_ui/2_plan/issue/export_as_csv_spec.rb": 46.844171275, - "qa/specs/features/browser_ui/2_plan/issue/issue_suggestions_spec.rb": 27.425600497, - "qa/specs/features/browser_ui/2_plan/issue/mentions_spec.rb": 35.18644136, - "qa/specs/features/browser_ui/2_plan/issue/real_time_assignee_spec.rb": 39.257234624, - "qa/specs/features/browser_ui/2_plan/issue_boards/focus_mode_spec.rb": 22.977953001, - "qa/specs/features/browser_ui/2_plan/milestone/assign_milestone_spec.rb": 131.1235038, - "qa/specs/features/browser_ui/2_plan/milestone/create_group_milestone_spec.rb": 20.785159661, - "qa/specs/features/browser_ui/2_plan/milestone/create_project_milestone_spec.rb": 64.341025041, - "qa/specs/features/browser_ui/2_plan/project_wiki/project_based_content_creation_spec.rb": 71.525131869, - "qa/specs/features/browser_ui/2_plan/project_wiki/project_based_content_manipulation_spec.rb": 42.545566708, - "qa/specs/features/browser_ui/2_plan/project_wiki/project_based_directory_management_spec.rb": 21.408307458, - "qa/specs/features/browser_ui/2_plan/project_wiki/project_based_file_upload_spec.rb": 60.802825621, - "qa/specs/features/browser_ui/2_plan/project_wiki/project_based_list_spec.rb": 37.895293475, - "qa/specs/features/browser_ui/2_plan/project_wiki/project_based_page_deletion_spec.rb": 53.10814433, - "qa/specs/features/browser_ui/2_plan/related_issues/related_issues_spec.rb": 43.995752361, - "qa/specs/features/browser_ui/3_create/merge_request/add_batch_comments_in_merge_request_spec.rb": 113.891752866, - "qa/specs/features/browser_ui/3_create/merge_request/cherry_pick/cherry_pick_a_merge_spec.rb": 96.021465925, - "qa/specs/features/browser_ui/3_create/merge_request/cherry_pick/cherry_pick_commit_spec.rb": 33.546476528, - "qa/specs/features/browser_ui/3_create/merge_request/create_merge_request_spec.rb": 114.377061612, - "qa/specs/features/browser_ui/3_create/merge_request/merge_merge_request_from_fork_spec.rb": 76.401185183, - "qa/specs/features/browser_ui/3_create/merge_request/merge_request_set_to_auto_merge_spec.rb": 89.249417263, - "qa/specs/features/browser_ui/3_create/merge_request/rebase_merge_request_spec.rb": 100.928800686, + "qa/specs/features/api/10_software_supply_chain_security/group_access_token_spec.rb": 55.986507497000005, + "qa/specs/features/api/10_software_supply_chain_security/project_access_token_spec.rb": 95.99510531199999, + "qa/specs/features/api/12_systems/gitaly/automatic_failover_and_recovery_spec.rb": 105.025680653, + "qa/specs/features/api/12_systems/gitaly/backend_node_recovery_spec.rb": 117.271956587, + "qa/specs/features/api/12_systems/gitaly/distributed_reads_spec.rb": 115.538830796, + "qa/specs/features/api/12_systems/gitaly/gitaly_mtls_spec.rb": 23.506219002, + "qa/specs/features/api/1_manage/import/import_github_repo_spec.rb": 102.444887798, + "qa/specs/features/api/1_manage/integrations/webhook_events_spec.rb": 88.223669648, + "qa/specs/features/api/1_manage/migration/gitlab_migration_group_spec.rb": 59.054067834, + "qa/specs/features/api/1_manage/migration/gitlab_migration_issue_spec.rb": 211.91603988499998, + "qa/specs/features/api/1_manage/migration/gitlab_migration_pipeline_spec.rb": 99.236012186, + "qa/specs/features/api/1_manage/rate_limits_spec.rb": 20.307458919, + "qa/specs/features/api/2_plan/closes_issue_via_pushing_a_commit_spec.rb": 26.064993832, + "qa/specs/features/api/3_create/merge_request/push_options_mwps_spec.rb": 24.607449956, + "qa/specs/features/api/3_create/merge_request/push_options_remove_source_branch_spec.rb": 29.733459992, + "qa/specs/features/api/3_create/merge_request/push_options_spec.rb": 44.191856699, + "qa/specs/features/api/3_create/merge_request/view_merge_requests_spec.rb": 4.324227588, + "qa/specs/features/api/3_create/repository/add_list_delete_branches_spec.rb": 22.531714816, + "qa/specs/features/api/3_create/repository/commit_to_templated_project_spec.rb": 16.648754346, + "qa/specs/features/api/3_create/repository/default_branch_name_setting_spec.rb": 16.689796328, + "qa/specs/features/api/3_create/repository/files_spec.rb": 20.900362746, + "qa/specs/features/api/3_create/repository/project_archive_compare_spec.rb": 17.139648441, + "qa/specs/features/api/3_create/repository/push_postreceive_idempotent_spec.rb": 30.063760053, + "qa/specs/features/api/3_create/repository/storage_size_spec.rb": 32.208002541, + "qa/specs/features/api/3_create/repository/tag_revision_trigger_prereceive_hook_spec.rb": 16.570051916, + "qa/specs/features/api/4_verify/api_variable_inheritance_with_forward_pipeline_variables_spec.rb": 101.882578906, + "qa/specs/features/api/4_verify/cancel_pipeline_when_block_user_spec.rb": 26.143110228, + "qa/specs/features/api/4_verify/file_variable_spec.rb": 51.604454669000006, + "qa/specs/features/api/4_verify/job_downloads_artifacts_spec.rb": 52.761883797, + "qa/specs/features/api/8_monitor/metrics_spec.rb": 7.994300945999999, + "qa/specs/features/api/9_tenant_scale/user_inherited_access_spec.rb": 92.56175929700001, + "qa/specs/features/api/9_tenant_scale/users_spec.rb": 7.517052099, + "qa/specs/features/browser_ui/10_govern/login/log_in_spec.rb": 5.501264819, + "qa/specs/features/browser_ui/10_govern/project/project_access_token_spec.rb": 19.255498857, + "qa/specs/features/browser_ui/10_software_supply_chain_security/group/group_access_token_spec.rb": 27.346987433, + "qa/specs/features/browser_ui/10_software_supply_chain_security/login/2fa_recovery_spec.rb": 72.103145546, + "qa/specs/features/browser_ui/10_software_supply_chain_security/login/2fa_ssh_recovery_spec.rb": 67.685360543, + "qa/specs/features/browser_ui/10_software_supply_chain_security/login/log_in_spec.rb": 16.518583144, + "qa/specs/features/browser_ui/10_software_supply_chain_security/login/log_in_with_2fa_spec.rb": 103.747503687, + "qa/specs/features/browser_ui/10_software_supply_chain_security/login/log_into_gitlab_via_ldap_spec.rb": 3.630414747, + "qa/specs/features/browser_ui/10_software_supply_chain_security/login/log_into_mattermost_via_gitlab_spec.rb": 33.587231572, + "qa/specs/features/browser_ui/10_software_supply_chain_security/login/login_via_instance_wide_saml_sso_spec.rb": 24.134020043, + "qa/specs/features/browser_ui/10_software_supply_chain_security/login/oauth_login_with_github_spec.rb": 44.565257342, + "qa/specs/features/browser_ui/10_software_supply_chain_security/login/register_spec.rb": 123.40141550999999, + "qa/specs/features/browser_ui/10_software_supply_chain_security/project/project_access_token_spec.rb": 32.549480048, + "qa/specs/features/browser_ui/10_software_supply_chain_security/user/impersonation_token_spec.rb": 33.604157366, + "qa/specs/features/browser_ui/10_software_supply_chain_security/user/user_access_termination_spec.rb": 48.36846140499999, + "qa/specs/features/browser_ui/14_analytics/performance_bar_spec.rb": 44.393421006, + "qa/specs/features/browser_ui/14_analytics/service_ping_disabled_spec.rb": 18.755478154, + "qa/specs/features/browser_ui/1_manage/integrations/jenkins/jenkins_build_status_spec.rb": 73.94146909, + "qa/specs/features/browser_ui/1_manage/integrations/jira/jira_basic_integration_spec.rb": 74.074126857, + "qa/specs/features/browser_ui/1_manage/integrations/jira/jira_issue_import_spec.rb": 57.759919622, + "qa/specs/features/browser_ui/1_manage/integrations/pipeline_status_emails_spec.rb": 98.982033207, + "qa/specs/features/browser_ui/1_manage/migration/gitlab_migration_group_spec.rb": 68.77737532, + "qa/specs/features/browser_ui/1_manage/migration/gitlab_migration_user_contribution_reassignment_spec.rb": 226.724148246, + "qa/specs/features/browser_ui/2_plan/design_management/add_design_content_spec.rb": 27.022102342, + "qa/specs/features/browser_ui/2_plan/design_management/archive_design_content_spec.rb": 33.599834108, + "qa/specs/features/browser_ui/2_plan/design_management/modify_design_content_spec.rb": 23.949575188, + "qa/specs/features/browser_ui/2_plan/email/trigger_email_notification_spec.rb": 16.182167695, + "qa/specs/features/browser_ui/2_plan/issue/collapse_comments_in_discussions_spec.rb": 27.392979917, + "qa/specs/features/browser_ui/2_plan/issue/comment_issue_spec.rb": 30.688736942, + "qa/specs/features/browser_ui/2_plan/issue/create_issue_spec.rb": 191.724949288, + "qa/specs/features/browser_ui/2_plan/issue/custom_issue_template_spec.rb": 36.23987222, + "qa/specs/features/browser_ui/2_plan/issue/export_as_csv_spec.rb": 42.708311198, + "qa/specs/features/browser_ui/2_plan/issue/issue_suggestions_spec.rb": 30.999926927, + "qa/specs/features/browser_ui/2_plan/issue/mentions_spec.rb": 39.326301794, + "qa/specs/features/browser_ui/2_plan/issue/real_time_assignee_spec.rb": 35.2258463, + "qa/specs/features/browser_ui/2_plan/issue_boards/focus_mode_spec.rb": 21.420580941, + "qa/specs/features/browser_ui/2_plan/milestone/assign_milestone_spec.rb": 147.233284147, + "qa/specs/features/browser_ui/2_plan/milestone/create_group_milestone_spec.rb": 26.227822282, + "qa/specs/features/browser_ui/2_plan/milestone/create_project_milestone_spec.rb": 30.304092714, + "qa/specs/features/browser_ui/2_plan/project_wiki/project_based_content_creation_spec.rb": 80.97158702399999, + "qa/specs/features/browser_ui/2_plan/project_wiki/project_based_content_manipulation_spec.rb": 53.689956894, + "qa/specs/features/browser_ui/2_plan/project_wiki/project_based_directory_management_spec.rb": 19.97157403, + "qa/specs/features/browser_ui/2_plan/project_wiki/project_based_file_upload_spec.rb": 40.415613521, + "qa/specs/features/browser_ui/2_plan/project_wiki/project_based_list_spec.rb": 48.92551787400001, + "qa/specs/features/browser_ui/2_plan/project_wiki/project_based_page_deletion_spec.rb": 59.407216184000006, + "qa/specs/features/browser_ui/2_plan/related_issues/related_issues_spec.rb": 35.204347683, + "qa/specs/features/browser_ui/3_create/merge_request/add_batch_comments_in_merge_request_spec.rb": 107.79177428599999, + "qa/specs/features/browser_ui/3_create/merge_request/cherry_pick/cherry_pick_a_merge_spec.rb": 58.484658344, + "qa/specs/features/browser_ui/3_create/merge_request/cherry_pick/cherry_pick_commit_spec.rb": 39.589417478, + "qa/specs/features/browser_ui/3_create/merge_request/create_merge_request_spec.rb": 109.726436957, + "qa/specs/features/browser_ui/3_create/merge_request/merge_merge_request_from_fork_spec.rb": 50.121743641, + "qa/specs/features/browser_ui/3_create/merge_request/merge_request_set_to_auto_merge_spec.rb": 91.995121723, + "qa/specs/features/browser_ui/3_create/merge_request/rebase_merge_request_spec.rb": 64.518948272, "qa/specs/features/browser_ui/3_create/merge_request/revert/revert_commit_spec.rb": 42.619851143, - "qa/specs/features/browser_ui/3_create/merge_request/revert/reverting_merge_request_spec.rb": 55.013765404, - "qa/specs/features/browser_ui/3_create/merge_request/suggestions/batch_suggestion_spec.rb": 64.952121787, - "qa/specs/features/browser_ui/3_create/merge_request/suggestions/custom_commit_suggestion_spec.rb": 79.891230044, - "qa/specs/features/browser_ui/3_create/merge_request/view_merge_request_diff_patch_spec.rb": 82.441093198, - "qa/specs/features/browser_ui/3_create/repository/add_file_template_spec.rb": 14.378236701, - "qa/specs/features/browser_ui/3_create/repository/add_new_branch_rule_spec.rb": 32.130782561, - "qa/specs/features/browser_ui/3_create/repository/branch_with_unusual_name_spec.rb": 25.845700274, - "qa/specs/features/browser_ui/3_create/repository/clone_spec.rb": 34.888012304, - "qa/specs/features/browser_ui/3_create/repository/license_detection_spec.rb": 41.51682466, - "qa/specs/features/browser_ui/3_create/repository/protected_tags_spec.rb": 104.66453424800001, - "qa/specs/features/browser_ui/3_create/repository/protocol_v2_push_http_spec.rb": 20.983555698, - "qa/specs/features/browser_ui/3_create/repository/protocol_v2_push_ssh_spec.rb": 22.993484033, - "qa/specs/features/browser_ui/3_create/repository/push_http_private_token_spec.rb": 23.893908452, - "qa/specs/features/browser_ui/3_create/repository/push_mirroring_lfs_over_http_spec.rb": 81.681736675, - "qa/specs/features/browser_ui/3_create/repository/push_mirroring_over_http_spec.rb": 61.214462347, - "qa/specs/features/browser_ui/3_create/repository/push_over_http_file_size_spec.rb": 60.727788391000004, - "qa/specs/features/browser_ui/3_create/repository/push_over_http_spec.rb": 38.57783667, - "qa/specs/features/browser_ui/3_create/repository/push_over_ssh_file_size_spec.rb": 63.170487452, - "qa/specs/features/browser_ui/3_create/repository/push_over_ssh_spec.rb": 64.630203635, - "qa/specs/features/browser_ui/3_create/repository/push_protected_branch_spec.rb": 16.10712286, - "qa/specs/features/browser_ui/3_create/repository/push_to_canary_gitaly_spec.rb": 31.979930263, - "qa/specs/features/browser_ui/3_create/repository/ssh_key_support_create_spec.rb": 28.519392892, - "qa/specs/features/browser_ui/3_create/repository/ssh_key_support_delete_spec.rb": 26.933149902, - "qa/specs/features/browser_ui/3_create/repository/user_views_commit_diff_patch_spec.rb": 50.159584642, - "qa/specs/features/browser_ui/3_create/snippet/add_comment_to_snippet_spec.rb": 22.754370168, - "qa/specs/features/browser_ui/3_create/snippet/add_file_to_snippet_spec.rb": 29.298316186, - "qa/specs/features/browser_ui/3_create/snippet/clone_push_pull_personal_snippet_spec.rb": 64.27182472, - "qa/specs/features/browser_ui/3_create/snippet/clone_push_pull_project_snippet_spec.rb": 62.07191458, - "qa/specs/features/browser_ui/3_create/snippet/copy_snippet_file_contents_spec.rb": 25.67589362, - "qa/specs/features/browser_ui/3_create/snippet/create_personal_snippet_with_multiple_files_spec.rb": 15.017239204, - "qa/specs/features/browser_ui/3_create/snippet/create_project_snippet_with_multiple_files_spec.rb": 31.959883501, - "qa/specs/features/browser_ui/3_create/snippet/delete_file_from_snippet_spec.rb": 70.07439549200001, - "qa/specs/features/browser_ui/3_create/snippet/share_snippet_spec.rb": 54.225075163999996, - "qa/specs/features/browser_ui/3_create/source_editor/source_editor_toolbar_spec.rb": 14.889595088, - "qa/specs/features/browser_ui/3_create/web_ide/add_first_file_in_web_ide_spec.rb": 62.798912259000005, - "qa/specs/features/browser_ui/3_create/web_ide/add_new_directory_in_web_ide_spec.rb": 92.957960835, - "qa/specs/features/browser_ui/3_create/web_ide/closing_web_ide_with_unsaved_changes_spec.rb": 58.134480258, - "qa/specs/features/browser_ui/3_create/web_ide/settings_sync_web_ide_spec.rb": 224.76173036, - "qa/specs/features/browser_ui/3_create/web_ide/upload_new_file_in_web_ide_spec.rb": 101.464650804, - "qa/specs/features/browser_ui/4_verify/ci_components_catalog/ci_catalog_sorting_spec.rb": 85.150324922, - "qa/specs/features/browser_ui/4_verify/ci_components_catalog/release_with_glab_spec.rb": 148.492802659, - "qa/specs/features/browser_ui/4_verify/ci_components_catalog/release_with_release_cli_spec.rb": 120.764399925, - "qa/specs/features/browser_ui/4_verify/ci_components_catalog/run_component_in_project_pipeline_spec.rb": 48.187835077, - "qa/specs/features/browser_ui/4_verify/ci_job_artifacts/expose_job_artifacts_in_mr_spec.rb": 54.072714141, - "qa/specs/features/browser_ui/4_verify/ci_job_artifacts/job_artifacts_access_keyword_spec.rb": 271.749112954, - "qa/specs/features/browser_ui/4_verify/ci_job_artifacts/unlocking_job_artifacts_across_pipelines_spec.rb": 270.71534863700003, - "qa/specs/features/browser_ui/4_verify/ci_project_artifacts/user_can_bulk_delete_artifacts_spec.rb": 61.125103701, - "qa/specs/features/browser_ui/4_verify/ci_variable/pipeline_with_protected_variable_spec.rb": 212.325257005, - "qa/specs/features/browser_ui/4_verify/ci_variable/raw_variables_defined_in_yaml_spec.rb": 44.14739695, - "qa/specs/features/browser_ui/4_verify/ci_variable/ui_variable_inheritable_when_forward_pipeline_variables_true_spec.rb": 72.589089386, - "qa/specs/features/browser_ui/4_verify/pipeline/include_local_config_file_paths_with_wildcard_spec.rb": 30.376025208, - "qa/specs/features/browser_ui/4_verify/pipeline/include_multiple_files_from_a_project_spec.rb": 68.093532799, - "qa/specs/features/browser_ui/4_verify/pipeline/include_multiple_files_from_multiple_projects_spec.rb": 43.62499226, - "qa/specs/features/browser_ui/4_verify/pipeline/parent_child_pipelines_independent_relationship_spec.rb": 60.09376902699999, - "qa/specs/features/browser_ui/4_verify/pipeline/pass_dotenv_variables_to_downstream_via_bridge_spec.rb": 54.043790938, - "qa/specs/features/browser_ui/4_verify/pipeline/run_pipeline_with_manual_jobs_spec.rb": 76.176077096, - "qa/specs/features/browser_ui/4_verify/pipeline/trigger_child_pipeline_with_manual_spec.rb": 52.206088476, - "qa/specs/features/browser_ui/4_verify/pipeline/trigger_matrix_spec.rb": 72.534261312, - "qa/specs/features/browser_ui/4_verify/pipeline/update_ci_file_with_pipeline_editor_spec.rb": 33.392652195, - "qa/specs/features/browser_ui/4_verify/runner/deprecated_registration_token_spec.rb": 22.851657633, - "qa/specs/features/browser_ui/4_verify/runner/deprecated_unregister_runner_spec.rb": 36.250127991, - "qa/specs/features/browser_ui/4_verify/runner/fleet_visibility/group_runner_counts_spec.rb": 26.619422719, - "qa/specs/features/browser_ui/4_verify/runner/fleet_visibility/group_runner_status_counts_spec.rb": 22.59406119, - "qa/specs/features/browser_ui/4_verify/runner/register_group_runner_spec.rb": 21.472004247, - "qa/specs/features/browser_ui/4_verify/runner/register_project_runner_spec.rb": 43.832828383, - "qa/specs/features/browser_ui/4_verify/runner/unregister_runner_spec.rb": 24.179718406, - "qa/specs/features/browser_ui/4_verify/testing/endpoint_coverage_spec.rb": 47.871990355, - "qa/specs/features/browser_ui/5_package/container_registry/self_managed/container_registry_spec.rb": 269.282216189, - "qa/specs/features/browser_ui/5_package/dependency_proxy/dependency_proxy_spec.rb": 174.844673718, - "qa/specs/features/browser_ui/5_package/package_registry/composer_registry_spec.rb": 49.721526131, - "qa/specs/features/browser_ui/5_package/package_registry/conan_repository_spec.rb": 75.395842204, - "qa/specs/features/browser_ui/5_package/package_registry/generic_repository_spec.rb": 67.784632993, - "qa/specs/features/browser_ui/5_package/package_registry/helm_registry_spec.rb": 260.286185412, - "qa/specs/features/browser_ui/5_package/package_registry/maven/maven_group_level_spec.rb": 525.1930924119999, - "qa/specs/features/browser_ui/5_package/package_registry/maven/maven_project_level_spec.rb": 307.710512085, - "qa/specs/features/browser_ui/5_package/package_registry/maven_gradle_repository_spec.rb": 232.929718352, - "qa/specs/features/browser_ui/5_package/package_registry/npm/npm_group_level_spec.rb": 310.39579476, - "qa/specs/features/browser_ui/5_package/package_registry/npm/npm_instance_level_spec.rb": 316.27485285299997, - "qa/specs/features/browser_ui/5_package/package_registry/pypi_repository_spec.rb": 90.51188421, - "qa/specs/features/browser_ui/6_deploy/deploy_key/add_deploy_key_spec.rb": 30.893006255, - "qa/specs/features/browser_ui/6_deploy/deploy_key/clone_using_deploy_key_spec.rb": 208.511493083, - "qa/specs/features/browser_ui/6_deploy/deploy_token/add_deploy_token_spec.rb": 8.157398722, - "qa/specs/features/browser_ui/8_monitor/alert_management/alert_management_spec.rb": 225.388929252, - "qa/specs/features/browser_ui/8_monitor/alert_management/email_notification_for_alert_spec.rb": 111.0771654, - "qa/specs/features/browser_ui/9_tenant_scale/group/create_group_with_mattermost_team_spec.rb": 14.244899635, - "qa/specs/features/browser_ui/9_tenant_scale/group/group_member_access_request_spec.rb": 76.866928209, - "qa/specs/features/browser_ui/9_tenant_scale/group/transfer_project_spec.rb": 30.904438436, - "qa/specs/features/browser_ui/9_tenant_scale/project/add_project_member_spec.rb": 39.495862767, - "qa/specs/features/browser_ui/9_tenant_scale/project/create_project_badge_spec.rb": 27.413835705, - "qa/specs/features/browser_ui/9_tenant_scale/project/create_project_spec.rb": 66.923942924, - "qa/specs/features/browser_ui/9_tenant_scale/project/dashboard_images_spec.rb": 21.078388665, - "qa/specs/features/browser_ui/9_tenant_scale/project/invite_group_to_project_spec.rb": 71.23141282099999, - "qa/specs/features/browser_ui/9_tenant_scale/project/project_owner_permissions_spec.rb": 176.78927446499998, - "qa/specs/features/browser_ui/9_tenant_scale/project/view_project_activity_spec.rb": 33.385142455, - "qa/specs/features/browser_ui/9_tenant_scale/user/follow_user_activity_spec.rb": 32.043511714, - "qa/specs/features/browser_ui/9_tenant_scale/user/parent_group_access_termination_spec.rb": 44.283543879, - "qa/specs/features/browser_ui/9_tenant_scale/user/user_inherited_access_spec.rb": 42.238688241000006, - "qa/specs/features/ee/api/10_software_supply_chain_security/compliance_pipeline_spec.rb": 42.390892266, - "qa/specs/features/ee/api/10_software_supply_chain_security/instance_audit_event_streaming_spec.rb": 23.76915889, - "qa/specs/features/ee/api/10_software_supply_chain_security/user/minimal_access_user_spec.rb": 80.383429911, - "qa/specs/features/ee/api/17_foundations/elasticsearch/advanced_global_advanced_syntax_search_spec.rb": 117.488848241, - "qa/specs/features/ee/api/17_foundations/elasticsearch/elasticsearch_api_spec.rb": 25.61302783, - "qa/specs/features/ee/api/17_foundations/elasticsearch/index_tests/blob_index_spec.rb": 108.426553772, - "qa/specs/features/ee/api/17_foundations/elasticsearch/index_tests/commit_index_spec.rb": 20.79489988, - "qa/specs/features/ee/api/17_foundations/elasticsearch/index_tests/issue_index_spec.rb": 59.445564036, - "qa/specs/features/ee/api/17_foundations/elasticsearch/index_tests/merge_request_index_spec.rb": 63.033179036, - "qa/specs/features/ee/api/17_foundations/elasticsearch/index_tests/note_index_spec.rb": 45.471914002, - "qa/specs/features/ee/api/17_foundations/elasticsearch/index_tests/user_index_spec.rb": 66.870891997, - "qa/specs/features/ee/api/1_manage/import/import_github_repo_spec.rb": 95.121990797, - "qa/specs/features/ee/api/1_manage/integrations/group_webhook_events_spec.rb": 6.066587687, - "qa/specs/features/ee/api/1_manage/migration/gitlab_migration_group_spec.rb": 77.157374724, - "qa/specs/features/ee/api/2_plan/epics_milestone_dates_spec.rb": 93.71528054499998, - "qa/specs/features/ee/api/3_create/code_suggestions_spec.rb": 53.280741922000004, - "qa/specs/features/ee/browser_ui/10_software_supply_chain_security/group/group_audit_event_streaming_spec.rb": 47.040846014, - "qa/specs/features/ee/browser_ui/10_software_supply_chain_security/group/group_audit_logs_1_spec.rb": 165.45270212600002, - "qa/specs/features/ee/browser_ui/10_software_supply_chain_security/group/restrict_by_ip_address_spec.rb": 129.071853434, - "qa/specs/features/ee/browser_ui/10_software_supply_chain_security/project/project_audit_logs_spec.rb": 152.86826896699998, - "qa/specs/features/ee/browser_ui/10_software_supply_chain_security/user/minimal_access_user_spec.rb": 25.989457065, - "qa/specs/features/ee/browser_ui/11_fulfillment/license/cloud_activation_spec.rb": 18.737125486, - "qa/specs/features/ee/browser_ui/11_fulfillment/license/license_spec.rb": 10.800785706, - "qa/specs/features/ee/browser_ui/11_fulfillment/utilization/user_registration_billing_spec.rb": 18.554956627, - "qa/specs/features/ee/browser_ui/13_secure/cvs_dependency_scanning_spec.rb": 167.092594258, - "qa/specs/features/ee/browser_ui/13_secure/on_demand_dast_spec.rb": 174.186045766, - "qa/specs/features/ee/browser_ui/13_secure/secret_push_protection_spec.rb": 139.08979382, - "qa/specs/features/ee/browser_ui/16_ai_powered/duo_chat/duo_chat_spec.rb": 12.837081114, - "qa/specs/features/ee/browser_ui/17_foundations/elasticsearch_reindexing_spec.rb": 301.592762749, - "qa/specs/features/ee/browser_ui/18_security_risk_management/change_vulnerability_status_spec.rb": 135.786045422, - "qa/specs/features/ee/browser_ui/18_security_risk_management/create_merge_request_with_secure_spec.rb": 101.197980741, - "qa/specs/features/ee/browser_ui/18_security_risk_management/dismissed_vulnerabilities_in_security_widget_spec.rb": 86.726138438, - "qa/specs/features/ee/browser_ui/18_security_risk_management/export_vulnerability_report_spec.rb": 14.915845606, - "qa/specs/features/ee/browser_ui/18_security_risk_management/fix_vulnerability_workflow_spec.rb": 139.802555867, - "qa/specs/features/ee/browser_ui/18_security_risk_management/group_pipeline_execution_policy_spec.rb": 182.720663913, - "qa/specs/features/ee/browser_ui/18_security_risk_management/project_security_dashboard_spec.rb": 72.12046239899999, - "qa/specs/features/ee/browser_ui/18_security_risk_management/scan_execution_policy_vulnerabilities_spec.rb": 164.814060179, - "qa/specs/features/ee/browser_ui/18_security_risk_management/scan_result_policy_vulnerabilities_spec.rb": 115.975812044, - "qa/specs/features/ee/browser_ui/18_security_risk_management/security_policies_spec.rb": 105.829106183, - "qa/specs/features/ee/browser_ui/18_security_risk_management/security_reports_spec.rb": 329.398306759, - "qa/specs/features/ee/browser_ui/18_security_risk_management/vulnerabilities_jira_integration_spec.rb": 24.422920471, - "qa/specs/features/ee/browser_ui/18_security_risk_management/vulnerability_management_spec.rb": 327.435227469, - "qa/specs/features/ee/browser_ui/1_manage/integrations/jira_issues_list_spec.rb": 67.84711143, - "qa/specs/features/ee/browser_ui/2_plan/analytics/contribution_analytics_spec.rb": 44.045388704, - "qa/specs/features/ee/browser_ui/2_plan/analytics/mr_analytics_spec.rb": 49.605608008, - "qa/specs/features/ee/browser_ui/2_plan/analytics/value_stream_analytics_spec.rb": 31.945088677999998, - "qa/specs/features/ee/browser_ui/2_plan/burndown_chart/burndown_chart_spec.rb": 12.425744862, - "qa/specs/features/ee/browser_ui/2_plan/custom_email/custom_email_spec.rb": 21.275432512, - "qa/specs/features/ee/browser_ui/2_plan/epic/epics_management_spec.rb": 163.06910596, - "qa/specs/features/ee/browser_ui/2_plan/epic/promote_issue_to_epic_spec.rb": 43.010970875, - "qa/specs/features/ee/browser_ui/2_plan/epic/roadmap_spec.rb": 17.212945005, - "qa/specs/features/ee/browser_ui/2_plan/group_wiki/create_group_wiki_page_spec.rb": 25.130000334, - "qa/specs/features/ee/browser_ui/2_plan/group_wiki/delete_group_wiki_page_spec.rb": 11.061300879, - "qa/specs/features/ee/browser_ui/2_plan/group_wiki/file_upload_group_wiki_page_spec.rb": 27.601030025, - "qa/specs/features/ee/browser_ui/2_plan/insights/default_insights_spec.rb": 29.769898859, - "qa/specs/features/ee/browser_ui/2_plan/issue/default_issue_template_spec.rb": 37.399222131, - "qa/specs/features/ee/browser_ui/2_plan/issue_boards/configurable_issue_board_spec.rb": 15.641959559, - "qa/specs/features/ee/browser_ui/2_plan/issue_boards/configure_issue_board_by_label_spec.rb": 31.445921866, - "qa/specs/features/ee/browser_ui/2_plan/issue_boards/create_group_issue_board_spec.rb": 19.505610728, - "qa/specs/features/ee/browser_ui/2_plan/issue_boards/group_issue_boards_spec.rb": 27.690979316, - "qa/specs/features/ee/browser_ui/2_plan/issue_boards/project_issue_boards_spec.rb": 53.215695225, - "qa/specs/features/ee/browser_ui/2_plan/issue_boards/read_only_board_configuration_spec.rb": 32.967628635, - "qa/specs/features/ee/browser_ui/2_plan/issue_boards/sum_of_issues_weights_spec.rb": 24.847033452, - "qa/specs/features/ee/browser_ui/2_plan/issues_analytics/issues_analytics_spec.rb": 23.914737033, - "qa/specs/features/ee/browser_ui/2_plan/issues_weight/issue_weight_visualization_spec.rb": 33.033353934, - "qa/specs/features/ee/browser_ui/2_plan/iterations/assign_group_iteration_spec.rb": 28.489613854, - "qa/specs/features/ee/browser_ui/2_plan/iterations/create_group_iteration_spec.rb": 52.327733579, - "qa/specs/features/ee/browser_ui/2_plan/multiple_assignees_for_issues/four_assignees_spec.rb": 44.814552858, - "qa/specs/features/ee/browser_ui/2_plan/multiple_assignees_for_issues/more_than_four_assignees_spec.rb": 74.028492433, - "qa/specs/features/ee/browser_ui/2_plan/scoped_labels/editing_scoped_labels_spec.rb": 32.664653309, - "qa/specs/features/ee/browser_ui/3_create/merge_request/approval_rules_spec.rb": 93.612982487, - "qa/specs/features/ee/browser_ui/3_create/merge_request/default_merge_request_template_spec.rb": 32.723992507, - "qa/specs/features/ee/browser_ui/3_create/repository/assign_code_owners_spec.rb": 80.569115631, - "qa/specs/features/ee/browser_ui/3_create/repository/code_owners_spec.rb": 35.770031326, - "qa/specs/features/ee/browser_ui/3_create/repository/file_locking_spec.rb": 153.268375593, - "qa/specs/features/ee/browser_ui/3_create/repository/group_file_template_spec.rb": 29.675254965, - "qa/specs/features/ee/browser_ui/3_create/repository/merge_with_code_owner_in_root_group_spec.rb": 107.143626342, - "qa/specs/features/ee/browser_ui/3_create/repository/merge_with_code_owner_in_subgroup_spec.rb": 161.04737367899997, - "qa/specs/features/ee/browser_ui/3_create/repository/prevent_forking_outside_group_spec.rb": 76.99618838, - "qa/specs/features/ee/browser_ui/3_create/repository/project_templates_spec.rb": 120.47068899499999, - "qa/specs/features/ee/browser_ui/3_create/repository/pull_mirroring_over_http_spec.rb": 29.40459859, - "qa/specs/features/ee/browser_ui/3_create/repository/pull_mirroring_over_ssh_with_key_spec.rb": 54.89428058, - "qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb": 316.353969016, - "qa/specs/features/ee/browser_ui/3_create/repository/restrict_push_protected_branch_spec.rb": 248.123834232, - "qa/specs/features/ee/browser_ui/3_create/web_ide/code_suggestions_in_web_ide_spec.rb": 178.833741725, - "qa/specs/features/ee/browser_ui/4_verify/multi-project_pipelines_spec.rb": 49.828861862, - "qa/specs/features/ee/browser_ui/4_verify/parent_child_pipelines_dependent_relationship_spec.rb": 149.992160427, - "qa/specs/features/ee/browser_ui/4_verify/pipeline_for_merged_result_spec.rb": 42.619210116, - "qa/specs/features/ee/browser_ui/4_verify/pipeline_subscription_with_group_owned_project_spec.rb": 38.96152773, - "qa/specs/features/ee/browser_ui/8_monitor/incident_management/incident_quick_action_spec.rb": 18.222050133, - "qa/specs/features/ee/browser_ui/9_tenant_scale/share_group_with_group_spec.rb": 38.94106065 + "qa/specs/features/browser_ui/3_create/merge_request/revert/reverting_merge_request_spec.rb": 119.011992346, + "qa/specs/features/browser_ui/3_create/merge_request/suggestions/batch_suggestion_spec.rb": 72.973859571, + "qa/specs/features/browser_ui/3_create/merge_request/suggestions/custom_commit_suggestion_spec.rb": 55.490958561, + "qa/specs/features/browser_ui/3_create/merge_request/view_merge_request_diff_patch_spec.rb": 59.591413927000005, + "qa/specs/features/browser_ui/3_create/repository/add_file_template_spec.rb": 31.896742286, + "qa/specs/features/browser_ui/3_create/repository/add_new_branch_rule_spec.rb": 22.013382561, + "qa/specs/features/browser_ui/3_create/repository/branch_with_unusual_name_spec.rb": 24.255446708, + "qa/specs/features/browser_ui/3_create/repository/clone_spec.rb": 33.628161299, + "qa/specs/features/browser_ui/3_create/repository/license_detection_spec.rb": 38.667805976, + "qa/specs/features/browser_ui/3_create/repository/protected_tags_spec.rb": 135.167009489, + "qa/specs/features/browser_ui/3_create/repository/protocol_v2_push_http_spec.rb": 14.510380366, + "qa/specs/features/browser_ui/3_create/repository/protocol_v2_push_ssh_spec.rb": 21.062992441, + "qa/specs/features/browser_ui/3_create/repository/push_http_private_token_spec.rb": 30.560765635, + "qa/specs/features/browser_ui/3_create/repository/push_mirroring_lfs_over_http_spec.rb": 69.133049878, + "qa/specs/features/browser_ui/3_create/repository/push_mirroring_over_http_spec.rb": 74.386765891, + "qa/specs/features/browser_ui/3_create/repository/push_over_http_file_size_spec.rb": 51.071661612999996, + "qa/specs/features/browser_ui/3_create/repository/push_over_http_spec.rb": 50.681500127999996, + "qa/specs/features/browser_ui/3_create/repository/push_over_ssh_file_size_spec.rb": 57.241255022000004, + "qa/specs/features/browser_ui/3_create/repository/push_over_ssh_spec.rb": 68.457801536, + "qa/specs/features/browser_ui/3_create/repository/push_protected_branch_spec.rb": 21.231989439, + "qa/specs/features/browser_ui/3_create/repository/push_to_canary_gitaly_spec.rb": 24.161292576, + "qa/specs/features/browser_ui/3_create/repository/ssh_key_support_create_spec.rb": 30.621314026, + "qa/specs/features/browser_ui/3_create/repository/ssh_key_support_delete_spec.rb": 23.329709009, + "qa/specs/features/browser_ui/3_create/repository/user_views_commit_diff_patch_spec.rb": 50.765923844, + "qa/specs/features/browser_ui/3_create/snippet/add_comment_to_snippet_spec.rb": 30.15168315, + "qa/specs/features/browser_ui/3_create/snippet/add_file_to_snippet_spec.rb": 41.99589691, + "qa/specs/features/browser_ui/3_create/snippet/clone_push_pull_personal_snippet_spec.rb": 45.672228015, + "qa/specs/features/browser_ui/3_create/snippet/clone_push_pull_project_snippet_spec.rb": 63.493726026000004, + "qa/specs/features/browser_ui/3_create/snippet/copy_snippet_file_contents_spec.rb": 15.23259039, + "qa/specs/features/browser_ui/3_create/snippet/create_personal_snippet_with_multiple_files_spec.rb": 23.75466285, + "qa/specs/features/browser_ui/3_create/snippet/create_project_snippet_with_multiple_files_spec.rb": 26.126468368, + "qa/specs/features/browser_ui/3_create/snippet/delete_file_from_snippet_spec.rb": 34.016896848, + "qa/specs/features/browser_ui/3_create/snippet/share_snippet_spec.rb": 19.354254304999998, + "qa/specs/features/browser_ui/3_create/source_editor/source_editor_toolbar_spec.rb": 22.073854035, + "qa/specs/features/browser_ui/3_create/web_ide/add_first_file_in_web_ide_spec.rb": 77.404387589, + "qa/specs/features/browser_ui/3_create/web_ide/add_new_directory_in_web_ide_spec.rb": 94.463644547, + "qa/specs/features/browser_ui/3_create/web_ide/closing_web_ide_with_unsaved_changes_spec.rb": 30.580542109, + "qa/specs/features/browser_ui/3_create/web_ide/settings_sync_web_ide_spec.rb": 214.947925859, + "qa/specs/features/browser_ui/3_create/web_ide/upload_new_file_in_web_ide_spec.rb": 179.374701936, + "qa/specs/features/browser_ui/4_verify/ci_components_catalog/ci_catalog_sorting_spec.rb": 87.44306045799999, + "qa/specs/features/browser_ui/4_verify/ci_components_catalog/release_with_glab_spec.rb": 133.412130663, + "qa/specs/features/browser_ui/4_verify/ci_components_catalog/release_with_release_cli_spec.rb": 160.44759120499998, + "qa/specs/features/browser_ui/4_verify/ci_components_catalog/run_component_in_project_pipeline_spec.rb": 38.555187054, + "qa/specs/features/browser_ui/4_verify/ci_job_artifacts/expose_job_artifacts_in_mr_spec.rb": 46.880668887, + "qa/specs/features/browser_ui/4_verify/ci_job_artifacts/job_artifacts_access_keyword_spec.rb": 242.06279905199997, + "qa/specs/features/browser_ui/4_verify/ci_job_artifacts/unlocking_job_artifacts_across_pipelines_spec.rb": 270.823142799, + "qa/specs/features/browser_ui/4_verify/ci_project_artifacts/user_can_bulk_delete_artifacts_spec.rb": 60.846353213, + "qa/specs/features/browser_ui/4_verify/ci_variable/pipeline_with_protected_variable_spec.rb": 162.678259978, + "qa/specs/features/browser_ui/4_verify/ci_variable/raw_variables_defined_in_yaml_spec.rb": 35.52694225, + "qa/specs/features/browser_ui/4_verify/ci_variable/ui_variable_inheritable_when_forward_pipeline_variables_true_spec.rb": 75.564626407, + "qa/specs/features/browser_ui/4_verify/pipeline/include_local_config_file_paths_with_wildcard_spec.rb": 28.19214171, + "qa/specs/features/browser_ui/4_verify/pipeline/include_multiple_files_from_a_project_spec.rb": 40.724605633, + "qa/specs/features/browser_ui/4_verify/pipeline/include_multiple_files_from_multiple_projects_spec.rb": 66.15629568, + "qa/specs/features/browser_ui/4_verify/pipeline/parent_child_pipelines_independent_relationship_spec.rb": 61.381938155, + "qa/specs/features/browser_ui/4_verify/pipeline/pass_dotenv_variables_to_downstream_via_bridge_spec.rb": 54.030389654, + "qa/specs/features/browser_ui/4_verify/pipeline/run_pipeline_with_manual_jobs_spec.rb": 67.174006431, + "qa/specs/features/browser_ui/4_verify/pipeline/trigger_child_pipeline_with_manual_spec.rb": 49.054119867, + "qa/specs/features/browser_ui/4_verify/pipeline/trigger_matrix_spec.rb": 39.902980952, + "qa/specs/features/browser_ui/4_verify/pipeline/update_ci_file_with_pipeline_editor_spec.rb": 56.093351699, + "qa/specs/features/browser_ui/4_verify/runner/deprecated_registration_token_spec.rb": 21.540832606, + "qa/specs/features/browser_ui/4_verify/runner/deprecated_unregister_runner_spec.rb": 28.48518882, + "qa/specs/features/browser_ui/4_verify/runner/fleet_visibility/group_runner_counts_spec.rb": 35.390574858, + "qa/specs/features/browser_ui/4_verify/runner/fleet_visibility/group_runner_status_counts_spec.rb": 20.496156941, + "qa/specs/features/browser_ui/4_verify/runner/register_group_runner_spec.rb": 25.631017185, + "qa/specs/features/browser_ui/4_verify/runner/register_project_runner_spec.rb": 39.982659926, + "qa/specs/features/browser_ui/4_verify/runner/unregister_runner_spec.rb": 24.72155451, + "qa/specs/features/browser_ui/4_verify/testing/endpoint_coverage_spec.rb": 61.2427085, + "qa/specs/features/browser_ui/5_package/container_registry/self_managed/container_registry_spec.rb": 241.324342913, + "qa/specs/features/browser_ui/5_package/dependency_proxy/dependency_proxy_spec.rb": 180.15962901199998, + "qa/specs/features/browser_ui/5_package/package_registry/composer_registry_spec.rb": 77.239396383, + "qa/specs/features/browser_ui/5_package/package_registry/conan_repository_spec.rb": 93.81690755, + "qa/specs/features/browser_ui/5_package/package_registry/generic_repository_spec.rb": 92.363120955, + "qa/specs/features/browser_ui/5_package/package_registry/helm_registry_spec.rb": 260.700592972, + "qa/specs/features/browser_ui/5_package/package_registry/maven/maven_group_level_spec.rb": 545.33303569, + "qa/specs/features/browser_ui/5_package/package_registry/maven/maven_project_level_spec.rb": 321.79091710399996, + "qa/specs/features/browser_ui/5_package/package_registry/maven_gradle_repository_spec.rb": 263.129310262, + "qa/specs/features/browser_ui/5_package/package_registry/npm/npm_group_level_spec.rb": 317.709443547, + "qa/specs/features/browser_ui/5_package/package_registry/npm/npm_instance_level_spec.rb": 281.751187874, + "qa/specs/features/browser_ui/5_package/package_registry/pypi_repository_spec.rb": 86.369992361, + "qa/specs/features/browser_ui/6_deploy/deploy_key/add_deploy_key_spec.rb": 39.971712895, + "qa/specs/features/browser_ui/6_deploy/deploy_key/clone_using_deploy_key_spec.rb": 231.38846549099998, + "qa/specs/features/browser_ui/6_deploy/deploy_token/add_deploy_token_spec.rb": 8.726697009, + "qa/specs/features/browser_ui/8_monitor/alert_management/alert_management_spec.rb": 231.111079046, + "qa/specs/features/browser_ui/8_monitor/alert_management/email_notification_for_alert_spec.rb": 86.05390039299999, + "qa/specs/features/browser_ui/9_tenant_scale/group/create_group_with_mattermost_team_spec.rb": 22.108621041, + "qa/specs/features/browser_ui/9_tenant_scale/group/group_member_access_request_spec.rb": 74.168973405, + "qa/specs/features/browser_ui/9_tenant_scale/group/transfer_project_spec.rb": 30.045932109, + "qa/specs/features/browser_ui/9_tenant_scale/project/add_project_member_spec.rb": 34.413563431, + "qa/specs/features/browser_ui/9_tenant_scale/project/create_project_badge_spec.rb": 30.048491512, + "qa/specs/features/browser_ui/9_tenant_scale/project/create_project_spec.rb": 59.267392555, + "qa/specs/features/browser_ui/9_tenant_scale/project/dashboard_images_spec.rb": 34.666329003, + "qa/specs/features/browser_ui/9_tenant_scale/project/invite_group_to_project_spec.rb": 55.323716782999995, + "qa/specs/features/browser_ui/9_tenant_scale/project/project_owner_permissions_spec.rb": 149.91643493499998, + "qa/specs/features/browser_ui/9_tenant_scale/project/view_project_activity_spec.rb": 26.214815622, + "qa/specs/features/browser_ui/9_tenant_scale/user/follow_user_activity_spec.rb": 50.963180977, + "qa/specs/features/browser_ui/9_tenant_scale/user/parent_group_access_termination_spec.rb": 38.339947567, + "qa/specs/features/browser_ui/9_tenant_scale/user/user_inherited_access_spec.rb": 48.861384487, + "qa/specs/features/ee/api/10_software_supply_chain_security/compliance_pipeline_spec.rb": 43.440990292, + "qa/specs/features/ee/api/10_software_supply_chain_security/instance_audit_event_streaming_spec.rb": 22.954857635, + "qa/specs/features/ee/api/10_software_supply_chain_security/user/minimal_access_user_spec.rb": 84.743127627, + "qa/specs/features/ee/api/17_foundations/elasticsearch/advanced_global_advanced_syntax_search_spec.rb": 131.740413722, + "qa/specs/features/ee/api/17_foundations/elasticsearch/elasticsearch_api_spec.rb": 33.971217757000005, + "qa/specs/features/ee/api/17_foundations/elasticsearch/index_tests/blob_index_spec.rb": 23.571554416, + "qa/specs/features/ee/api/17_foundations/elasticsearch/index_tests/commit_index_spec.rb": 116.16382549, + "qa/specs/features/ee/api/17_foundations/elasticsearch/index_tests/issue_index_spec.rb": 57.785051616, + "qa/specs/features/ee/api/17_foundations/elasticsearch/index_tests/merge_request_index_spec.rb": 65.228165348, + "qa/specs/features/ee/api/17_foundations/elasticsearch/index_tests/note_index_spec.rb": 157.774199859, + "qa/specs/features/ee/api/17_foundations/elasticsearch/index_tests/user_index_spec.rb": 62.168856477, + "qa/specs/features/ee/api/1_manage/import/import_github_repo_spec.rb": 63.301241836, + "qa/specs/features/ee/api/1_manage/integrations/group_webhook_events_spec.rb": 7.3694943, + "qa/specs/features/ee/api/1_manage/migration/gitlab_migration_group_spec.rb": 76.400317307, + "qa/specs/features/ee/api/2_plan/epics_milestone_dates_spec.rb": 69.564054768, + "qa/specs/features/ee/api/3_create/code_suggestions_spec.rb": 46.505493056999995, + "qa/specs/features/ee/browser_ui/10_software_supply_chain_security/group/group_audit_event_streaming_spec.rb": 72.197868986, + "qa/specs/features/ee/browser_ui/10_software_supply_chain_security/group/group_audit_logs_1_spec.rb": 121.18512076, + "qa/specs/features/ee/browser_ui/10_software_supply_chain_security/group/restrict_by_ip_address_spec.rb": 141.317100357, + "qa/specs/features/ee/browser_ui/10_software_supply_chain_security/project/project_audit_logs_spec.rb": 140.119714679, + "qa/specs/features/ee/browser_ui/10_software_supply_chain_security/user/minimal_access_user_spec.rb": 25.79399521, + "qa/specs/features/ee/browser_ui/11_fulfillment/license/cloud_activation_spec.rb": 17.311105516, + "qa/specs/features/ee/browser_ui/11_fulfillment/license/license_spec.rb": 7.200833254, + "qa/specs/features/ee/browser_ui/11_fulfillment/utilization/user_registration_billing_spec.rb": 21.911992263, + "qa/specs/features/ee/browser_ui/13_secure/cvs_dependency_scanning_spec.rb": 35.020374589, + "qa/specs/features/ee/browser_ui/13_secure/on_demand_dast_spec.rb": 119.977930561, + "qa/specs/features/ee/browser_ui/13_secure/secret_push_protection_spec.rb": 130.203058997, + "qa/specs/features/ee/browser_ui/16_ai_powered/duo_chat/duo_chat_spec.rb": 14.72526846, + "qa/specs/features/ee/browser_ui/17_foundations/elasticsearch_reindexing_spec.rb": 167.796166376, + "qa/specs/features/ee/browser_ui/18_security_risk_management/change_vulnerability_status_spec.rb": 121.991266508, + "qa/specs/features/ee/browser_ui/18_security_risk_management/create_merge_request_with_secure_spec.rb": 78.439865892, + "qa/specs/features/ee/browser_ui/18_security_risk_management/dismissed_vulnerabilities_in_security_widget_spec.rb": 93.5359091, + "qa/specs/features/ee/browser_ui/18_security_risk_management/export_vulnerability_report_spec.rb": 27.487703354, + "qa/specs/features/ee/browser_ui/18_security_risk_management/fix_vulnerability_workflow_spec.rb": 139.650495452, + "qa/specs/features/ee/browser_ui/18_security_risk_management/group_pipeline_execution_policy_spec.rb": 255.702981259, + "qa/specs/features/ee/browser_ui/18_security_risk_management/project_security_dashboard_spec.rb": 74.987632228, + "qa/specs/features/ee/browser_ui/18_security_risk_management/scan_execution_policy_vulnerabilities_spec.rb": 94.210012774, + "qa/specs/features/ee/browser_ui/18_security_risk_management/scan_result_policy_vulnerabilities_spec.rb": 115.432053576, + "qa/specs/features/ee/browser_ui/18_security_risk_management/security_policies_spec.rb": 113.874328572, + "qa/specs/features/ee/browser_ui/18_security_risk_management/security_reports_spec.rb": 348.334892515, + "qa/specs/features/ee/browser_ui/18_security_risk_management/vulnerabilities_jira_integration_spec.rb": 31.197709445, + "qa/specs/features/ee/browser_ui/18_security_risk_management/vulnerability_management_spec.rb": 344.95113857, + "qa/specs/features/ee/browser_ui/1_manage/integrations/jira_issues_list_spec.rb": 72.672128346, + "qa/specs/features/ee/browser_ui/2_plan/analytics/contribution_analytics_spec.rb": 57.348968368, + "qa/specs/features/ee/browser_ui/2_plan/analytics/mr_analytics_spec.rb": 51.095337433, + "qa/specs/features/ee/browser_ui/2_plan/analytics/value_stream_analytics_spec.rb": 59.05700214, + "qa/specs/features/ee/browser_ui/2_plan/burndown_chart/burndown_chart_spec.rb": 31.343366911, + "qa/specs/features/ee/browser_ui/2_plan/custom_email/custom_email_spec.rb": 12.800758563, + "qa/specs/features/ee/browser_ui/2_plan/epic/epics_management_spec.rb": 154.99625520700002, + "qa/specs/features/ee/browser_ui/2_plan/epic/promote_issue_to_epic_spec.rb": 43.792671588, + "qa/specs/features/ee/browser_ui/2_plan/epic/roadmap_spec.rb": 9.24733226, + "qa/specs/features/ee/browser_ui/2_plan/group_wiki/create_group_wiki_page_spec.rb": 29.917966292, + "qa/specs/features/ee/browser_ui/2_plan/group_wiki/delete_group_wiki_page_spec.rb": 19.629283036, + "qa/specs/features/ee/browser_ui/2_plan/group_wiki/file_upload_group_wiki_page_spec.rb": 36.352454464, + "qa/specs/features/ee/browser_ui/2_plan/insights/default_insights_spec.rb": 32.036121495, + "qa/specs/features/ee/browser_ui/2_plan/issue/default_issue_template_spec.rb": 35.248433442, + "qa/specs/features/ee/browser_ui/2_plan/issue_boards/configurable_issue_board_spec.rb": 14.583747048, + "qa/specs/features/ee/browser_ui/2_plan/issue_boards/configure_issue_board_by_label_spec.rb": 36.780308425, + "qa/specs/features/ee/browser_ui/2_plan/issue_boards/create_group_issue_board_spec.rb": 20.78197115, + "qa/specs/features/ee/browser_ui/2_plan/issue_boards/group_issue_boards_spec.rb": 20.047759955, + "qa/specs/features/ee/browser_ui/2_plan/issue_boards/project_issue_boards_spec.rb": 44.781266336, + "qa/specs/features/ee/browser_ui/2_plan/issue_boards/read_only_board_configuration_spec.rb": 29.971507346, + "qa/specs/features/ee/browser_ui/2_plan/issue_boards/sum_of_issues_weights_spec.rb": 14.407249842, + "qa/specs/features/ee/browser_ui/2_plan/issues_analytics/issues_analytics_spec.rb": 21.731055588, + "qa/specs/features/ee/browser_ui/2_plan/issues_weight/issue_weight_visualization_spec.rb": 38.238879175, + "qa/specs/features/ee/browser_ui/2_plan/iterations/assign_group_iteration_spec.rb": 17.647174578, + "qa/specs/features/ee/browser_ui/2_plan/iterations/create_group_iteration_spec.rb": 49.659280914, + "qa/specs/features/ee/browser_ui/2_plan/multiple_assignees_for_issues/four_assignees_spec.rb": 48.302348051, + "qa/specs/features/ee/browser_ui/2_plan/multiple_assignees_for_issues/more_than_four_assignees_spec.rb": 61.326865516, + "qa/specs/features/ee/browser_ui/2_plan/scoped_labels/editing_scoped_labels_spec.rb": 17.395715596, + "qa/specs/features/ee/browser_ui/3_create/merge_request/approval_rules_spec.rb": 95.54773751, + "qa/specs/features/ee/browser_ui/3_create/merge_request/default_merge_request_template_spec.rb": 30.022617345, + "qa/specs/features/ee/browser_ui/3_create/repository/assign_code_owners_spec.rb": 39.102266946, + "qa/specs/features/ee/browser_ui/3_create/repository/code_owners_spec.rb": 47.163601333, + "qa/specs/features/ee/browser_ui/3_create/repository/file_locking_spec.rb": 158.53202570599998, + "qa/specs/features/ee/browser_ui/3_create/repository/group_file_template_spec.rb": 32.752464253, + "qa/specs/features/ee/browser_ui/3_create/repository/merge_with_code_owner_in_root_group_spec.rb": 116.17422385699999, + "qa/specs/features/ee/browser_ui/3_create/repository/merge_with_code_owner_in_subgroup_spec.rb": 155.884383514, + "qa/specs/features/ee/browser_ui/3_create/repository/prevent_forking_outside_group_spec.rb": 53.00430811, + "qa/specs/features/ee/browser_ui/3_create/repository/project_templates_spec.rb": 122.576451211, + "qa/specs/features/ee/browser_ui/3_create/repository/pull_mirroring_over_http_spec.rb": 50.37042949, + "qa/specs/features/ee/browser_ui/3_create/repository/pull_mirroring_over_ssh_with_key_spec.rb": 60.093352048, + "qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb": 354.754110151, + "qa/specs/features/ee/browser_ui/3_create/repository/restrict_push_protected_branch_spec.rb": 194.528614842, + "qa/specs/features/ee/browser_ui/3_create/web_ide/code_suggestions_in_web_ide_spec.rb": 90.242514495, + "qa/specs/features/ee/browser_ui/4_verify/multi-project_pipelines_spec.rb": 104.57082007, + "qa/specs/features/ee/browser_ui/4_verify/parent_child_pipelines_dependent_relationship_spec.rb": 77.571395869, + "qa/specs/features/ee/browser_ui/4_verify/pipeline_for_merged_result_spec.rb": 53.295240454, + "qa/specs/features/ee/browser_ui/4_verify/pipeline_subscription_with_group_owned_project_spec.rb": 62.960696511, + "qa/specs/features/ee/browser_ui/8_monitor/incident_management/incident_quick_action_spec.rb": 15.981222191, + "qa/specs/features/ee/browser_ui/9_tenant_scale/share_group_with_group_spec.rb": 49.656757377 } diff --git a/qa/qa/specs/features/browser_ui/4_verify/ci_job_artifacts/job_artifacts_access_keyword_spec.rb b/qa/qa/specs/features/browser_ui/4_verify/ci_job_artifacts/job_artifacts_access_keyword_spec.rb index 6b20fc08361..502aaaa9d29 100644 --- a/qa/qa/specs/features/browser_ui/4_verify/ci_job_artifacts/job_artifacts_access_keyword_spec.rb +++ b/qa/qa/specs/features/browser_ui/4_verify/ci_job_artifacts/job_artifacts_access_keyword_spec.rb @@ -31,8 +31,18 @@ module QA create_mr end + before do + # Ensure clean browser state + if defined?(Capybara.current_session) && Capybara.current_session.driver.browser + Capybara.current_session.reset! + Support::WaitForRequests.wait_for_requests + end + end + it "verifies artifact access for developer user with #{access_level} access", testcase: member_testcase do - Flow::Login.sign_in(as: developer_user) + Support::Retrier.retry_on_exception(max_attempts: 3, sleep_interval: 2) do + Flow::Login.sign_in(as: developer_user) + end merge_request.visit! @@ -42,6 +52,9 @@ module QA end if developer_access + Support::Waiter.wait_until(max_duration: 30) do + show.has_artifacts_dropdown? + end expect(show).to have_artifacts_dropdown else expect(show).to have_no_artifacts_dropdown @@ -50,7 +63,9 @@ module QA end it "verifies artifact access for non-member user with #{access_level} access", testcase: non_member_testcase do - Flow::Login.sign_in(as: non_member_user) + Support::Retrier.retry_on_exception(max_attempts: 3, sleep_interval: 2) do + Flow::Login.sign_in(as: non_member_user) + end merge_request.visit! @@ -60,6 +75,9 @@ module QA end if non_member_access + Support::Waiter.wait_until(max_duration: 30) do + show.has_artifacts_dropdown? + end expect(show).to have_artifacts_dropdown else expect(show).to have_no_artifacts_dropdown diff --git a/scripts/update-feature-categories b/scripts/update-feature-categories index 88520b9f95f..955b86a2ffc 100755 --- a/scripts/update-feature-categories +++ b/scripts/update-feature-categories @@ -17,8 +17,7 @@ response = http.request(request) stages_doc = YAML.safe_load(response.read_body) feature_categories = stages_doc["stages"].values .flat_map { |stage| stage["groups"].values } - .flat_map { |group| group["categories"] } - .select(&:itself) + .flat_map { |group| group["categories"] + group.fetch("maintained_categories", []) } .uniq .sort diff --git a/spec/controllers/projects/settings/merge_requests_controller_spec.rb b/spec/controllers/projects/settings/merge_requests_controller_spec.rb index 398fc97a00d..3feff2d5f41 100644 --- a/spec/controllers/projects/settings/merge_requests_controller_spec.rb +++ b/spec/controllers/projects/settings/merge_requests_controller_spec.rb @@ -29,6 +29,31 @@ RSpec.describe Projects::Settings::MergeRequestsController do sign_in(admin) end + context 'when it fails to update' do + before do + allow_next_instance_of(::Projects::UpdateService) do |service| + allow(service).to receive(:execute).and_return(status: :error, message: 'Some error has occurred') + end + end + + it 'renders show' do + controller.instance_variable_set(:@project, project) + + params = { + merge_method: :ff + } + + put :update, params: { + namespace_id: project.namespace, + project_id: project.id, + project: params + } + + expect(response).to render_template :show + expect(flash[:alert]).to eq('Some error has occurred') + end + end + it 'updates Fast Forward Merge attributes' do controller.instance_variable_set(:@project, project) diff --git a/spec/frontend/issues/show/components/incidents/incident_tabs_spec.js b/spec/frontend/issues/show/components/incidents/incident_tabs_spec.js index 5a49b29c458..60a9a126610 100644 --- a/spec/frontend/issues/show/components/incidents/incident_tabs_spec.js +++ b/spec/frontend/issues/show/components/incidents/incident_tabs_spec.js @@ -38,6 +38,14 @@ const defaultMocks = { $router, }; +beforeEach(() => { + gon.features = { hideIncidentManagementFeatures: false }; +}); + +afterEach(() => { + window.gon.features = {}; +}); + describe('Incident Tabs component', () => { let wrapper; @@ -209,4 +217,15 @@ describe('Incident Tabs component', () => { expect(findActiveTabs().at(0).text()).toBe(incidentTabsI18n.metricsTitle); }); }); + + describe('when hideIncidentManagementFeatures feature flag is enabled', () => { + beforeEach(() => { + gon.features = { hideIncidentManagementFeatures: true }; + mountComponent(); + }); + + it('does not render the timeline tab', () => { + expect(findTimelineTab().exists()).toBe(false); + }); + }); }); diff --git a/spec/frontend/work_items/components/design_management/design_management_widget_spec.js b/spec/frontend/work_items/components/design_management/design_management_widget_spec.js index 441860b5e64..e54a77326af 100644 --- a/spec/frontend/work_items/components/design_management/design_management_widget_spec.js +++ b/spec/frontend/work_items/components/design_management/design_management_widget_spec.js @@ -359,36 +359,61 @@ describe('DesignWidget', () => { getData: () => 'image.png', }; - beforeEach(() => { - createComponent({ - canPasteDesign: true, - }); - }); + describe('paste functionality based on design state and route', () => { + it('enables paste listener when there are no designs and not in design detail view', async () => { + const addEventListenerSpy = jest.spyOn(document, 'addEventListener'); - it('does not upload designs if canPasteDesign is false', () => { - createComponent({ - canPasteDesign: false, + createComponent({ + canPasteDesign: true, + canAddDesign: true, + designCollectionQueryHandler: allDesignsArchivedQueryHandler, + routeArg: MOCK_ROUTE, + }); + + await waitForPromises(); + + expect(addEventListenerSpy).toHaveBeenCalledWith('paste', expect.any(Function)); }); - const event = new Event('paste'); - event.clipboardData = defaultClipboardData; - event.preventDefault = jest.fn(); + it('disables paste listener when in design detail view', async () => { + const removeEventListenerSpy = jest.spyOn(document, 'removeEventListener'); - document.dispatchEvent(event); + createComponent({ + canPasteDesign: true, + canAddDesign: true, + designCollectionQueryHandler: oneDesignQueryHandler, + routeArg: { + path: '/designs/1', + query: {}, + }, + }); - expect(wrapper.emitted('upload')).toBeUndefined(); - }); + await waitForPromises(); - it('does not upload designs if component is destroyed', () => { - wrapper.destroy(); + expect(removeEventListenerSpy).toHaveBeenCalledWith('paste', expect.any(Function)); + }); - const event = new Event('paste'); - event.clipboardData = defaultClipboardData; + it('does not enable paste on mouseenter when in design detail view', async () => { + const addEventListenerSpy = jest.spyOn(document, 'addEventListener'); - document.dispatchEvent(event); + createComponent({ + canPasteDesign: true, + canAddDesign: true, + routeArg: { + path: '/designs/1', + query: {}, + }, + }); - // No emit should happen after destroy - expect(wrapper.emitted('upload')).toBeUndefined(); + await waitForPromises(); + + addEventListenerSpy.mockClear(); + + wrapper.trigger('mouseenter'); + await nextTick(); + + expect(addEventListenerSpy).not.toHaveBeenCalledWith('paste', expect.any(Function)); + }); }); describe('when canPasteDesign is true', () => { @@ -401,7 +426,78 @@ describe('DesignWidget', () => { global.Date.toISOString = mockDate.toISOString; }); - it('preserves original file name for non-default images', () => { + beforeEach(() => { + createComponent({ + canPasteDesign: true, + canAddDesign: true, + designCollectionQueryHandler: allDesignsArchivedQueryHandler, + }); + }); + + it('does not upload designs if canPasteDesign is false', () => { + createComponent({ + canPasteDesign: false, + canAddDesign: true, + designCollectionQueryHandler: allDesignsArchivedQueryHandler, + }); + + const event = new Event('paste'); + event.clipboardData = defaultClipboardData; + event.preventDefault = jest.fn(); + + document.dispatchEvent(event); + + expect(wrapper.emitted('upload')).toBeUndefined(); + }); + + it('does not upload designs if canAddDesign is false', () => { + createComponent({ + canPasteDesign: true, + canAddDesign: false, + designCollectionQueryHandler: allDesignsArchivedQueryHandler, + }); + + const event = new Event('paste'); + event.clipboardData = defaultClipboardData; + event.preventDefault = jest.fn(); + + document.dispatchEvent(event); + + expect(wrapper.emitted('upload')).toBeUndefined(); + }); + + it('does not upload designs if there are existing designs', async () => { + createComponent({ + canPasteDesign: true, + canAddDesign: true, + designCollectionQueryHandler: oneDesignQueryHandler, + }); + + await waitForPromises(); + + const event = new Event('paste'); + event.clipboardData = defaultClipboardData; + event.preventDefault = jest.fn(); + + document.dispatchEvent(event); + + expect(wrapper.emitted('upload')).toBeUndefined(); + }); + + it('does not upload designs if component is destroyed', () => { + wrapper.destroy(); + + const event = new Event('paste'); + event.clipboardData = defaultClipboardData; + + document.dispatchEvent(event); + + expect(wrapper.emitted('upload')).toBeUndefined(); + }); + + it('preserves original file name for non-default images', async () => { + await waitForPromises(); + const event = new Event('paste'); event.clipboardData = { files: [new File([new Blob()], 'custom.png', { type: 'image/png' })], @@ -414,7 +510,9 @@ describe('DesignWidget', () => { expect(wrapper.emitted('upload')[0][0][0].name).toBe('custom.png'); }); - it('renames a design with timestamp if it has default image.png filename', () => { + it('renames a design with timestamp if it has default image.png filename', async () => { + await waitForPromises(); + const event = new Event('paste'); event.clipboardData = defaultClipboardData; event.preventDefault = jest.fn(); @@ -425,7 +523,9 @@ describe('DesignWidget', () => { expect(wrapper.emitted('upload')[0][0][0].name).toBe(expectedFilename); }); - it('adds unique suffix for duplicate filenames', () => { + it('adds unique suffix for duplicate filenames', async () => { + await waitForPromises(); + const event = new Event('paste'); event.clipboardData = { files: [ @@ -448,7 +548,9 @@ describe('DesignWidget', () => { jest.restoreAllMocks(); }); - it('does not call upload with invalid paste', () => { + it('does not call upload with invalid paste', async () => { + await waitForPromises(); + const event = new Event('paste'); event.clipboardData = { items: [{ type: 'text/plain' }, { type: 'text' }], diff --git a/spec/graphql/resolvers/incident_management/timeline_events_resolver_spec.rb b/spec/graphql/resolvers/incident_management/timeline_events_resolver_spec.rb index 4d477490bd8..e36b9dc33df 100644 --- a/spec/graphql/resolvers/incident_management/timeline_events_resolver_spec.rb +++ b/spec/graphql/resolvers/incident_management/timeline_events_resolver_spec.rb @@ -26,36 +26,50 @@ RSpec.describe 'Resolvers::IncidentManagement::TimelineEventsResolver' do expect(resolver).to have_nullable_graphql_type(Types::IncidentManagement::TimelineEventType.connection_type) end - it 'returns timeline events', :aggregate_failures do - expect(resolved_timeline_events.length).to eq(2) - expect(resolved_timeline_events.first).to be_a(::IncidentManagement::TimelineEvent) - end - - context 'when user does not have permissions' do - let(:non_member) { create(:user) } - - subject(:resolved_timeline_events) { sync(resolve_timeline_events(args, current_user: non_member).to_a) } - + describe 'when feature flag `hide_incident_management_features` is disabled' do before do - project.project_feature.update!(issues_access_level: ProjectFeature::PRIVATE) + stub_feature_flags(hide_incident_management_features: false) end - it 'returns no timeline events' do - expect(resolved_timeline_events.length).to eq(0) + it 'returns timeline events', :aggregate_failures do + expect(resolved_timeline_events.length).to eq(2) + expect(resolved_timeline_events.first).to be_a(::IncidentManagement::TimelineEvent) + end + + context 'when user does not have permissions' do + let(:non_member) { create(:user) } + + subject(:resolved_timeline_events) { sync(resolve_timeline_events(args, current_user: non_member).to_a) } + + before do + project.project_feature.update!(issues_access_level: ProjectFeature::PRIVATE) + end + + it 'returns no timeline events' do + expect(resolved_timeline_events.length).to eq(0) + end + end + + context 'when resolving a single item' do + let(:resolver) { described_class.single } + + subject(:resolved_timeline_event) { sync(resolve_timeline_events(args, current_user: current_user)) } + + context 'when id given' do + let(:args) { { incident_id: incident.to_global_id, id: first_timeline_event.to_global_id } } + + it 'returns the timeline event' do + expect(resolved_timeline_event).to eq(first_timeline_event) + end + end end end - context 'when resolving a single item' do - let(:resolver) { described_class.single } - - subject(:resolved_timeline_event) { sync(resolve_timeline_events(args, current_user: current_user)) } - - context 'when id given' do - let(:args) { { incident_id: incident.to_global_id, id: first_timeline_event.to_global_id } } - - it 'returns the timeline event' do - expect(resolved_timeline_event).to eq(first_timeline_event) - end + describe 'when feature flag `hide_incident_management_features` is enabled' do + it 'raises error' do + result = resolve_timeline_events(args, current_user: current_user) + expect(result).to be_a(GraphQL::ExecutionError) + expect(result.message).to eq("Field 'incidentManagementTimelineEvents' doesn't exist on type 'Project'.") end end diff --git a/spec/lib/gitlab/pdf/security/group_vulnerabilities_history_spec.rb b/spec/lib/gitlab/pdf/security/group_vulnerabilities_history_spec.rb index 3a278f939f5..bc61e4ac353 100644 --- a/spec/lib/gitlab/pdf/security/group_vulnerabilities_history_spec.rb +++ b/spec/lib/gitlab/pdf/security/group_vulnerabilities_history_spec.rb @@ -4,30 +4,33 @@ require 'spec_helper' RSpec.describe Gitlab::PDF::Security::GroupVulnerabilitiesHistory, feature_category: :vulnerability_management do let(:pdf) { Prawn::Document.new } - # rubocop:disable Layout/LineLength -- data strings + let(:mock_svg) do + 'data%3Aimage%2Fsvg+xml%3Bcharset%3DUTF-8%2C%3Csvg+width%3D%22357%22+height%3D%2232%22%3E%0A%3C%2Fsvg%3E' + end + let(:data) do { charts: [ { - svg: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%22357%22%20height%3D%2232%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20baseProfile%3D%22full%22%20viewBox%3D%220%200%20357%2032%22%3E%0A%3Crect%20width%3D%22357%22%20height%3D%2232%22%20x%3D%220%22%20y%3D%220%22%20id%3D%220%22%20fill%3D%22none%22%20fill-opacity%3D%221%22%3E%3C%2Frect%3E%0A%3Cg%20clip-path%3D%22url(%23zr8-c0)%22%3E%0A%3Cpath%20d%3D%22M3%2029L14.7%2029L26.4%2029L38.1%2029L49.8%2029L61.5%2029L73.2%2029L84.9%2029L96.6%2029L108.3%2029L120%2029L131.7%2029L143.4%2029L155.1%2029L166.8%2029L178.5%2029L190.2%2029L201.9%2029L213.6%2029L225.3%2029L237%2029L248.7%2029L260.4%2029L272.1%2029L283.8%205.6743L295.5%205.6743L307.2%205.6743L318.9%205.6743L330.6%205.6743L342.3%205.6743L354%205.6743%22%20fill%3D%22none%22%20stroke%3D%22rgb(97%2C122%2C226)%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22bevel%22%3E%3C%2Fpath%3E%0A%3C%2Fg%3E%0A%3Cdefs%20%3E%0A%3CclipPath%20id%3D%22zr8-c0%22%3E%0A%3Cpath%20d%3D%22M2%202l353%200l0%2028l-353%200Z%22%20fill%3D%22%23000%22%3E%3C%2Fpath%3E%0A%3C%2FclipPath%3E%0A%3C%2Fdefs%3E%0A%3C%2Fsvg%3E", + svg: mock_svg, severity: "critical", current_count: 314, change_in_percent: "-" }, { - svg: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%22357%22%20height%3D%2232%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20baseProfile%3D%22full%22%20viewBox%3D%220%200%20357%2032%22%3E%0A%3Crect%20width%3D%22357%22%20height%3D%2232%22%20x%3D%220%22%20y%3D%220%22%20id%3D%220%22%20fill%3D%22none%22%20fill-opacity%3D%221%22%3E%3C%2Frect%3E%0A%3Cg%20clip-path%3D%22url(%23zr9-c0)%22%3E%0A%3Cpath%20d%3D%22M3%2029L14.7%2029L26.4%2029L38.1%2029L49.8%2029L61.5%2028.74L73.2%2028.74L84.9%2028.74L96.6%2028.74L108.3%2028.74L120%2028.74L131.7%2028.74L143.4%2028.74L155.1%2028.74L166.8%2028.74L178.5%2028.74L190.2%2028.74L201.9%2028.74L213.6%2028.74L225.3%2028.74L237%2028.74L248.7%2028.74L260.4%2028.74L272.1%2028.74L283.8%204.1267L295.5%204.1267L307.2%204.1267L318.9%204.1267L330.6%204.1267L342.3%204.1267L354%204.1267%22%20fill%3D%22none%22%20stroke%3D%22rgb(97%2C122%2C226)%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22bevel%22%3E%3C%2Fpath%3E%0A%3C%2Fg%3E%0A%3Cdefs%20%3E%0A%3CclipPath%20id%3D%22zr9-c0%22%3E%0A%3Cpath%20d%3D%22M2%202l353%200l0%2028l-353%200Z%22%20fill%3D%22%23000%22%3E%3C%2Fpath%3E%0A%3C%2FclipPath%3E%0A%3C%2Fdefs%3E%0A%3C%2Fsvg%3E", + svg: mock_svg, severity: "high", current_count: 1148, change_in_percent: "-" }, { - svg: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%22357%22%20height%3D%2232%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20baseProfile%3D%22full%22%20viewBox%3D%220%200%20357%2032%22%3E%0A%3Crect%20width%3D%22357%22%20height%3D%2232%22%20x%3D%220%22%20y%3D%220%22%20id%3D%220%22%20fill%3D%22none%22%20fill-opacity%3D%221%22%3E%3C%2Frect%3E%0A%3Cg%20clip-path%3D%22url(%23zr10-c0)%22%3E%0A%3Cpath%20d%3D%22M3%2029L14.7%2029L26.4%2029L38.1%2029L49.8%2029L61.5%2027.2811L73.2%2027.2811L84.9%2027.2811L96.6%2027.2811L108.3%2027.2811L120%2027.2811L131.7%2027.2811L143.4%2027.2811L155.1%2027.2811L166.8%2027.2811L178.5%2027.2811L190.2%2027.2811L201.9%2027.2811L213.6%2027.2811L225.3%2027.2811L237%2027.2811L248.7%2027.2811L260.4%2027.2811L272.1%2027.2811L283.8%206.0767L295.5%206.0767L307.2%206.0767L318.9%206.0767L330.6%206.0767L342.3%206.0767L354%206.0767%22%20fill%3D%22none%22%20stroke%3D%22rgb(97%2C122%2C226)%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22bevel%22%3E%3C%2Fpath%3E%0A%3C%2Fg%3E%0A%3Cdefs%20%3E%0A%3CclipPath%20id%3D%22zr10-c0%22%3E%0A%3Cpath%20d%3D%22M2%202l353%200l0%2028l-353%200Z%22%20fill%3D%22%23000%22%3E%3C%2Fpath%3E%0A%3C%2FclipPath%3E%0A%3C%2Fdefs%3E%0A%3C%2Fsvg%3E", + svg: mock_svg, severity: "medium", current_count: 1587, change_in_percent: "-" }, { - svg: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%22357%22%20height%3D%2232%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20baseProfile%3D%22full%22%20viewBox%3D%220%200%20357%2032%22%3E%0A%3Crect%20width%3D%22357%22%20height%3D%2232%22%20x%3D%220%22%20y%3D%220%22%20id%3D%220%22%20fill%3D%22none%22%20fill-opacity%3D%221%22%3E%3C%2Frect%3E%0A%3Cg%20clip-path%3D%22url(%23zr11-c0)%22%3E%0A%3Cpath%20d%3D%22M3%2029L14.7%2029L26.4%2029L38.1%2029L49.8%2029L61.5%2027.96L73.2%2027.96L84.9%2027.96L96.6%2027.96L108.3%2027.96L120%2027.96L131.7%2027.96L143.4%2027.96L155.1%2027.96L166.8%2027.96L178.5%2027.96L190.2%2027.96L201.9%2027.96L213.6%2027.96L225.3%2027.96L237%2027.96L248.7%2027.96L260.4%2027.96L272.1%2027.96L283.8%203L295.5%203L307.2%203L318.9%203L330.6%203L342.3%203L354%203%22%20fill%3D%22none%22%20stroke%3D%22rgb(97%2C122%2C226)%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22bevel%22%3E%3C%2Fpath%3E%0A%3C%2Fg%3E%0A%3Cdefs%20%3E%0A%3CclipPath%20id%3D%22zr11-c0%22%3E%0A%3Cpath%20d%3D%22M2%202l353%200l0%2028l-353%200Z%22%20fill%3D%22%23000%22%3E%3C%2Fpath%3E%0A%3C%2FclipPath%3E%0A%3C%2Fdefs%3E%0A%3C%2Fsvg%3E", + svg: mock_svg, severity: "low", current_count: 150, change_in_percent: "-" @@ -37,7 +40,6 @@ RSpec.describe Gitlab::PDF::Security::GroupVulnerabilitiesHistory, feature_categ selected_day_range: 30 }.with_indifferent_access end - # rubocop:enable Layout/LineLength describe '.render' do subject(:render) { described_class.render(pdf, data: data) } diff --git a/spec/requests/api/graphql/project/incident_management/timeline_events_spec.rb b/spec/requests/api/graphql/project/incident_management/timeline_events_spec.rb index dd383226e17..bd0c800492b 100644 --- a/spec/requests/api/graphql/project/incident_management/timeline_events_spec.rb +++ b/spec/requests/api/graphql/project/incident_management/timeline_events_spec.rb @@ -72,6 +72,7 @@ RSpec.describe 'getting incident timeline events', feature_category: :incident_m before do project.add_guest(current_user) + stub_feature_flags(hide_incident_management_features: false) post_graphql(query, current_user: current_user) end diff --git a/spec/services/ci/workloads/run_workload_service_spec.rb b/spec/services/ci/workloads/run_workload_service_spec.rb index 1a4af5ebd42..f0525dcc143 100644 --- a/spec/services/ci/workloads/run_workload_service_spec.rb +++ b/spec/services/ci/workloads/run_workload_service_spec.rb @@ -20,6 +20,7 @@ RSpec.describe Ci::Workloads::RunWorkloadService, feature_category: :continuous_ end let(:create_branch) { false } + let(:source_branch) { nil } describe '#execute' do subject(:execute) do @@ -29,7 +30,8 @@ RSpec.describe Ci::Workloads::RunWorkloadService, feature_category: :continuous_ current_user: user, source: source, workload_definition: workload_definition, - create_branch: create_branch + create_branch: create_branch, + source_branch: source_branch ).execute end @@ -91,6 +93,56 @@ RSpec.describe Ci::Workloads::RunWorkloadService, feature_category: :continuous_ workload = result.payload expect(workload.branch_name).to match(%r{workloads/\w+}) end + + context 'when source_branch exists' do + let(:source_branch) { 'feature-branch' } + + before do + project.repository.create_branch(source_branch, project.default_branch) + end + + it 'creates a new branch from the specified source_branch' do + result = execute + + expect(result).to be_success + + workload = result.payload + expect(workload.branch_name).to match(%r{workloads/\w+}) + + new_branch = project.repository.find_branch(workload.branch_name) + source_commit = project.repository.find_branch(source_branch).dereferenced_target.sha + + expect(new_branch.dereferenced_target.sha).to eq(source_commit) + end + end + + context 'when source_branch does not exist' do + let(:source_branch) { 'non-existent-branch' } + + it 'creates a new branch from the default branch' do + expect(project.repository).to receive(:add_branch) + .with(user, match(%r{^workloads/\w+}), + project.default_branch_or_main, skip_ci: true) + .and_call_original + + result = execute + expect(result).to be_success + + workload = result.payload + expect(workload.branch_name).to match(%r{workloads/\w+}) + end + end + + context 'when source_branch is nil' do + it 'creates a new branch from the default branch' do + expect(project.repository).to receive(:add_branch) + .with(user, match(%r{^workloads/\w+}), project.default_branch_or_main, skip_ci: true) + .and_call_original + + result = execute + expect(result).to be_success + end + end end end diff --git a/spec/services/commits/tag_service_spec.rb b/spec/services/commits/tag_service_spec.rb index 25aa84276c3..5dc8808360a 100644 --- a/spec/services/commits/tag_service_spec.rb +++ b/spec/services/commits/tag_service_spec.rb @@ -8,6 +8,13 @@ RSpec.describe Commits::TagService, feature_category: :source_code_management do let(:commit) { project.commit } + def find_notes(action) + commit + .notes + .joins(:system_note_metadata) + .where(system_note_metadata: { action: action }) + end + before do project.add_maintainer(user) end @@ -31,14 +38,7 @@ RSpec.describe Commits::TagService, feature_category: :source_code_management do end end - def find_notes(action) - commit - .notes - .joins(:system_note_metadata) - .where(system_note_metadata: { action: action }) - end - - context 'valid params' do + context 'with valid params' do let(:opts) do { tag_name: 'v1.2.3', @@ -46,13 +46,6 @@ RSpec.describe Commits::TagService, feature_category: :source_code_management do } end - def find_notes(action) - commit - .notes - .joins(:system_note_metadata) - .where(system_note_metadata: { action: action }) - end - context 'when tagging succeeds' do it 'returns a hash with the :success status and created tag' do result = service.execute(commit) @@ -89,7 +82,7 @@ RSpec.describe Commits::TagService, feature_category: :source_code_management do end end - context 'invalid params' do + context 'with invalid params' do let(:opts) do {} end diff --git a/yarn.lock b/yarn.lock index 3cd9852f8be..829e024d01e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1452,10 +1452,10 @@ stylelint-declaration-strict-value "1.10.4" stylelint-scss "6.0.0" -"@gitlab/svgs@3.134.0": - version "3.134.0" - resolved "https://registry.yarnpkg.com/@gitlab/svgs/-/svgs-3.134.0.tgz#d377ed04560e096155e6f2ff96532b32f65f5db9" - integrity sha512-j80CQRNCdBIF0bykqWHCafYh/NaZg67Z5aZ9Whq28V+Od9l1KTn4Qb1SEd71hRLfDEkFQibdBc4L+CVVR98Q/w== +"@gitlab/svgs@3.137.0": + version "3.137.0" + resolved "https://registry.yarnpkg.com/@gitlab/svgs/-/svgs-3.137.0.tgz#4c72fd69376ba0d294a29b465f1d2e0386d8bbd4" + integrity sha512-cNUNTRijXo68uxjgBnqr45BXGK6Mr4wWz6DoZI71hDhGQSauE0n8+z8SPxSWC7SCh8OU4aVa0B9K8QFAzxjjCw== "@gitlab/ui@114.8.1": version "114.8.1"