diff options
78 files changed, 217 insertions, 191 deletions
diff --git a/app/assets/javascripts/super_sidebar/components/user_bar.vue b/app/assets/javascripts/super_sidebar/components/user_bar.vue index 2ffaac530c0..ca4412fc504 100644 --- a/app/assets/javascripts/super_sidebar/components/user_bar.vue +++ b/app/assets/javascripts/super_sidebar/components/user_bar.vue @@ -192,7 +192,7 @@ export default { data-track-property="nav_core_menu" /> </div> - <div class="gl-px-3 gl-pt-2 gl-pb-3"> + <div class="gl-px-3 gl-pb-3"> <button id="super-sidebar-search" v-gl-tooltip.bottom.hover.noninteractive.ds500.html="searchTooltip" diff --git a/app/assets/javascripts/vue_shared/components/ci_badge_link.vue b/app/assets/javascripts/vue_shared/components/ci_badge_link.vue index 9aa7a7d6c49..9a3f1672d01 100644 --- a/app/assets/javascripts/vue_shared/components/ci_badge_link.vue +++ b/app/assets/javascripts/vue_shared/components/ci_badge_link.vue @@ -125,7 +125,7 @@ export default { :href="detailsPath" :size="badgeSize" :variant="badgeStyles.variant" - :data-testid="`ci-badge-${status.text}`" + data-testid="ci-badge-link" data-qa-selector="status_badge_link" @click="$emit('ciStatusBadgeClick')" > diff --git a/app/models/group.rb b/app/models/group.rb index 944566bce94..51980735bfe 100644 --- a/app/models/group.rb +++ b/app/models/group.rb @@ -804,7 +804,9 @@ class Group < Namespace end def first_owner - owners.first || parent&.first_owner || owner + first_owner_member = all_group_members.all_owners.order(:user_id).first + + first_owner_member&.user || parent&.first_owner || owner end def default_branch_name diff --git a/db/post_migrate/20230822195852_remove_pa_jitsu_related_settings.rb b/db/post_migrate/20230822195852_remove_pa_jitsu_related_settings.rb new file mode 100644 index 00000000000..0f76ba20ad6 --- /dev/null +++ b/db/post_migrate/20230822195852_remove_pa_jitsu_related_settings.rb @@ -0,0 +1,62 @@ +# frozen_string_literal: true + +class RemovePaJitsuRelatedSettings < Gitlab::Database::Migration[2.1] + disable_ddl_transaction! + + def up + remove_column :application_settings, :encrypted_product_analytics_clickhouse_connection_string, if_exists: true + remove_column :application_settings, :encrypted_product_analytics_clickhouse_connection_string_iv, if_exists: true + remove_column :application_settings, :encrypted_jitsu_administrator_password, if_exists: true + remove_column :application_settings, :encrypted_jitsu_administrator_password_iv, if_exists: true + remove_column :application_settings, :jitsu_host, if_exists: true + remove_column :application_settings, :jitsu_project_xid, if_exists: true + remove_column :application_settings, :jitsu_administrator_email, if_exists: true + + remove_column :project_settings, :encrypted_product_analytics_clickhouse_connection_string, if_exists: true + remove_column :project_settings, :encrypted_product_analytics_clickhouse_connection_string_iv, if_exists: true + remove_column :project_settings, :encrypted_jitsu_administrator_password, if_exists: true + remove_column :project_settings, :encrypted_jitsu_administrator_password_iv, if_exists: true + remove_column :project_settings, :jitsu_key, if_exists: true + remove_column :project_settings, :jitsu_host, if_exists: true + remove_column :project_settings, :jitsu_project_xid, if_exists: true + remove_column :project_settings, :jitsu_administrator_email, if_exists: true + end + + def down + add_column :application_settings, :encrypted_product_analytics_clickhouse_connection_string, + :binary, if_not_exists: true + add_column :application_settings, :encrypted_product_analytics_clickhouse_connection_string_iv, + :binary, if_not_exists: true + add_column :application_settings, :encrypted_jitsu_administrator_password, + :binary, if_not_exists: true + add_column :application_settings, :encrypted_jitsu_administrator_password_iv, + :binary, if_not_exists: true + + add_column :application_settings, :jitsu_host, :text, if_not_exists: true + add_column :application_settings, :jitsu_project_xid, :text, if_not_exists: true + add_column :application_settings, :jitsu_administrator_email, :text, if_not_exists: true + + add_column :project_settings, :encrypted_product_analytics_clickhouse_connection_string, + :binary, if_not_exists: true + add_column :project_settings, :encrypted_product_analytics_clickhouse_connection_string_iv, + :binary, if_not_exists: true + add_column :project_settings, :encrypted_jitsu_administrator_password, + :binary, if_not_exists: true + add_column :project_settings, :encrypted_jitsu_administrator_password_iv, + :binary, if_not_exists: true + + add_column :project_settings, :jitsu_key, :text + add_column :project_settings, :jitsu_host, :text, if_not_exists: true + add_column :project_settings, :jitsu_project_xid, :text, if_not_exists: true + add_column :project_settings, :jitsu_administrator_email, :text, if_not_exists: true + + add_text_limit :application_settings, :jitsu_host, 255 + add_text_limit :application_settings, :jitsu_project_xid, 255 + add_text_limit :application_settings, :jitsu_administrator_email, 255 + + add_text_limit :project_settings, :jitsu_key, 100 + add_text_limit :project_settings, :jitsu_host, 255 + add_text_limit :project_settings, :jitsu_project_xid, 255 + add_text_limit :project_settings, :jitsu_administrator_email, 255 + end +end diff --git a/db/schema_migrations/20230822195852 b/db/schema_migrations/20230822195852 new file mode 100644 index 00000000000..2410010c76e --- /dev/null +++ b/db/schema_migrations/20230822195852 @@ -0,0 +1 @@ +a4550541c62863f6f0c90da330ec90f9a0b903dcc20ef697cc9f187124bdc9cc
\ No newline at end of file diff --git a/db/structure.sql b/db/structure.sql index e6583275fbe..4ba01a8903e 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -11842,11 +11842,6 @@ CREATE TABLE application_settings ( cube_api_base_url text, encrypted_cube_api_key bytea, encrypted_cube_api_key_iv bytea, - jitsu_host text, - jitsu_project_xid text, - jitsu_administrator_email text, - encrypted_jitsu_administrator_password bytea, - encrypted_jitsu_administrator_password_iv bytea, dashboard_limit_enabled boolean DEFAULT false NOT NULL, dashboard_limit integer DEFAULT 0 NOT NULL, can_create_group boolean DEFAULT true NOT NULL, @@ -11873,8 +11868,6 @@ CREATE TABLE application_settings ( user_defaults_to_private_profile boolean DEFAULT false NOT NULL, allow_possible_spam boolean DEFAULT false NOT NULL, default_syntax_highlighting_theme integer DEFAULT 1 NOT NULL, - encrypted_product_analytics_clickhouse_connection_string bytea, - encrypted_product_analytics_clickhouse_connection_string_iv bytea, search_max_shard_size_gb integer DEFAULT 50 NOT NULL, search_max_docs_denominator integer DEFAULT 5000000 NOT NULL, search_min_docs_before_rollover integer DEFAULT 100000 NOT NULL, @@ -11980,15 +11973,12 @@ CREATE TABLE application_settings ( CONSTRAINT check_b8c74ea5b3 CHECK ((char_length(deactivation_email_additional_text) <= 1000)), CONSTRAINT check_d03919528d CHECK ((char_length(container_registry_vendor) <= 255)), CONSTRAINT check_d820146492 CHECK ((char_length(spam_check_endpoint_url) <= 255)), - CONSTRAINT check_dea8792229 CHECK ((char_length(jitsu_host) <= 255)), CONSTRAINT check_e2692d7523 CHECK ((char_length(default_preferred_language) <= 32)), CONSTRAINT check_e2dd6e290a CHECK ((char_length(jira_connect_application_key) <= 255)), CONSTRAINT check_e5024c8801 CHECK ((char_length(elasticsearch_username) <= 255)), CONSTRAINT check_e5aba18f02 CHECK ((char_length(container_registry_version) <= 255)), - CONSTRAINT check_ec3ca9aa8d CHECK ((char_length(jitsu_administrator_email) <= 255)), CONSTRAINT check_ef6176834f CHECK ((char_length(encrypted_cloud_license_auth_token_iv) <= 255)), - CONSTRAINT check_f6563bc000 CHECK ((char_length(arkose_labs_verify_api_url) <= 255)), - CONSTRAINT check_fc732c181e CHECK ((char_length(jitsu_project_xid) <= 255)) + CONSTRAINT check_f6563bc000 CHECK ((char_length(arkose_labs_verify_api_url) <= 255)) ); COMMENT ON COLUMN application_settings.content_validation_endpoint_url IS 'JiHu-specific column'; @@ -21628,7 +21618,6 @@ CREATE TABLE project_settings ( selective_code_owner_removals boolean DEFAULT false NOT NULL, issue_branch_template text, show_diff_preview_in_email boolean DEFAULT true NOT NULL, - jitsu_key text, suggested_reviewers_enabled boolean DEFAULT false NOT NULL, only_allow_merge_if_all_status_checks_passed boolean DEFAULT false NOT NULL, mirror_branch_regex text, @@ -21638,14 +21627,7 @@ CREATE TABLE project_settings ( pages_unique_domain text, runner_registration_enabled boolean DEFAULT true, product_analytics_instrumentation_key text, - jitsu_host text, - jitsu_project_xid text, - jitsu_administrator_email text, - encrypted_jitsu_administrator_password bytea, - encrypted_jitsu_administrator_password_iv bytea, product_analytics_data_collector_host text, - encrypted_product_analytics_clickhouse_connection_string bytea, - encrypted_product_analytics_clickhouse_connection_string_iv bytea, cube_api_base_url text, encrypted_cube_api_key bytea, encrypted_cube_api_key_iv bytea, @@ -21653,7 +21635,6 @@ CREATE TABLE project_settings ( encrypted_product_analytics_configurator_connection_string_iv bytea, pages_multiple_versions_enabled boolean DEFAULT false NOT NULL, CONSTRAINT check_1a30456322 CHECK ((char_length(pages_unique_domain) <= 63)), - CONSTRAINT check_2981f15877 CHECK ((char_length(jitsu_key) <= 100)), CONSTRAINT check_3a03e7557a CHECK ((char_length(previous_default_branch) <= 4096)), CONSTRAINT check_3ca5cbffe6 CHECK ((char_length(issue_branch_template) <= 255)), CONSTRAINT check_4b142e71f3 CHECK ((char_length(product_analytics_data_collector_host) <= 255)), @@ -21661,10 +21642,7 @@ CREATE TABLE project_settings ( CONSTRAINT check_acb7fad2f9 CHECK ((char_length(product_analytics_instrumentation_key) <= 255)), CONSTRAINT check_b09644994b CHECK ((char_length(squash_commit_template) <= 500)), CONSTRAINT check_bde223416c CHECK ((show_default_award_emojis IS NOT NULL)), - CONSTRAINT check_ea15225016 CHECK ((char_length(jitsu_project_xid) <= 255)), CONSTRAINT check_eaf7cfb6a7 CHECK ((char_length(merge_commit_template) <= 500)), - CONSTRAINT check_f4499c0fa4 CHECK ((char_length(jitsu_host) <= 255)), - CONSTRAINT check_f5495015f5 CHECK ((char_length(jitsu_administrator_email) <= 255)), CONSTRAINT check_f9df7bcee2 CHECK ((char_length(cube_api_base_url) <= 512)) ); diff --git a/doc/administration/geo/replication/troubleshooting.md b/doc/administration/geo/replication/troubleshooting.md index 4e4aa8c0e7d..da09356f03d 100644 --- a/doc/administration/geo/replication/troubleshooting.md +++ b/doc/administration/geo/replication/troubleshooting.md @@ -287,7 +287,7 @@ sudo gitlab-rake gitlab:geo:check Checking Geo ... Finished ``` - Ensure you have added the secondary site in the **Main menu > Admin > Geo > Sites** on the web interface for the **primary** site. + Ensure you have added the secondary site in the Admin Area under **Geo > Sites** on the web interface for the **primary** site. Also ensure you entered the `gitlab_rails['geo_node_name']` when adding the secondary site in the Admin Area of the **primary** site. In GitLab 12.3 and earlier, edit the secondary site in the Admin Area of the **primary** diff --git a/doc/administration/geo/setup/two_single_node_sites.md b/doc/administration/geo/setup/two_single_node_sites.md index 6e7cd89d3a4..da7ec455c6a 100644 --- a/doc/administration/geo/setup/two_single_node_sites.md +++ b/doc/administration/geo/setup/two_single_node_sites.md @@ -552,8 +552,9 @@ You must manually replicate the secret file across all of your secondary sites, ``` 1. Navigate to the primary node GitLab instance: - 1. On the top bar, select **Main menu > Admin**. - 1. On the left sidebar, select **Geo > Sites**. + 1. On the left sidebar, select **Search or go to**. + 1. Select **Admin Area**. + 1. Select **Geo > Sites**. 1. Select **Add site**. ![Add secondary site](../replication/img/adding_a_secondary_v15_8.png) @@ -607,8 +608,9 @@ If you convert an existing site to Geo, you should check that the clone method i On the primary site: -1. On the top bar, select **Main menu > Admin**. -1. On the left sidebar, select **Settings > General**. +1. On the left sidebar, select **Search or go to**. +1. Select **Admin Area**. +1. Select **Settings > General**. 1. Expand **Visibility and access controls**. 1. If you use Git over SSH: 1. Ensure **Enabled Git access protocols** is set to **Both SSH and HTTP(S)**. @@ -622,8 +624,9 @@ the primary site. After you sign in: -1. On the top bar, select **Main menu > Admin**. -1. On the left sidebar, select **Geo > Sites**. +1. On the left sidebar, select **Search or go to**. +1. Select **Admin Area**. +1. Select **Geo > Sites**. 1. Verify that the site is correctly identified as a secondary Geo site, and that Geo is enabled. diff --git a/doc/administration/gitaly/recovery.md b/doc/administration/gitaly/recovery.md index aa487917ef0..4f5f82aa571 100644 --- a/doc/administration/gitaly/recovery.md +++ b/doc/administration/gitaly/recovery.md @@ -39,7 +39,7 @@ To use a different name for the replacement node for a Gitaly Cluster that has [ For example: ```shell - $ sudo /opt/gitlab/embedded/bin/praefect -config /var/opt/gitlab/praefect/config.toml set-replication-factor -virtual-storage default -repository @hashed/3f/db/3fdba35f04dc8c462986c992bcf875546257113072a909c162f7e470e581e278.git -replication-factor 2 + $ sudo /opt/gitlab/embedded/bin/praefect -config /var/opt/gitlab/praefect/config.toml set-replication-factor -virtual-storage default -relative-path @hashed/3f/db/3fdba35f04dc8c462986c992bcf875546257113072a909c162f7e470e581e278.git -replication-factor 2 current assignments: gitaly-1, gitaly-2 ``` @@ -224,7 +224,7 @@ repository so care must be taken. ```shell sudo /opt/gitlab/embedded/bin/praefect -config /var/opt/gitlab/praefect/config.toml accept-dataloss --virtual-storage <virtual-storage> -repository <relative-path> -authoritative-storage <storage-name> +-virtual-storage <virtual-storage> -relative-path <relative-path> -authoritative-storage <storage-name> ``` ### Enable writes or accept data loss @@ -237,7 +237,7 @@ Praefect provides the following subcommands to re-enable writes or accept data l of the up-to-date nodes back online, you might have to accept data loss: ```shell -sudo /opt/gitlab/embedded/bin/praefect -config /var/opt/gitlab/praefect/config.toml accept-dataloss -virtual-storage <virtual-storage> -repository <relative-path> -authoritative-storage <storage-name> +sudo /opt/gitlab/embedded/bin/praefect -config /var/opt/gitlab/praefect/config.toml accept-dataloss -virtual-storage <virtual-storage> -relative-path <relative-path> -authoritative-storage <storage-name> ``` When accepting data loss, Praefect: @@ -338,7 +338,7 @@ The `remove-repository` Praefect sub-command removes a repository from a Gitaly In GitLab 14.6 and later, by default, the command operates in dry-run mode. In earlier versions, the command didn't support dry-run mode. For example: ```shell -sudo /opt/gitlab/embedded/bin/praefect -config /var/opt/gitlab/praefect/config.toml remove-repository -virtual-storage <virtual-storage> -repository <repository> +sudo /opt/gitlab/embedded/bin/praefect -config /var/opt/gitlab/praefect/config.toml remove-repository -virtual-storage <virtual-storage> -relative-path <repository> ``` - Replace `<virtual-storage>` with the name of the virtual storage containing the repository. @@ -349,7 +349,7 @@ sudo /opt/gitlab/embedded/bin/praefect -config /var/opt/gitlab/praefect/config.t - In GitLab 14.6 and later, add `-apply` to run the command outside of dry-run mode and remove the repository. For example: ```shell - sudo /opt/gitlab/embedded/bin/praefect -config /var/opt/gitlab/praefect/config.toml remove-repository -virtual-storage <virtual-storage> -repository <repository> -apply + sudo /opt/gitlab/embedded/bin/praefect -config /var/opt/gitlab/praefect/config.toml remove-repository -virtual-storage <virtual-storage> -relative-path <repository> -apply ``` - `-virtual-storage` is the virtual storage the repository is located in. Virtual storages are configured in `/etc/gitlab/gitlab.rb` under `praefect['configuration']['virtual_storage]` and looks like the following: @@ -440,7 +440,7 @@ inaccessible. The `track-repository` Praefect sub-command adds repositories on disk to the Praefect tracking database to be tracked. ```shell -sudo /opt/gitlab/embedded/bin/praefect -config /var/opt/gitlab/praefect/config.toml track-repository -virtual-storage <virtual-storage> -authoritative-storage <storage-name> -repository <repository> -replicate-immediately +sudo /opt/gitlab/embedded/bin/praefect -config /var/opt/gitlab/praefect/config.toml track-repository -virtual-storage <virtual-storage> -authoritative-storage <storage-name> -relative-path <repository> -replica-path <disk_path> -replicate-immediately ``` - `-virtual-storage` is the virtual storage the repository is located in. Virtual storages are configured in `/etc/gitlab/gitlab.rb` under `praefect['configuration'][:virtual_storage]` and looks like the following: @@ -463,13 +463,14 @@ sudo /opt/gitlab/embedded/bin/praefect -config /var/opt/gitlab/praefect/config.t In this example, the virtual storage to specify is `default` or `storage-1`. -- `-repository` is the repository's relative path in the storage [beginning with `@hashed`](../repository_storage_types.md#hashed-storage). +- `-relative-path` is the relative path in the virtual storage. Usually [beginning with `@hashed`](../repository_storage_types.md#hashed-storage). For example: ```plaintext @hashed/f5/ca/f5ca38f748a1d6eaf726b8a42fb575c3c71f1864a8143301782de13da2d9202b.git ``` +- `-replica-path` is the relative path on physical storage. Can start with [`@cluster` or match `relative_path`](../repository_storage_types.md#gitaly-cluster-storage). - `-authoritative-storage` is the storage we want Praefect to treat as the primary. Required if [per-repository replication](praefect.md#configure-replication-factor) is set as the replication strategy. - `-replicate-immediately`, available in GitLab 14.6 and later, causes the command to replicate the repository to its secondaries immediately. @@ -523,8 +524,8 @@ If any entry fails these checks, the command aborts prior to attempting to track For example: ```json - {"relative_path":"@hashed/f5/ca/f5ca38f748a1d6eaf726b8a42fb575c3c71f1864a8143301782de13da2d9202b.git","authoritative_storage":"gitaly-1","virtual_storage":"default"} - {"relative_path":"@hashed/f8/9f/f89f8d0e735a91c5269ab08d72fa27670d000e7561698d6e664e7b603f5c4e40.git","authoritative_storage":"gitaly-2","virtual_storage":"default"} + {"relative_path":"@hashed/f5/ca/f5ca38f748a1d6eaf726b8a42fb575c3c71f1864a8143301782de13da2d9202b.git","replica_path":"@cluster/fe/d3/1","authoritative_storage":"gitaly-1","virtual_storage":"default"} + {"relative_path":"@hashed/f8/9f/f89f8d0e735a91c5269ab08d72fa27670d000e7561698d6e664e7b603f5c4e40.git","replica_path":"@cluster/7b/28/2","authoritative_storage":"gitaly-2","virtual_storage":"default"} ``` - `-replicate-immediately`, causes the command to replicate the repository to its secondaries immediately. diff --git a/doc/administration/monitoring/performance/grafana_configuration.md b/doc/administration/monitoring/performance/grafana_configuration.md index 46aa6807257..ba0fed0fac1 100644 --- a/doc/administration/monitoring/performance/grafana_configuration.md +++ b/doc/administration/monitoring/performance/grafana_configuration.md @@ -43,14 +43,14 @@ GitLab sidebar: 1. Configure the **Grafana URL**. Enter the full URL of the Grafana instance. 1. Select **Save changes**. -GitLab displays your link in the **Main menu > Admin > Monitoring > Metrics Dashboard**. +GitLab displays your link in the Admin Area under **Monitoring > Metrics Dashboard**. ## Required Scopes > [Introduced](https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/5822) in GitLab 13.10. -When setting up Grafana through the process above, no scope shows in the screen at -**Main menu > Admin > Applications > GitLab Grafana**. However, the `read_user` scope is +When setting up Grafana through the process above, no scope shows in the screen in +the Admin Area under **Applications > GitLab Grafana**. However, the `read_user` scope is required and is provided to the application automatically. Setting any scope other than `read_user` without also including `read_user` leads to this error when you try to sign in using GitLab as the OAuth provider: diff --git a/doc/development/documentation/styleguide/word_list.md b/doc/development/documentation/styleguide/word_list.md index 269fa58a84f..437a37ad5dc 100644 --- a/doc/development/documentation/styleguide/word_list.md +++ b/doc/development/documentation/styleguide/word_list.md @@ -85,7 +85,7 @@ is passive. `Zombies select the button` is active. ## Admin Area -Use title case for **Admin Area** to refer to the area of the UI that you access when you select **Main menu > Admin**. +Use title case for **Admin Area**. This area of the UI says **Admin Area** at the top of the page and on the menu. ## administrator diff --git a/doc/integration/advanced_search/elasticsearch.md b/doc/integration/advanced_search/elasticsearch.md index 49c83cfedbb..29554b405be 100644 --- a/doc/integration/advanced_search/elasticsearch.md +++ b/doc/integration/advanced_search/elasticsearch.md @@ -751,7 +751,7 @@ For basic guidance on choosing a cluster configuration you may refer to [Elastic - A good guideline is to ensure you keep the number of shards per node below 20 per GB heap it has configured. A node with a 30 GB heap should therefore have a maximum of 600 shards, but the further below this limit you can keep it the better. This generally helps the cluster stay in good health. - Number of Elasticsearch shards: - Small shards result in small segments, which increases overhead. Aim to keep the average shard size between at least a few GB and a few tens of GB. - - Another consideration is the number of documents. To determine the number of shards to use, sum the numbers in the **Main menu > Admin > Dashboard > Statistics** pane (the number of documents to be indexed), divide by 5 million, and add 5. For example: + - Another consideration is the number of documents. To determine the number of shards to use, sum the numbers in the Admin Area under **Dashboard > Statistics** (the number of documents to be indexed), divide by 5 million, and add 5. For example: - If you have fewer than about 2,000,000 documents, use the default of 5 shards - 10,000,000 documents: `10000000/5000000 + 5` = 7 shards - 100,000,000 documents: `100000000/5000000 + 5` = 25 shards @@ -828,7 +828,7 @@ Make sure to prepare for this task by having a ``` This enqueues a Sidekiq job for each project that needs to be indexed. - You can view the jobs in **Main menu > Admin > Monitoring > Background Jobs > Queues Tab** + You can view the jobs in the Admin Area under **Monitoring > Background Jobs > Queues Tab** and select `elastic_commit_indexer`, or you can query indexing status using a Rake task: ```shell diff --git a/doc/topics/autodevops/prepare_deployment.md b/doc/topics/autodevops/prepare_deployment.md index c5a758e5d70..1dced373461 100644 --- a/doc/topics/autodevops/prepare_deployment.md +++ b/doc/topics/autodevops/prepare_deployment.md @@ -43,7 +43,7 @@ To define the base domain, either: - In the project, group, or instance level: go to your cluster settings and add it there. - In the project or group level: add it as an environment variable: `KUBE_INGRESS_BASE_DOMAIN`. -- In the instance level: go to **Main menu > Admin > Settings > CI/CD > Continuous Integration and Delivery** and add it there. +- In the instance level: go to the Admin Area, then **Settings > CI/CD > Continuous Integration and Delivery** and add it there. The base domain variable `KUBE_INGRESS_BASE_DOMAIN` follows the same order of precedence as other environment [variables](../../ci/variables/index.md#cicd-variable-precedence). diff --git a/doc/topics/autodevops/requirements.md b/doc/topics/autodevops/requirements.md index 057b3f83a38..a0aaba99a59 100644 --- a/doc/topics/autodevops/requirements.md +++ b/doc/topics/autodevops/requirements.md @@ -60,7 +60,7 @@ To define the base domain, either: - In the project, group, or instance level: go to your cluster settings and add it there. - In the project or group level: add it as an environment variable: `KUBE_INGRESS_BASE_DOMAIN`. -- In the instance level: go to **Main menu > Admin > Settings > CI/CD > Continuous Integration and Delivery** and add it there. +- In the instance level: go to the Admin Area, then **Settings > CI/CD > Continuous Integration and Delivery** and add it there. The base domain variable `KUBE_INGRESS_BASE_DOMAIN` follows the same order of [precedence as other environment variables](../../ci/variables/index.md#cicd-variable-precedence). diff --git a/doc/user/project/clusters/add_eks_clusters.md b/doc/user/project/clusters/add_eks_clusters.md index 4970471d303..d8b1b6fd413 100644 --- a/doc/user/project/clusters/add_eks_clusters.md +++ b/doc/user/project/clusters/add_eks_clusters.md @@ -56,7 +56,7 @@ cluster certificates: 1. Go to your: - Project's **Operate > Kubernetes clusters** page, for a project-level cluster. - Group's **Kubernetes** page, for a group-level cluster. - - **Main menu > Admin > Kubernetes**, for an instance-level cluster. + - The Admin Area's **Kubernetes** page, for an instance-level cluster. 1. Select **Integrate with a cluster certificate**. 1. Under the **Create new cluster** tab, select **Amazon EKS** to display an `Account ID` and `External ID` needed for later steps. diff --git a/doc/user/project/clusters/add_existing_cluster.md b/doc/user/project/clusters/add_existing_cluster.md index 5127248baed..7e2c429c6bb 100644 --- a/doc/user/project/clusters/add_existing_cluster.md +++ b/doc/user/project/clusters/add_existing_cluster.md @@ -68,7 +68,7 @@ To add a Kubernetes cluster to your project, group, or instance: 1. Navigate to your: 1. Project's **{cloud-gear}** **Operate > Kubernetes clusters** page, for a project-level cluster. 1. Group's **{cloud-gear}** **Kubernetes** page, for a group-level cluster. - 1. **Main menu > Admin > Kubernetes** page, for an instance-level cluster. + 1. The Admin Area's **Kubernetes** page, for an instance-level cluster. 1. On the **Kubernetes clusters** page, select the **Connect with a certificate** option from the **Actions** dropdown list. 1. On the **Connect a cluster** page, fill in the details: 1. **Kubernetes cluster name** (required) - The name you wish to give the cluster. diff --git a/doc/user/project/clusters/add_gke_clusters.md b/doc/user/project/clusters/add_gke_clusters.md index a3a7cb35346..a087460d89e 100644 --- a/doc/user/project/clusters/add_gke_clusters.md +++ b/doc/user/project/clusters/add_gke_clusters.md @@ -63,7 +63,7 @@ cluster certificates: - Project's **{cloud-gear}** **Operate > Kubernetes clusters** page, for a project-level cluster. - Group's **{cloud-gear}** **Kubernetes** page, for a group-level cluster. - - **Main menu > Admin > Kubernetes** page, for an instance-level cluster. + - The Admin Area's **Kubernetes** page, for an instance-level cluster. 1. Select **Integrate with a cluster certificate**. 1. Under the **Create new cluster** tab, select **Google GKE**. 1. Connect your Google account if you haven't done already by selecting the diff --git a/doc/user/project/clusters/add_remove_clusters.md b/doc/user/project/clusters/add_remove_clusters.md index 16ad95bb95c..a3263109bb1 100644 --- a/doc/user/project/clusters/add_remove_clusters.md +++ b/doc/user/project/clusters/add_remove_clusters.md @@ -19,7 +19,7 @@ When you successfully connect an existing cluster using cluster certificates, th 1. Go to your: - Project's **{cloud-gear}** **Operate > Kubernetes clusters** page, for a project-level cluster. - Group's **{cloud-gear}** **Kubernetes** page, for a group-level cluster. - - **Main menu > Admin > Kubernetes** page, for an instance-level cluster. + - The Admin Area's **Kubernetes** page, for an instance-level cluster. 1. Select the name of the cluster you want to disable. 1. Toggle **GitLab Integration** off (in gray). 1. Select **Save changes**. diff --git a/doc/user/project/repository/reducing_the_repo_size_using_git.md b/doc/user/project/repository/reducing_the_repo_size_using_git.md index 590323bfadd..7d35f8a622e 100644 --- a/doc/user/project/repository/reducing_the_repo_size_using_git.md +++ b/doc/user/project/repository/reducing_the_repo_size_using_git.md @@ -53,7 +53,7 @@ visible even after they have been removed from the repository. To purge files from a GitLab repository: -1. Install either [`git filter-repo`](https://github.com/newren/git-filter-repo/blob/main/INSTALL.md) or +1. Install [`git filter-repo`](https://github.com/newren/git-filter-repo/blob/main/INSTALL.md) and optionally [`git-sizer`](https://github.com/github/git-sizer#getting-started) using a supported package manager or from source. diff --git a/spec/features/abuse_report_spec.rb b/spec/features/abuse_report_spec.rb index f934736ced9..f1df5c2d6f0 100644 --- a/spec/features/abuse_report_spec.rb +++ b/spec/features/abuse_report_spec.rb @@ -3,9 +3,9 @@ require 'spec_helper' RSpec.describe 'Abuse reports', :js, feature_category: :insider_threat do - let_it_be(:abusive_user) { create(:user) } + let_it_be(:abusive_user) { create(:user, :no_super_sidebar) } - let_it_be(:reporter1) { create(:user) } + let_it_be(:reporter1) { create(:user, :no_super_sidebar) } let_it_be(:project) { create(:project, :public, :repository) } let_it_be(:issue) { create(:issue, project: project, author: abusive_user) } @@ -57,7 +57,7 @@ RSpec.describe 'Abuse reports', :js, feature_category: :insider_threat do describe 'when user_profile_overflow_menu FF turned on' do context 'when reporting a user profile for abuse' do - let_it_be(:reporter2) { create(:user) } + let_it_be(:reporter2) { create(:user, :no_super_sidebar) } before do visit user_path(abusive_user) @@ -108,7 +108,7 @@ RSpec.describe 'Abuse reports', :js, feature_category: :insider_threat do describe 'when user_profile_overflow_menu FF turned off' do context 'when reporting a user profile for abuse' do - let_it_be(:reporter2) { create(:user) } + let_it_be(:reporter2) { create(:user, :no_super_sidebar) } before do stub_feature_flags(user_profile_overflow_menu_vue: false) diff --git a/spec/features/admin/admin_hooks_spec.rb b/spec/features/admin/admin_hooks_spec.rb index b4f64cbfa7b..a5acba1fe4a 100644 --- a/spec/features/admin/admin_hooks_spec.rb +++ b/spec/features/admin/admin_hooks_spec.rb @@ -5,7 +5,7 @@ require 'spec_helper' RSpec.describe 'Admin::Hooks', feature_category: :webhooks do include Spec::Support::Helpers::ModalHelpers - let_it_be(:user) { create(:admin) } + let_it_be(:user) { create(:admin, :no_super_sidebar) } before do sign_in(user) diff --git a/spec/features/admin/admin_mode/logout_spec.rb b/spec/features/admin/admin_mode/logout_spec.rb index a64d3f241f6..5d9106fea02 100644 --- a/spec/features/admin/admin_mode/logout_spec.rb +++ b/spec/features/admin/admin_mode/logout_spec.rb @@ -7,7 +7,7 @@ RSpec.describe 'Admin Mode Logout', :js, feature_category: :system_access do include UserLoginHelper include Features::TopNavSpecHelpers - let(:user) { create(:admin) } + let(:user) { create(:admin, :no_super_sidebar) } before do # TODO: This used to use gitlab_sign_in, instead of sign_in, but that is buggy. See diff --git a/spec/features/admin/admin_mode/workers_spec.rb b/spec/features/admin/admin_mode/workers_spec.rb index 124c43eef9d..2a862c750d7 100644 --- a/spec/features/admin/admin_mode/workers_spec.rb +++ b/spec/features/admin/admin_mode/workers_spec.rb @@ -6,8 +6,8 @@ require 'spec_helper' RSpec.describe 'Admin mode for workers', :request_store, feature_category: :system_access do include Features::AdminUsersHelpers - let(:user) { create(:user) } - let(:user_to_delete) { create(:user) } + let(:user) { create(:user, :no_super_sidebar) } + let(:user_to_delete) { create(:user, :no_super_sidebar) } before do sign_in(user) @@ -22,7 +22,7 @@ RSpec.describe 'Admin mode for workers', :request_store, feature_category: :syst end context 'as an admin user' do - let(:user) { create(:admin) } + let(:user) { create(:admin, :no_super_sidebar) } context 'when admin mode disabled' do it 'cannot delete user', :js do diff --git a/spec/features/admin/admin_mode_spec.rb b/spec/features/admin/admin_mode_spec.rb index 65249fa0235..edfa58567ad 100644 --- a/spec/features/admin/admin_mode_spec.rb +++ b/spec/features/admin/admin_mode_spec.rb @@ -7,7 +7,7 @@ RSpec.describe 'Admin mode', :js, feature_category: :shared do include Features::TopNavSpecHelpers include StubENV - let(:admin) { create(:admin) } + let(:admin) { create(:admin, :no_super_sidebar) } before do stub_env('IN_MEMORY_APPLICATION_SETTINGS', 'false') diff --git a/spec/features/admin/admin_sees_background_migrations_spec.rb b/spec/features/admin/admin_sees_background_migrations_spec.rb index 7d4d3deb6d8..7423e74bf3a 100644 --- a/spec/features/admin/admin_sees_background_migrations_spec.rb +++ b/spec/features/admin/admin_sees_background_migrations_spec.rb @@ -5,7 +5,7 @@ require 'spec_helper' RSpec.describe "Admin > Admin sees background migrations", feature_category: :database do include ListboxHelpers - let_it_be(:admin) { create(:admin) } + let_it_be(:admin) { create(:admin, :no_super_sidebar) } let(:job_class) { Gitlab::BackgroundMigration::CopyColumnUsingBackgroundMigrationJob } let_it_be(:active_migration) { create(:batched_background_migration, :active, table_name: 'active') } diff --git a/spec/features/admin/admin_settings_spec.rb b/spec/features/admin/admin_settings_spec.rb index b78d6777a1a..36853407369 100644 --- a/spec/features/admin/admin_settings_spec.rb +++ b/spec/features/admin/admin_settings_spec.rb @@ -7,7 +7,7 @@ RSpec.describe 'Admin updates settings', feature_category: :shared do include TermsHelper include UsageDataHelpers - let_it_be(:admin) { create(:admin) } + let_it_be(:admin) { create(:admin, :no_super_sidebar) } context 'application setting :admin_mode is enabled', :request_store do before do diff --git a/spec/features/admin/users/user_spec.rb b/spec/features/admin/users/user_spec.rb index a95fd133133..ed355e4ada4 100644 --- a/spec/features/admin/users/user_spec.rb +++ b/spec/features/admin/users/user_spec.rb @@ -6,8 +6,8 @@ RSpec.describe 'Admin::Users::User', feature_category: :user_management do include Features::AdminUsersHelpers include Spec::Support::Helpers::ModalHelpers - let_it_be(:user) { create(:omniauth_user, provider: 'twitter', extern_uid: '123456') } - let_it_be(:current_user) { create(:admin) } + let_it_be(:user) { create(:omniauth_user, :no_super_sidebar, provider: 'twitter', extern_uid: '123456') } + let_it_be(:current_user) { create(:admin, :no_super_sidebar) } before do sign_in(current_user) @@ -145,7 +145,7 @@ RSpec.describe 'Admin::Users::User', feature_category: :user_management do end describe 'Impersonation' do - let_it_be(:another_user) { create(:user) } + let_it_be(:another_user) { create(:user, :no_super_sidebar) } context 'before impersonating' do subject { visit admin_user_path(user_to_visit) } diff --git a/spec/features/alert_management/alert_details_spec.rb b/spec/features/alert_management/alert_details_spec.rb index 45fa4d810aa..b377d3a092b 100644 --- a/spec/features/alert_management/alert_details_spec.rb +++ b/spec/features/alert_management/alert_details_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' RSpec.describe 'Alert details', :js, feature_category: :incident_management do let_it_be(:project) { create(:project) } - let_it_be(:developer) { create(:user) } + let_it_be(:developer) { create(:user, :no_super_sidebar) } let_it_be(:alert) { create(:alert_management_alert, project: project, status: 'triggered', title: 'Alert') } before_all do diff --git a/spec/features/alert_management/alert_management_list_spec.rb b/spec/features/alert_management/alert_management_list_spec.rb index 6ed3bdec5f5..cc54af249e1 100644 --- a/spec/features/alert_management/alert_management_list_spec.rb +++ b/spec/features/alert_management/alert_management_list_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' RSpec.describe 'Alert Management index', :js, feature_category: :incident_management do let_it_be(:project) { create(:project) } - let_it_be(:developer) { create(:user) } + let_it_be(:developer) { create(:user, :no_super_sidebar) } before_all do project.add_developer(developer) diff --git a/spec/features/boards/multiple_boards_spec.rb b/spec/features/boards/multiple_boards_spec.rb index e9d34c6f87f..9d59d3dd02a 100644 --- a/spec/features/boards/multiple_boards_spec.rb +++ b/spec/features/boards/multiple_boards_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' RSpec.describe 'Multiple Issue Boards', :js, feature_category: :team_planning do - let_it_be(:user) { create(:user) } + let_it_be(:user) { create(:user, :no_super_sidebar) } let_it_be(:project) { create(:project, :public) } let_it_be(:planning) { create(:label, project: project, name: 'Planning') } let_it_be(:board) { create(:board, name: 'board1', project: project) } diff --git a/spec/features/calendar_spec.rb b/spec/features/calendar_spec.rb index 8ad27b65f11..e22ae4f51fb 100644 --- a/spec/features/calendar_spec.rb +++ b/spec/features/calendar_spec.rb @@ -5,7 +5,7 @@ require 'spec_helper' RSpec.describe 'Contributions Calendar', :js, feature_category: :user_profile do include MobileHelpers - let(:user) { create(:user) } + let(:user) { create(:user, :no_super_sidebar) } let(:contributed_project) { create(:project, :public, :repository) } let(:issue_note) { create(:note, project: contributed_project) } diff --git a/spec/features/contextual_sidebar_spec.rb b/spec/features/contextual_sidebar_spec.rb index 132c8eb7192..ab322f18240 100644 --- a/spec/features/contextual_sidebar_spec.rb +++ b/spec/features/contextual_sidebar_spec.rb @@ -4,9 +4,8 @@ require 'spec_helper' RSpec.describe 'Contextual sidebar', :js, feature_category: :remote_development do context 'when context is a project' do - let_it_be(:project) { create(:project) } - - let(:user) { project.first_owner } + let_it_be(:user) { create(:user, :no_super_sidebar) } + let_it_be(:project) { create(:project, :repository, namespace: user.namespace) } before do sign_in(user) diff --git a/spec/features/dashboard/activity_spec.rb b/spec/features/dashboard/activity_spec.rb index 60621f57bde..61631d28aa9 100644 --- a/spec/features/dashboard/activity_spec.rb +++ b/spec/features/dashboard/activity_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' RSpec.describe 'Dashboard > Activity', feature_category: :user_profile do - let(:user) { create(:user) } + let(:user) { create(:user, :no_super_sidebar) } before do sign_in(user) diff --git a/spec/features/dashboard/group_dashboard_with_external_authorization_service_spec.rb b/spec/features/dashboard/group_dashboard_with_external_authorization_service_spec.rb index c1849cbee83..a00666c2376 100644 --- a/spec/features/dashboard/group_dashboard_with_external_authorization_service_spec.rb +++ b/spec/features/dashboard/group_dashboard_with_external_authorization_service_spec.rb @@ -6,7 +6,7 @@ RSpec.describe 'The group dashboard', :js, feature_category: :groups_and_project include ExternalAuthorizationServiceHelpers include Features::TopNavSpecHelpers - let(:user) { create(:user) } + let(:user) { create(:user, :no_super_sidebar) } before do sign_in user diff --git a/spec/features/dashboard/groups_list_spec.rb b/spec/features/dashboard/groups_list_spec.rb index 5559981f263..e1da163cdf5 100644 --- a/spec/features/dashboard/groups_list_spec.rb +++ b/spec/features/dashboard/groups_list_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' RSpec.describe 'Dashboard Groups page', :js, feature_category: :groups_and_projects do - let(:user) { create :user } + let(:user) { create(:user, :no_super_sidebar) } let(:group) { create(:group) } let(:nested_group) { create(:group, :nested) } let(:another_group) { create(:group) } diff --git a/spec/features/dashboard/issuables_counter_spec.rb b/spec/features/dashboard/issuables_counter_spec.rb index 5e6ec007569..501405c5662 100644 --- a/spec/features/dashboard/issuables_counter_spec.rb +++ b/spec/features/dashboard/issuables_counter_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' RSpec.describe 'Navigation bar counter', :use_clean_rails_memory_store_caching, feature_category: :team_planning do - let(:user) { create(:user) } + let(:user) { create(:user, :no_super_sidebar) } let(:project) { create(:project, namespace: user.namespace) } let(:issue) { create(:issue, project: project) } let(:merge_request) { create(:merge_request, source_project: project) } diff --git a/spec/features/dashboard/issues_spec.rb b/spec/features/dashboard/issues_spec.rb index 70d9f7e5137..69b32113bba 100644 --- a/spec/features/dashboard/issues_spec.rb +++ b/spec/features/dashboard/issues_spec.rb @@ -5,7 +5,7 @@ require 'spec_helper' RSpec.describe 'Dashboard Issues', feature_category: :team_planning do include FilteredSearchHelpers - let_it_be(:current_user) { create :user } + let_it_be(:current_user) { create(:user, :no_super_sidebar) } let_it_be(:user) { current_user } # Shared examples depend on this being available let_it_be(:public_project) { create(:project, :public) } let_it_be(:project) { create(:project) } diff --git a/spec/features/dashboard/merge_requests_spec.rb b/spec/features/dashboard/merge_requests_spec.rb index 624f3530f81..4bb04f4ff80 100644 --- a/spec/features/dashboard/merge_requests_spec.rb +++ b/spec/features/dashboard/merge_requests_spec.rb @@ -7,7 +7,7 @@ RSpec.describe 'Dashboard Merge Requests', feature_category: :code_review_workfl include FilteredSearchHelpers include ProjectForksHelper - let(:current_user) { create :user } + let(:current_user) { create(:user, :no_super_sidebar) } let(:user) { current_user } let(:project) { create(:project) } diff --git a/spec/features/dashboard/milestones_spec.rb b/spec/features/dashboard/milestones_spec.rb index 0dd25ffaa94..38637115246 100644 --- a/spec/features/dashboard/milestones_spec.rb +++ b/spec/features/dashboard/milestones_spec.rb @@ -14,7 +14,7 @@ RSpec.describe 'Dashboard > Milestones', feature_category: :team_planning do end describe 'as logged-in user' do - let(:user) { create(:user) } + let(:user) { create(:user, :no_super_sidebar) } let(:group) { create(:group) } let(:project) { create(:project, namespace: user.namespace) } let!(:milestone) { create(:milestone, project: project) } @@ -50,7 +50,7 @@ RSpec.describe 'Dashboard > Milestones', feature_category: :team_planning do end describe 'with merge requests disabled' do - let(:user) { create(:user) } + let(:user) { create(:user, :no_super_sidebar) } let(:group) { create(:group) } let(:project) { create(:project, :merge_requests_disabled, namespace: user.namespace) } let!(:milestone) { create(:milestone, project: project) } diff --git a/spec/features/dashboard/projects_spec.rb b/spec/features/dashboard/projects_spec.rb index 747d09f5d08..e5ad9808f83 100644 --- a/spec/features/dashboard/projects_spec.rb +++ b/spec/features/dashboard/projects_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' RSpec.describe 'Dashboard Projects', feature_category: :groups_and_projects do - let_it_be(:user) { create(:user) } + let_it_be(:user) { create(:user, :no_super_sidebar) } let_it_be(:project, reload: true) { create(:project, :repository, creator: build(:user)) } # ensure creator != owner to avoid N+1 false-positive let_it_be(:project2) { create(:project, :public) } diff --git a/spec/features/dashboard/snippets_spec.rb b/spec/features/dashboard/snippets_spec.rb index da985c6dc07..f9284f9479e 100644 --- a/spec/features/dashboard/snippets_spec.rb +++ b/spec/features/dashboard/snippets_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' RSpec.describe 'Dashboard snippets', feature_category: :source_code_management do - let_it_be(:user) { create(:user) } + let_it_be(:user) { create(:user, :no_super_sidebar) } it_behaves_like 'a "Your work" page with sidebar and breadcrumbs', :dashboard_snippets_path, :snippets diff --git a/spec/features/dashboard/todos/todos_spec.rb b/spec/features/dashboard/todos/todos_spec.rb index 9d59126df8d..5642d083673 100644 --- a/spec/features/dashboard/todos/todos_spec.rb +++ b/spec/features/dashboard/todos/todos_spec.rb @@ -5,9 +5,9 @@ require 'spec_helper' RSpec.describe 'Dashboard Todos', feature_category: :team_planning do include DesignManagementTestHelpers - let_it_be(:user) { create(:user, username: 'john') } - let_it_be(:user2) { create(:user, username: 'diane') } - let_it_be(:author) { create(:user) } + let_it_be(:user) { create(:user, :no_super_sidebar, username: 'john') } + let_it_be(:user2) { create(:user, :no_super_sidebar, username: 'diane') } + let_it_be(:author) { create(:user, :no_super_sidebar) } let_it_be(:project) { create(:project, :public) } let_it_be(:issue) { create(:issue, project: project, due_date: Date.today, title: "Fix bug") } diff --git a/spec/features/global_search_spec.rb b/spec/features/global_search_spec.rb index f94f0288f99..dfafacf48e2 100644 --- a/spec/features/global_search_spec.rb +++ b/spec/features/global_search_spec.rb @@ -5,7 +5,7 @@ require 'spec_helper' RSpec.describe 'Global search', :js, feature_category: :global_search do include AfterNextHelpers - let_it_be(:user) { create(:user) } + let_it_be(:user) { create(:user, :no_super_sidebar) } let_it_be(:project) { create(:project, namespace: user.namespace) } before do diff --git a/spec/features/groups/container_registry_spec.rb b/spec/features/groups/container_registry_spec.rb index d68b4ccf8f8..953a8e27547 100644 --- a/spec/features/groups/container_registry_spec.rb +++ b/spec/features/groups/container_registry_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' RSpec.describe 'Container Registry', :js, feature_category: :container_registry do - let(:user) { create(:user) } + let(:user) { create(:user, :no_super_sidebar) } let(:group) { create(:group) } let(:project) { create(:project, namespace: group) } diff --git a/spec/features/groups/dependency_proxy_spec.rb b/spec/features/groups/dependency_proxy_spec.rb index 60922f813df..2d4f6d4fbf2 100644 --- a/spec/features/groups/dependency_proxy_spec.rb +++ b/spec/features/groups/dependency_proxy_spec.rb @@ -3,8 +3,8 @@ require 'spec_helper' RSpec.describe 'Group Dependency Proxy', feature_category: :dependency_proxy do - let(:owner) { create(:user) } - let(:reporter) { create(:user) } + let(:owner) { create(:user, :no_super_sidebar) } + let(:reporter) { create(:user, :no_super_sidebar) } let(:group) { create(:group) } let(:path) { group_dependency_proxy_path(group) } let(:settings_path) { group_settings_packages_and_registries_path(group) } diff --git a/spec/features/groups/group_page_with_external_authorization_service_spec.rb b/spec/features/groups/group_page_with_external_authorization_service_spec.rb index 5b373aecce8..4cc0fe4171d 100644 --- a/spec/features/groups/group_page_with_external_authorization_service_spec.rb +++ b/spec/features/groups/group_page_with_external_authorization_service_spec.rb @@ -5,7 +5,7 @@ require 'spec_helper' RSpec.describe 'The group page', feature_category: :groups_and_projects do include ExternalAuthorizationServiceHelpers - let(:user) { create(:user) } + let(:user) { create(:user, :no_super_sidebar) } let(:group) { create(:group) } before do diff --git a/spec/features/groups/members/request_access_spec.rb b/spec/features/groups/members/request_access_spec.rb index cd0c9bfe3eb..c04b84be90e 100644 --- a/spec/features/groups/members/request_access_spec.rb +++ b/spec/features/groups/members/request_access_spec.rb @@ -3,8 +3,8 @@ require 'spec_helper' RSpec.describe 'Groups > Members > Request access', feature_category: :groups_and_projects do - let(:user) { create(:user) } - let(:owner) { create(:user) } + let(:user) { create(:user, :no_super_sidebar) } + let(:owner) { create(:user, :no_super_sidebar) } let(:group) { create(:group, :public) } let!(:project) { create(:project, :private, namespace: group) } diff --git a/spec/features/groups/packages_spec.rb b/spec/features/groups/packages_spec.rb index ec8215928e4..1d9269501be 100644 --- a/spec/features/groups/packages_spec.rb +++ b/spec/features/groups/packages_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' RSpec.describe 'Group Packages', feature_category: :package_registry do - let_it_be(:user) { create(:user) } + let_it_be(:user) { create(:user, :no_super_sidebar) } let_it_be(:group) { create(:group) } let_it_be(:project) { create(:project, group: group) } diff --git a/spec/features/groups/settings/packages_and_registries_spec.rb b/spec/features/groups/settings/packages_and_registries_spec.rb index 8ea8dc9219a..fa310722860 100644 --- a/spec/features/groups/settings/packages_and_registries_spec.rb +++ b/spec/features/groups/settings/packages_and_registries_spec.rb @@ -5,7 +5,7 @@ require 'spec_helper' RSpec.describe 'Group Package and registry settings', feature_category: :package_registry do include WaitForRequests - let(:user) { create(:user) } + let(:user) { create(:user, :no_super_sidebar) } let(:group) { create(:group) } let(:sub_group) { create(:group, parent: group) } diff --git a/spec/features/groups/user_sees_package_sidebar_spec.rb b/spec/features/groups/user_sees_package_sidebar_spec.rb index 6a91dfb92bf..4efb9ff7608 100644 --- a/spec/features/groups/user_sees_package_sidebar_spec.rb +++ b/spec/features/groups/user_sees_package_sidebar_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' RSpec.describe 'Groups > sidebar', feature_category: :groups_and_projects do - let(:user) { create(:user) } + let(:user) { create(:user, :no_super_sidebar) } let(:group) { create(:group) } before do diff --git a/spec/features/groups_spec.rb b/spec/features/groups_spec.rb index 67133b1856f..7af58bf460c 100644 --- a/spec/features/groups_spec.rb +++ b/spec/features/groups_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' RSpec.describe 'Group', feature_category: :groups_and_projects do - let(:user) { create(:user) } + let(:user) { create(:user, :no_super_sidebar) } before do sign_in(user) diff --git a/spec/features/help_dropdown_spec.rb b/spec/features/help_dropdown_spec.rb index 5f1d3a5e2b7..08d7dba4d79 100644 --- a/spec/features/help_dropdown_spec.rb +++ b/spec/features/help_dropdown_spec.rb @@ -3,8 +3,8 @@ require 'spec_helper' RSpec.describe "Help Dropdown", :js, feature_category: :shared do - let_it_be(:user) { create(:user) } - let_it_be(:admin) { create(:admin) } + let_it_be(:user) { create(:user, :no_super_sidebar) } + let_it_be(:admin) { create(:admin, :no_super_sidebar) } before do stub_application_setting(version_check_enabled: true) diff --git a/spec/features/ide/user_opens_merge_request_spec.rb b/spec/features/ide/user_opens_merge_request_spec.rb index dc280133a20..2aa89cadb7d 100644 --- a/spec/features/ide/user_opens_merge_request_spec.rb +++ b/spec/features/ide/user_opens_merge_request_spec.rb @@ -5,9 +5,9 @@ require 'spec_helper' RSpec.describe 'IDE merge request', :js, feature_category: :web_ide do include CookieHelper - let(:merge_request) { create(:merge_request, :simple, source_project: project) } - let(:project) { create(:project, :public, :repository) } - let(:user) { project.first_owner } + let_it_be(:user) { create(:user, :no_super_sidebar) } + let_it_be(:project) { create(:project, :public, :repository, namespace: user.namespace) } + let_it_be(:merge_request) { create(:merge_request, :simple, source_project: project) } before do stub_feature_flags(vscode_web_ide: false) diff --git a/spec/features/invites_spec.rb b/spec/features/invites_spec.rb index 77fc5136414..f0c52bd5f7b 100644 --- a/spec/features/invites_spec.rb +++ b/spec/features/invites_spec.rb @@ -70,7 +70,7 @@ RSpec.describe 'Group or Project invitations', :aggregate_failures, feature_cate end context 'when invite is sent before account is created;ldap or service sign in for manual acceptance edge case' do - let(:user) { create(:user, email: 'user@example.com') } + let(:user) { create(:user, :no_super_sidebar, email: 'user@example.com') } context 'when invite clicked and not signed in' do before do diff --git a/spec/features/issues/form_spec.rb b/spec/features/issues/form_spec.rb index 5f7a4f26a98..2b84078a881 100644 --- a/spec/features/issues/form_spec.rb +++ b/spec/features/issues/form_spec.rb @@ -8,9 +8,9 @@ RSpec.describe 'New/edit issue', :js, feature_category: :team_planning do include ContentEditorHelpers let_it_be(:project) { create(:project, :repository) } - let_it_be(:user) { create(:user) } - let_it_be(:user2) { create(:user) } - let_it_be(:guest) { create(:user) } + let_it_be(:user) { create(:user, :no_super_sidebar) } + let_it_be(:user2) { create(:user, :no_super_sidebar) } + let_it_be(:guest) { create(:user, :no_super_sidebar) } let_it_be(:milestone) { create(:milestone, project: project) } let_it_be(:label) { create(:label, project: project) } let_it_be(:label2) { create(:label, project: project) } diff --git a/spec/features/issues/service_desk_spec.rb b/spec/features/issues/service_desk_spec.rb index 9759889c16a..c8a4794c22d 100644 --- a/spec/features/issues/service_desk_spec.rb +++ b/spec/features/issues/service_desk_spec.rb @@ -5,7 +5,7 @@ require 'spec_helper' RSpec.describe 'Service Desk Issue Tracker', :js, feature_category: :service_desk do let(:project) { create(:project, :private, service_desk_enabled: true) } - let_it_be(:user) { create(:user) } + let_it_be(:user) { create(:user, :no_super_sidebar) } let_it_be(:support_bot) { Users::Internal.support_bot } before do diff --git a/spec/features/issues/todo_spec.rb b/spec/features/issues/todo_spec.rb index 2c537cefa5e..c503c18be8d 100644 --- a/spec/features/issues/todo_spec.rb +++ b/spec/features/issues/todo_spec.rb @@ -5,7 +5,7 @@ require 'spec_helper' RSpec.describe 'Manually create a todo item from issue', :js, feature_category: :team_planning do let!(:project) { create(:project) } let!(:issue) { create(:issue, project: project) } - let!(:user) { create(:user) } + let!(:user) { create(:user, :no_super_sidebar) } before do project.add_maintainer(user) diff --git a/spec/features/issues/user_uses_quick_actions_spec.rb b/spec/features/issues/user_uses_quick_actions_spec.rb index dc149ccc698..c15716243ae 100644 --- a/spec/features/issues/user_uses_quick_actions_spec.rb +++ b/spec/features/issues/user_uses_quick_actions_spec.rb @@ -13,7 +13,7 @@ RSpec.describe 'Issues > User uses quick actions', :js, feature_category: :team_ context "issuable common quick actions" do let(:new_url_opts) { {} } - let(:maintainer) { create(:user) } + let(:maintainer) { create(:user, :no_super_sidebar) } let(:project) { create(:project, :public) } let!(:label_bug) { create(:label, project: project, title: 'bug') } let!(:label_feature) { create(:label, project: project, title: 'feature') } @@ -26,7 +26,7 @@ RSpec.describe 'Issues > User uses quick actions', :js, feature_category: :team_ end describe 'issue-only commands' do - let(:user) { create(:user) } + let(:user) { create(:user, :no_super_sidebar) } let(:project) { create(:project, :public, :repository) } let(:issue) { create(:issue, project: project, due_date: Date.new(2016, 8, 28)) } diff --git a/spec/features/jira_connect/branches_spec.rb b/spec/features/jira_connect/branches_spec.rb index 25dc14a1dc9..ae1dd551c47 100644 --- a/spec/features/jira_connect/branches_spec.rb +++ b/spec/features/jira_connect/branches_spec.rb @@ -5,8 +5,8 @@ require 'spec_helper' RSpec.describe 'Create GitLab branches from Jira', :js, feature_category: :integrations do include ListboxHelpers - let_it_be(:alice) { create(:user, name: 'Alice') } - let_it_be(:bob) { create(:user, name: 'Bob') } + let_it_be(:alice) { create(:user, :no_super_sidebar, name: 'Alice') } + let_it_be(:bob) { create(:user, :no_super_sidebar, name: 'Bob') } let_it_be(:project1) { create(:project, :repository, namespace: alice.namespace, title: 'foo') } let_it_be(:project2) { create(:project, :repository, namespace: alice.namespace, title: 'bar') } diff --git a/spec/features/labels_hierarchy_spec.rb b/spec/features/labels_hierarchy_spec.rb index eb79d6e64f3..0cb712622f2 100644 --- a/spec/features/labels_hierarchy_spec.rb +++ b/spec/features/labels_hierarchy_spec.rb @@ -6,7 +6,7 @@ RSpec.describe 'Labels Hierarchy', :js, feature_category: :team_planning do include FilteredSearchHelpers include ContentEditorHelpers - let!(:user) { create(:user) } + let!(:user) { create(:user, :no_super_sidebar) } let!(:grandparent) { create(:group) } let!(:parent) { create(:group, parent: grandparent) } let!(:child) { create(:group, parent: parent) } diff --git a/spec/features/merge_request/user_merges_merge_request_spec.rb b/spec/features/merge_request/user_merges_merge_request_spec.rb index 402405e1fb6..aee42784d05 100644 --- a/spec/features/merge_request/user_merges_merge_request_spec.rb +++ b/spec/features/merge_request/user_merges_merge_request_spec.rb @@ -5,7 +5,7 @@ require "spec_helper" RSpec.describe "User merges a merge request", :js, feature_category: :code_review_workflow do include ContentEditorHelpers - let(:user) { project.first_owner } + let_it_be(:user) { create(:user, :no_super_sidebar) } before do sign_in(user) @@ -24,7 +24,7 @@ RSpec.describe "User merges a merge request", :js, feature_category: :code_revie end context 'sidebar merge requests counter' do - let(:project) { create(:project, :public, :repository) } + let_it_be(:project) { create(:project, :public, :repository, namespace: user.namespace) } let!(:merge_request) { create(:merge_request, source_project: project) } it 'decrements the open MR count', :sidekiq_inline do diff --git a/spec/features/merge_request/user_opens_checkout_branch_modal_spec.rb b/spec/features/merge_request/user_opens_checkout_branch_modal_spec.rb index 63f03ae64e0..c12816b6521 100644 --- a/spec/features/merge_request/user_opens_checkout_branch_modal_spec.rb +++ b/spec/features/merge_request/user_opens_checkout_branch_modal_spec.rb @@ -6,17 +6,16 @@ RSpec.describe 'Merge request > User opens checkout branch modal', :js, feature_ include ProjectForksHelper include CookieHelper - let(:project) { create(:project, :public, :repository) } - let(:user) { project.creator } + let_it_be(:user) { create(:user, :no_super_sidebar) } + let_it_be(:project) { create(:project, :public, :repository, namespace: user.namespace) } before do - project.add_maintainer(user) sign_in(user) set_cookie('new-actions-popover-viewed', 'true') end describe 'for fork' do - let(:author) { create(:user) } + let(:author) { create(:user, :no_super_sidebar) } let(:source_project) { fork_project(project, author, repository: true) } let(:merge_request) do diff --git a/spec/features/merge_request/user_sees_check_out_branch_modal_spec.rb b/spec/features/merge_request/user_sees_check_out_branch_modal_spec.rb index 21c62b0d0d8..e55ecd2a531 100644 --- a/spec/features/merge_request/user_sees_check_out_branch_modal_spec.rb +++ b/spec/features/merge_request/user_sees_check_out_branch_modal_spec.rb @@ -5,9 +5,9 @@ require 'spec_helper' RSpec.describe 'Merge request > User sees check out branch modal', :js, feature_category: :code_review_workflow do include CookieHelper - let(:project) { create(:project, :public, :repository) } - let(:user) { project.creator } - let(:merge_request) { create(:merge_request, source_project: project) } + let_it_be(:user) { create(:user, :no_super_sidebar) } + let_it_be(:project) { create(:project, :public, :repository, creator: user) } + let_it_be(:merge_request) { create(:merge_request, source_project: project) } let(:modal_window_title) { 'Check out, review, and resolve locally' } before do diff --git a/spec/features/merge_request/user_sees_merge_request_pipelines_spec.rb b/spec/features/merge_request/user_sees_merge_request_pipelines_spec.rb index 4dce36ac1ab..a4006f94e5f 100644 --- a/spec/features/merge_request/user_sees_merge_request_pipelines_spec.rb +++ b/spec/features/merge_request/user_sees_merge_request_pipelines_spec.rb @@ -86,7 +86,7 @@ RSpec.describe 'Merge request > User sees pipelines triggered by merge request', it 'sees branch pipelines and detached merge request pipelines in correct order' do page.within('.ci-table') do - expect(page).to have_selector('[data-testid="ci-badge-created"]', count: 2) + expect(page).to have_selector('[data-testid="ci-badge-link"]', text: 'created', count: 2) expect(first('[data-testid="pipeline-url-link"]')).to have_content("##{detached_merge_request_pipeline.id}") end end @@ -122,7 +122,7 @@ RSpec.describe 'Merge request > User sees pipelines triggered by merge request', it 'sees branch pipelines and detached merge request pipelines in correct order' do page.within('.ci-table') do - expect(page).to have_selector('[data-testid="ci-badge-pending"]', count: 4) + expect(page).to have_selector('[data-testid="ci-badge-link"]', text: 'pending', count: 4) expect(all('[data-testid="pipeline-url-link"]')[0]) .to have_content("##{detached_merge_request_pipeline_2.id}") @@ -220,7 +220,7 @@ RSpec.describe 'Merge request > User sees pipelines triggered by merge request', it 'sees a branch pipeline in pipeline tab' do page.within('.ci-table') do - expect(page).to have_selector('[data-testid="ci-badge-created"]', count: 1) + expect(page).to have_selector('[data-testid="ci-badge-link"]', text: 'created', count: 1) expect(first('[data-testid="pipeline-url-link"]')).to have_content("##{push_pipeline.id}") end end @@ -275,7 +275,7 @@ RSpec.describe 'Merge request > User sees pipelines triggered by merge request', it 'sees branch pipelines and detached merge request pipelines in correct order' do page.within('.ci-table') do - expect(page).to have_selector('[data-testid="ci-badge-pending"]', count: 2) + expect(page).to have_selector('[data-testid="ci-badge-link"]', text: 'pending', count: 2) expect(first('[data-testid="pipeline-url-link"]')).to have_content("##{detached_merge_request_pipeline.id}") end end @@ -291,7 +291,7 @@ RSpec.describe 'Merge request > User sees pipelines triggered by merge request', it 'sees pipeline list in forked project' do visit project_pipelines_path(forked_project) - expect(page).to have_selector('[data-testid="ci-badge-pending"]', count: 2) + expect(page).to have_selector('[data-testid="ci-badge-link"]', text: 'pending', count: 2) end context 'when a user updated a merge request from a forked project to the parent project' do @@ -317,7 +317,7 @@ RSpec.describe 'Merge request > User sees pipelines triggered by merge request', it 'sees branch pipelines and detached merge request pipelines in correct order' do page.within('.ci-table') do - expect(page).to have_selector('[data-testid="ci-badge-pending"]', count: 4) + expect(page).to have_selector('[data-testid="ci-badge-link"]', text: 'pending', count: 4) expect(all('[data-testid="pipeline-url-link"]')[0]) .to have_content("##{detached_merge_request_pipeline_2.id}") @@ -360,7 +360,7 @@ RSpec.describe 'Merge request > User sees pipelines triggered by merge request', it 'sees pipeline list in forked project' do visit project_pipelines_path(forked_project) - expect(page).to have_selector('[data-testid="ci-badge-pending"]', count: 4) + expect(page).to have_selector('[data-testid="ci-badge-link"]', text: 'pending', count: 4) end end diff --git a/spec/features/merge_request/user_sees_pipelines_spec.rb b/spec/features/merge_request/user_sees_pipelines_spec.rb index 140450b7388..bb3890f5242 100644 --- a/spec/features/merge_request/user_sees_pipelines_spec.rb +++ b/spec/features/merge_request/user_sees_pipelines_spec.rb @@ -49,7 +49,7 @@ RSpec.describe 'Merge request > User sees pipelines', :js, feature_category: :co wait_for_requests page.within(find('[data-testid="pipeline-table-row"]', match: :first)) do - expect(page).to have_selector('[data-testid="ci-badge-passed"]') + expect(page).to have_selector('[data-testid="ci-badge-link"]', text: 'passed') expect(page).to have_content(pipeline.id) expect(page).to have_content('API') expect(page).to have_css('[data-testid="pipeline-mini-graph"]') diff --git a/spec/features/merge_request/user_selects_branches_for_new_mr_spec.rb b/spec/features/merge_request/user_selects_branches_for_new_mr_spec.rb index e3be99254dc..16578af238d 100644 --- a/spec/features/merge_request/user_selects_branches_for_new_mr_spec.rb +++ b/spec/features/merge_request/user_selects_branches_for_new_mr_spec.rb @@ -6,8 +6,8 @@ RSpec.describe 'Merge request > User selects branches for new MR', :js, feature_ include ListboxHelpers include CookieHelper - let(:project) { create(:project, :public, :repository) } - let(:user) { project.creator } + let_it_be(:user) { create(:user, :no_super_sidebar) } + let_it_be(:project) { create(:project, :public, :repository, namespace: user.namespace) } def select_source_branch(branch_name) find('.js-source-branch', match: :first).click @@ -16,7 +16,6 @@ RSpec.describe 'Merge request > User selects branches for new MR', :js, feature_ end before do - project.add_maintainer(user) sign_in(user) set_cookie('new-actions-popover-viewed', 'true') end diff --git a/spec/features/merge_request/user_uses_quick_actions_spec.rb b/spec/features/merge_request/user_uses_quick_actions_spec.rb index 1c63f5b56b0..b2cc25f1c34 100644 --- a/spec/features/merge_request/user_uses_quick_actions_spec.rb +++ b/spec/features/merge_request/user_uses_quick_actions_spec.rb @@ -11,15 +11,9 @@ RSpec.describe 'Merge request > User uses quick actions', :js, :use_clean_rails_ feature_category: :code_review_workflow do include Features::NotesHelpers - let(:project) { create(:project, :public, :repository) } - let(:user) { project.creator } - let(:guest) { create(:user) } - let(:merge_request) { create(:merge_request, source_project: project) } - let!(:milestone) { create(:milestone, project: project, title: 'ASAP') } - context "issuable common quick actions" do let!(:new_url_opts) { { merge_request: { source_branch: 'feature', target_branch: 'master' } } } - let(:maintainer) { create(:user) } + let(:maintainer) { create(:user, :no_super_sidebar) } let(:project) { create(:project, :public, :repository) } let!(:label_bug) { create(:label, project: project, title: 'bug') } let!(:label_feature) { create(:label, project: project, title: 'feature') } @@ -32,7 +26,8 @@ RSpec.describe 'Merge request > User uses quick actions', :js, :use_clean_rails_ end describe 'merge-request-only commands' do - let(:user) { create(:user) } + let(:user) { create(:user, :no_super_sidebar) } + let(:guest) { create(:user, :no_super_sidebar) } let(:project) { create(:project, :public, :repository) } let(:merge_request) { create(:merge_request, source_project: project) } let!(:milestone) { create(:milestone, project: project, title: 'ASAP') } diff --git a/spec/features/monitor_sidebar_link_spec.rb b/spec/features/monitor_sidebar_link_spec.rb index 6e464cb8752..1d39f749ca7 100644 --- a/spec/features/monitor_sidebar_link_spec.rb +++ b/spec/features/monitor_sidebar_link_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' RSpec.describe 'Monitor dropdown sidebar', :aggregate_failures, feature_category: :shared do let_it_be_with_reload(:project) { create(:project, :internal, :repository) } - let_it_be(:user) { create(:user) } + let_it_be(:user) { create(:user, :no_super_sidebar) } let(:role) { nil } diff --git a/spec/features/projects/commit/user_sees_pipelines_tab_spec.rb b/spec/features/projects/commit/user_sees_pipelines_tab_spec.rb index e44364c7f2d..bc5d468c97a 100644 --- a/spec/features/projects/commit/user_sees_pipelines_tab_spec.rb +++ b/spec/features/projects/commit/user_sees_pipelines_tab_spec.rb @@ -36,7 +36,7 @@ RSpec.describe 'Commit > Pipelines tab', :js, feature_category: :source_code_man wait_for_requests page.within('[data-testid="pipeline-table-row"]') do - expect(page).to have_selector('[data-testid="ci-badge-passed"]') + expect(page).to have_selector('[data-testid="ci-badge-link"]', text: 'passed') expect(page).to have_content(pipeline.id) expect(page).to have_content('API') expect(page).to have_css('[data-testid="pipeline-mini-graph"]') diff --git a/spec/features/projects/files/project_owner_creates_license_file_spec.rb b/spec/features/projects/files/project_owner_creates_license_file_spec.rb index 95e96159744..595aad0144b 100644 --- a/spec/features/projects/files/project_owner_creates_license_file_spec.rb +++ b/spec/features/projects/files/project_owner_creates_license_file_spec.rb @@ -3,8 +3,8 @@ require 'spec_helper' RSpec.describe 'Projects > Files > Project owner creates a license file', :js, feature_category: :groups_and_projects do - let(:project) { create(:project, :repository) } - let(:project_maintainer) { project.first_owner } + let_it_be(:project_maintainer) { create(:user, :no_super_sidebar) } + let_it_be(:project) { create(:project, :repository, namespace: project_maintainer.namespace) } before do project.repository.delete_file(project_maintainer, 'LICENSE', diff --git a/spec/features/projects/files/user_find_file_spec.rb b/spec/features/projects/files/user_find_file_spec.rb index 5406726eb6e..005a870bea0 100644 --- a/spec/features/projects/files/user_find_file_spec.rb +++ b/spec/features/projects/files/user_find_file_spec.rb @@ -5,7 +5,7 @@ require 'spec_helper' RSpec.describe 'User find project file', feature_category: :groups_and_projects do include ListboxHelpers - let(:user) { create :user } + let(:user) { create :user, :no_super_sidebar } let(:project) { create :project, :repository } before do diff --git a/spec/features/projects/files/user_searches_for_files_spec.rb b/spec/features/projects/files/user_searches_for_files_spec.rb index 25456593fc4..627912df408 100644 --- a/spec/features/projects/files/user_searches_for_files_spec.rb +++ b/spec/features/projects/files/user_searches_for_files_spec.rb @@ -3,7 +3,8 @@ require 'spec_helper' RSpec.describe 'Projects > Files > User searches for files', feature_category: :groups_and_projects do - let(:user) { project.first_owner } + let_it_be(:user) { create(:user, :no_super_sidebar) } + let_it_be(:project) { create(:project, :repository, namespace: user.namespace) } before do sign_in(user) @@ -11,7 +12,7 @@ RSpec.describe 'Projects > Files > User searches for files', feature_category: : describe 'project main screen' do context 'when project is empty' do - let(:project) { create(:project) } + let_it_be(:project) { create(:project, namespace: user.namespace) } before do visit project_path(project) @@ -25,10 +26,7 @@ RSpec.describe 'Projects > Files > User searches for files', feature_category: : end context 'when project is not empty' do - let(:project) { create(:project, :repository) } - before do - project.add_developer(user) visit project_path(project) end @@ -39,10 +37,7 @@ RSpec.describe 'Projects > Files > User searches for files', feature_category: : end describe 'project tree screen' do - let(:project) { create(:project, :repository) } - before do - project.add_developer(user) visit project_tree_path(project, project.default_branch) end diff --git a/spec/features/projects/jobs/user_browses_jobs_spec.rb b/spec/features/projects/jobs/user_browses_jobs_spec.rb index 77f95827d88..afcf0e660f7 100644 --- a/spec/features/projects/jobs/user_browses_jobs_spec.rb +++ b/spec/features/projects/jobs/user_browses_jobs_spec.rb @@ -72,7 +72,7 @@ RSpec.describe 'User browses jobs', feature_category: :groups_and_projects do wait_for_requests - expect(page).to have_selector('[data-testid="ci-badge-canceled"]') + expect(page).to have_selector('[data-testid="ci-badge-link"]', text: 'canceled') expect(page).not_to have_selector('[data-testid="jobs-table-error-alert"]') end end @@ -93,7 +93,7 @@ RSpec.describe 'User browses jobs', feature_category: :groups_and_projects do wait_for_requests - expect(page).to have_selector('[data-testid="ci-badge-pending"]') + expect(page).to have_selector('[data-testid="ci-badge-link"]', text: 'pending') end end @@ -133,7 +133,7 @@ RSpec.describe 'User browses jobs', feature_category: :groups_and_projects do wait_for_requests - expect(page).to have_selector('[data-testid="ci-badge-pending"]') + expect(page).to have_selector('[data-testid="ci-badge-link"]', text: 'pending') end it 'unschedules a job successfully' do @@ -141,7 +141,7 @@ RSpec.describe 'User browses jobs', feature_category: :groups_and_projects do wait_for_requests - expect(page).to have_selector('[data-testid="ci-badge-manual"]') + expect(page).to have_selector('[data-testid="ci-badge-link"]', text: 'manual') end end diff --git a/spec/features/projects/jobs_spec.rb b/spec/features/projects/jobs_spec.rb index c203e644280..67486b545c9 100644 --- a/spec/features/projects/jobs_spec.rb +++ b/spec/features/projects/jobs_spec.rb @@ -66,7 +66,7 @@ RSpec.describe 'Jobs', :clean_gitlab_redis_shared_state, feature_category: :grou wait_for_requests - expect(page).to have_css('[data-testid="ci-badge-passed"]', text: 'passed') + expect(page).to have_selector('[data-testid="ci-badge-link"]', text: 'passed') end it 'shows commit`s data', :js do diff --git a/spec/features/projects/pipelines/pipeline_spec.rb b/spec/features/projects/pipelines/pipeline_spec.rb index e078e3f7eea..2fc8345fb47 100644 --- a/spec/features/projects/pipelines/pipeline_spec.rb +++ b/spec/features/projects/pipelines/pipeline_spec.rb @@ -224,7 +224,7 @@ RSpec.describe 'Pipeline', :js, feature_category: :groups_and_projects do expect(page).not_to have_content('Retry job') within('[data-testid="pipeline-details-header"]') do - expect(page).to have_selector('[data-testid="ci-badge-running"]') + expect(page).to have_selector('[data-testid="ci-badge-link"]', text: 'running') end end end @@ -278,7 +278,7 @@ RSpec.describe 'Pipeline', :js, feature_category: :groups_and_projects do expect(page).not_to have_content('Retry job') within('[data-testid="pipeline-details-header"]') do - expect(page).to have_selector('[data-testid="ci-badge-running"]') + expect(page).to have_selector('[data-testid="ci-badge-link"]', text: 'running') end end @@ -312,7 +312,7 @@ RSpec.describe 'Pipeline', :js, feature_category: :groups_and_projects do expect(page).not_to have_content('Play job') within('[data-testid="pipeline-details-header"]') do - expect(page).to have_selector('[data-testid="ci-badge-running"]') + expect(page).to have_selector('[data-testid="ci-badge-link"]', text: 'running') end end end @@ -537,7 +537,7 @@ RSpec.describe 'Pipeline', :js, feature_category: :groups_and_projects do it 'shows running status in pipeline header', :sidekiq_might_not_need_inline do within('[data-testid="pipeline-details-header"]') do - expect(page).to have_selector('[data-testid="ci-badge-running"]') + expect(page).to have_selector('[data-testid="ci-badge-link"]', text: 'running') end end end diff --git a/spec/features/projects/pipelines/pipelines_spec.rb b/spec/features/projects/pipelines/pipelines_spec.rb index 8833d3d0853..c1aa2c35337 100644 --- a/spec/features/projects/pipelines/pipelines_spec.rb +++ b/spec/features/projects/pipelines/pipelines_spec.rb @@ -115,7 +115,7 @@ RSpec.describe 'Pipelines', :js, feature_category: :continuous_integration do it 'indicates that pipeline can be canceled' do expect(page).to have_selector('.js-pipelines-cancel-button') - expect(page).to have_selector('[data-testid="ci-badge-running"]') + expect(page).to have_selector('[data-testid="ci-badge-link"]', text: 'running') end context 'when canceling' do @@ -127,7 +127,7 @@ RSpec.describe 'Pipelines', :js, feature_category: :continuous_integration do it 'indicated that pipelines was canceled', :sidekiq_might_not_need_inline do expect(page).not_to have_selector('.js-pipelines-cancel-button') - expect(page).to have_selector('[data-testid="ci-badge-canceled"]') + expect(page).to have_selector('[data-testid="ci-badge-link"]', text: 'canceled') end end end @@ -144,7 +144,7 @@ RSpec.describe 'Pipelines', :js, feature_category: :continuous_integration do it 'indicates that pipeline can be retried' do expect(page).to have_selector('.js-pipelines-retry-button') - expect(page).to have_selector('[data-testid="ci-badge-failed"]') + expect(page).to have_selector('[data-testid="ci-badge-link"]', text: 'failed') end context 'when retrying' do @@ -155,7 +155,7 @@ RSpec.describe 'Pipelines', :js, feature_category: :continuous_integration do it 'shows running pipeline that is not retryable' do expect(page).not_to have_selector('.js-pipelines-retry-button') - expect(page).to have_selector('[data-testid="ci-badge-running"]') + expect(page).to have_selector('[data-testid="ci-badge-link"]', text: 'running') end end end @@ -396,7 +396,7 @@ RSpec.describe 'Pipelines', :js, feature_category: :continuous_integration do end it 'shows the pipeline as preparing' do - expect(page).to have_selector('[data-testid="ci-badge-preparing"]') + expect(page).to have_selector('[data-testid="ci-badge-link"]', text: 'preparing') end end @@ -417,7 +417,7 @@ RSpec.describe 'Pipelines', :js, feature_category: :continuous_integration do end it 'has pipeline running' do - expect(page).to have_selector('[data-testid="ci-badge-running"]') + expect(page).to have_selector('[data-testid="ci-badge-link"]', text: 'running') end context 'when canceling' do @@ -428,7 +428,7 @@ RSpec.describe 'Pipelines', :js, feature_category: :continuous_integration do it 'indicates that pipeline was canceled', :sidekiq_might_not_need_inline do expect(page).not_to have_selector('.js-pipelines-cancel-button') - expect(page).to have_selector('[data-testid="ci-badge-canceled"]') + expect(page).to have_selector('[data-testid="ci-badge-link"]', text: 'canceled') end end end @@ -450,7 +450,7 @@ RSpec.describe 'Pipelines', :js, feature_category: :continuous_integration do end it 'has failed pipeline', :sidekiq_might_not_need_inline do - expect(page).to have_selector('[data-testid="ci-badge-failed"]') + expect(page).to have_selector('[data-testid="ci-badge-link"]', text: 'failed') end end end diff --git a/spec/models/group_spec.rb b/spec/models/group_spec.rb index 23e72f6663a..68610a8b65c 100644 --- a/spec/models/group_spec.rb +++ b/spec/models/group_spec.rb @@ -2666,14 +2666,16 @@ RSpec.describe Group, feature_category: :groups_and_projects do let(:group) { build(:group) } context 'the group has owners' do - before do - group.add_owner(create(:user)) - group.add_owner(create(:user)) - end - it 'is the first owner' do + user_1 = create(:user) + user_2 = create(:user) + group.add_owner(user_2) + group.add_owner(user_1) + + # The senior-most user (not member) who is an OWNER in the group + # is always treated as the first owner expect(group.first_owner) - .to eq(group.owners.first) + .to eq(user_1) .and be_a(User) end end diff --git a/spec/requests/api/project_attributes.yml b/spec/requests/api/project_attributes.yml index 1055c1a6968..019862309dd 100644 --- a/spec/requests/api/project_attributes.yml +++ b/spec/requests/api/project_attributes.yml @@ -162,7 +162,6 @@ project_setting: - selective_code_owner_removals - show_diff_preview_in_email - suggested_reviewers_enabled - - jitsu_key - mirror_branch_regex - allow_pipeline_trigger_approve_deployment - pages_unique_domain_enabled @@ -170,16 +169,7 @@ project_setting: - pages_multiple_versions_enabled - runner_registration_enabled - product_analytics_instrumentation_key - - jitsu_host - - jitsu_project_xid - - jitsu_administrator_email - - jitsu_administrator_password - - encrypted_jitsu_administrator_password - - encrypted_jitsu_administrator_password_iv - product_analytics_data_collector_host - - product_analytics_clickhouse_connection_string - - encrypted_product_analytics_clickhouse_connection_string - - encrypted_product_analytics_clickhouse_connection_string_iv - cube_api_base_url - cube_api_key - encrypted_cube_api_key |