Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
da5677e7a7
commit
f64d1064c5
|
|
@ -1 +1 @@
|
|||
v17.3.0-rc3
|
||||
5506cb6f0a19ce9e5569c12361139a288b08ebc4
|
||||
|
|
|
|||
4
Gemfile
4
Gemfile
|
|
@ -217,9 +217,9 @@ gem 'seed-fu', '~> 2.3.7' # rubocop:todo Gemfile/MissingFeatureCategory
|
|||
gem 'elasticsearch-model', '~> 7.2', feature_category: :global_search
|
||||
gem 'elasticsearch-rails', '~> 7.2', require: 'elasticsearch/rails/instrumentation', feature_category: :global_search
|
||||
gem 'elasticsearch-api', '7.17.11', feature_category: :global_search
|
||||
gem 'aws-sdk-core', '~> 3.200.0' # rubocop:todo Gemfile/MissingFeatureCategory
|
||||
gem 'aws-sdk-core', '~> 3.201.0' # rubocop:todo Gemfile/MissingFeatureCategory
|
||||
gem 'aws-sdk-cloudformation', '~> 1' # rubocop:todo Gemfile/MissingFeatureCategory
|
||||
gem 'aws-sdk-s3', '~> 1.155.0' # rubocop:todo Gemfile/MissingFeatureCategory
|
||||
gem 'aws-sdk-s3', '~> 1.156.0' # rubocop:todo Gemfile/MissingFeatureCategory
|
||||
gem 'faraday-typhoeus', '~> 1.1', feature_category: :global_search
|
||||
gem 'faraday_middleware-aws-sigv4', '~> 1.0.1', feature_category: :global_search
|
||||
# Used with Elasticsearch to support http keep-alive connections
|
||||
|
|
|
|||
|
|
@ -37,9 +37,9 @@
|
|||
{"name":"aws-eventstream","version":"1.3.0","platform":"ruby","checksum":"f1434cc03ab2248756eb02cfa45e900e59a061d7fbdc4a9fd82a5dd23d796d3f"},
|
||||
{"name":"aws-partitions","version":"1.877.0","platform":"ruby","checksum":"9552ed7bbd3700ed1eeb0121c160ceaf64fa5dbaff5a1ff5fe6fd8481ecd9cfd"},
|
||||
{"name":"aws-sdk-cloudformation","version":"1.41.0","platform":"ruby","checksum":"31e47539719734413671edf9b1a31f8673fbf9688549f50c41affabbcb1c6b26"},
|
||||
{"name":"aws-sdk-core","version":"3.200.0","platform":"ruby","checksum":"1d9ac535f82b5ea7b3d6e0cee7be3c48981a948123a48ff755504b7343d16951"},
|
||||
{"name":"aws-sdk-core","version":"3.201.3","platform":"ruby","checksum":"c045a7ff37b4a6f1de5742e64def0841bdf70d215cb17d3875b2c5bdd9e99d52"},
|
||||
{"name":"aws-sdk-kms","version":"1.76.0","platform":"ruby","checksum":"e7f75013cba9ba357144f66bbc600631c192e2cda9dd572794be239654e2cf49"},
|
||||
{"name":"aws-sdk-s3","version":"1.155.0","platform":"ruby","checksum":"4674e07846cc6d77d5bd122cef7fea5055e8b53bf238ab05beebc25ecb01c2e2"},
|
||||
{"name":"aws-sdk-s3","version":"1.156.0","platform":"ruby","checksum":"9302da1d1a70363308854d5065035f6c72cf8b8af895d8789487cd5c6b076a46"},
|
||||
{"name":"aws-sigv4","version":"1.8.0","platform":"ruby","checksum":"84dd99768b91b93b63d1d8e53ee837cfd06ab402812772a7899a78f9f9117cbc"},
|
||||
{"name":"axe-core-api","version":"4.9.1","platform":"ruby","checksum":"9ea7ac16bfee1cb3545345d210878aa8cccfb41b493e00fe1faab79af4d9fed8"},
|
||||
{"name":"axe-core-rspec","version":"4.9.1","platform":"ruby","checksum":"31ef067bee36d6efb3f156a83aa2fb6ac721270a53fb9473f0268e325a3e6efd"},
|
||||
|
|
|
|||
12
Gemfile.lock
12
Gemfile.lock
|
|
@ -320,7 +320,7 @@ GEM
|
|||
aws-sdk-cloudformation (1.41.0)
|
||||
aws-sdk-core (~> 3, >= 3.99.0)
|
||||
aws-sigv4 (~> 1.1)
|
||||
aws-sdk-core (3.200.0)
|
||||
aws-sdk-core (3.201.3)
|
||||
aws-eventstream (~> 1, >= 1.3.0)
|
||||
aws-partitions (~> 1, >= 1.651.0)
|
||||
aws-sigv4 (~> 1.8)
|
||||
|
|
@ -328,10 +328,10 @@ GEM
|
|||
aws-sdk-kms (1.76.0)
|
||||
aws-sdk-core (~> 3, >= 3.188.0)
|
||||
aws-sigv4 (~> 1.1)
|
||||
aws-sdk-s3 (1.155.0)
|
||||
aws-sdk-core (~> 3, >= 3.199.0)
|
||||
aws-sdk-s3 (1.156.0)
|
||||
aws-sdk-core (~> 3, >= 3.201.0)
|
||||
aws-sdk-kms (~> 1)
|
||||
aws-sigv4 (~> 1.8)
|
||||
aws-sigv4 (~> 1.5)
|
||||
aws-sigv4 (1.8.0)
|
||||
aws-eventstream (~> 1, >= 1.0.2)
|
||||
axe-core-api (4.9.1)
|
||||
|
|
@ -1947,8 +1947,8 @@ DEPENDENCIES
|
|||
attr_encrypted (~> 3.2.4)!
|
||||
awesome_print
|
||||
aws-sdk-cloudformation (~> 1)
|
||||
aws-sdk-core (~> 3.200.0)
|
||||
aws-sdk-s3 (~> 1.155.0)
|
||||
aws-sdk-core (~> 3.201.0)
|
||||
aws-sdk-s3 (~> 1.156.0)
|
||||
axe-core-rspec (~> 4.9.0)
|
||||
babosa (~> 2.0)
|
||||
base32 (~> 0.3.0)
|
||||
|
|
|
|||
|
|
@ -57,8 +57,8 @@ export default {
|
|||
};
|
||||
</script>
|
||||
<template>
|
||||
<div class="gl-h-full flex gl-justify-center gl-items-center gl-p-4">
|
||||
<div class="text-center gl-max-w-75 gl-h-80">
|
||||
<div class="gl-h-full flex gl-justify-center gl-items-center overflow-auto">
|
||||
<div class="text-center gl-max-w-75 gl-p-4">
|
||||
<img :alt="$options.i18n.imgAlt" :src="$options.gitlabLogo" class="svg gl-w-12 gl-h-12" />
|
||||
<h1 class="gl-heading-display gl-my-6">{{ $options.i18n.heading }}</h1>
|
||||
<p>
|
||||
|
|
|
|||
|
|
@ -370,7 +370,11 @@ module SearchHelper
|
|||
end
|
||||
|
||||
def users_autocomplete(term, limit = 5)
|
||||
return [] unless current_user && Ability.allowed?(current_user, :read_users_list)
|
||||
unless current_user &&
|
||||
Ability.allowed?(current_user, :read_users_list) &&
|
||||
Feature.enabled?(:global_search_users_tab, current_user, type: :ops)
|
||||
return []
|
||||
end
|
||||
|
||||
::SearchService
|
||||
.new(current_user, { scope: 'users', per_page: limit, search: term })
|
||||
|
|
|
|||
|
|
@ -19,3 +19,4 @@ desired_sharding_key:
|
|||
table: merge_requests
|
||||
sharding_key: target_project_id
|
||||
belongs_to: merge_request
|
||||
desired_sharding_key_migration_job_name: BackfillApprovalsProjectId
|
||||
|
|
|
|||
|
|
@ -0,0 +1,9 @@
|
|||
---
|
||||
migration_job_name: BackfillApprovalsProjectId
|
||||
description: Backfills sharding key `approvals.project_id` from `merge_requests`.
|
||||
feature_category: code_review_workflow
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/160035
|
||||
milestone: '17.3'
|
||||
queued_migration_version: 20240719090631
|
||||
finalize_after: '2024-08-22'
|
||||
finalized_by: # version of the migration that finalized this BBM
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddProjectIdToApprovals < Gitlab::Database::Migration[2.2]
|
||||
milestone '17.3'
|
||||
|
||||
def change
|
||||
add_column :approvals, :project_id, :bigint
|
||||
end
|
||||
end
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class PrepareIndexApprovalsOnProjectId < Gitlab::Database::Migration[2.2]
|
||||
milestone '17.3'
|
||||
disable_ddl_transaction!
|
||||
|
||||
INDEX_NAME = 'index_approvals_on_project_id'
|
||||
|
||||
def up
|
||||
prepare_async_index :approvals, :project_id, name: INDEX_NAME
|
||||
end
|
||||
|
||||
def down
|
||||
unprepare_async_index :approvals, INDEX_NAME
|
||||
end
|
||||
end
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddApprovalsProjectIdTrigger < Gitlab::Database::Migration[2.2]
|
||||
milestone '17.3'
|
||||
|
||||
def up
|
||||
install_sharding_key_assignment_trigger(
|
||||
table: :approvals,
|
||||
sharding_key: :project_id,
|
||||
parent_table: :merge_requests,
|
||||
parent_sharding_key: :target_project_id,
|
||||
foreign_key: :merge_request_id
|
||||
)
|
||||
end
|
||||
|
||||
def down
|
||||
remove_sharding_key_assignment_trigger(
|
||||
table: :approvals,
|
||||
sharding_key: :project_id,
|
||||
parent_table: :merge_requests,
|
||||
parent_sharding_key: :target_project_id,
|
||||
foreign_key: :merge_request_id
|
||||
)
|
||||
end
|
||||
end
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class QueueBackfillApprovalsProjectId < Gitlab::Database::Migration[2.2]
|
||||
milestone '17.3'
|
||||
restrict_gitlab_migration gitlab_schema: :gitlab_main_cell
|
||||
|
||||
MIGRATION = "BackfillApprovalsProjectId"
|
||||
DELAY_INTERVAL = 2.minutes
|
||||
BATCH_SIZE = 5000
|
||||
SUB_BATCH_SIZE = 500
|
||||
|
||||
def up
|
||||
queue_batched_background_migration(
|
||||
MIGRATION,
|
||||
:approvals,
|
||||
:id,
|
||||
:project_id,
|
||||
:merge_requests,
|
||||
:target_project_id,
|
||||
:merge_request_id,
|
||||
job_interval: DELAY_INTERVAL,
|
||||
batch_size: BATCH_SIZE,
|
||||
sub_batch_size: SUB_BATCH_SIZE
|
||||
)
|
||||
end
|
||||
|
||||
def down
|
||||
delete_batched_background_migration(
|
||||
MIGRATION,
|
||||
:approvals,
|
||||
:id,
|
||||
[
|
||||
:project_id,
|
||||
:merge_requests,
|
||||
:target_project_id,
|
||||
:merge_request_id
|
||||
]
|
||||
)
|
||||
end
|
||||
end
|
||||
|
|
@ -0,0 +1 @@
|
|||
d324e4a8bff9cccb8649ab4cc6ea397653273675524acc8a94d2424065d1ee93
|
||||
|
|
@ -0,0 +1 @@
|
|||
d11dbf3f9ee40a575fde7f1269545c950fb8e99ff3ea2aa9424de04888df2ef8
|
||||
|
|
@ -0,0 +1 @@
|
|||
3e420f591521d9e8de4798ba65ba57f70c80145e833777bdf48c45f35375f122
|
||||
|
|
@ -0,0 +1 @@
|
|||
7245ee97292511473ed69eff6a6da6546cd11a54ba113ee3bcb941294dd79a00
|
||||
|
|
@ -777,6 +777,22 @@ RETURN NEW;
|
|||
END
|
||||
$$;
|
||||
|
||||
CREATE FUNCTION trigger_038fe84feff7() RETURNS trigger
|
||||
LANGUAGE plpgsql
|
||||
AS $$
|
||||
BEGIN
|
||||
IF NEW."project_id" IS NULL THEN
|
||||
SELECT "target_project_id"
|
||||
INTO NEW."project_id"
|
||||
FROM "merge_requests"
|
||||
WHERE "merge_requests"."id" = NEW."merge_request_id";
|
||||
END IF;
|
||||
|
||||
RETURN NEW;
|
||||
|
||||
END
|
||||
$$;
|
||||
|
||||
CREATE FUNCTION trigger_05ce163deddf() RETURNS trigger
|
||||
LANGUAGE plpgsql
|
||||
AS $$
|
||||
|
|
@ -6174,7 +6190,8 @@ CREATE TABLE approvals (
|
|||
user_id integer NOT NULL,
|
||||
created_at timestamp without time zone,
|
||||
updated_at timestamp without time zone,
|
||||
patch_id_sha bytea
|
||||
patch_id_sha bytea,
|
||||
project_id bigint
|
||||
);
|
||||
|
||||
CREATE SEQUENCE approvals_id_seq
|
||||
|
|
@ -31882,6 +31899,8 @@ CREATE TRIGGER tags_loose_fk_trigger AFTER DELETE ON tags REFERENCING OLD TABLE
|
|||
|
||||
CREATE TRIGGER trigger_01b3fc052119 BEFORE INSERT OR UPDATE ON approval_merge_request_rules FOR EACH ROW EXECUTE FUNCTION trigger_01b3fc052119();
|
||||
|
||||
CREATE TRIGGER trigger_038fe84feff7 BEFORE INSERT OR UPDATE ON approvals FOR EACH ROW EXECUTE FUNCTION trigger_038fe84feff7();
|
||||
|
||||
CREATE TRIGGER trigger_05ce163deddf BEFORE INSERT OR UPDATE ON status_check_responses FOR EACH ROW EXECUTE FUNCTION trigger_05ce163deddf();
|
||||
|
||||
CREATE TRIGGER trigger_0a1b0adcf686 BEFORE INSERT OR UPDATE ON packages_debian_project_components FOR EACH ROW EXECUTE FUNCTION trigger_0a1b0adcf686();
|
||||
|
|
|
|||
|
|
@ -209,12 +209,18 @@ Specify a comma separated list of IP addresses that can access your GitLab Dedic
|
|||
|
||||
### SAML
|
||||
|
||||
NOTE:
|
||||
GitLab Dedicated supports a limited number of SAML parameters. Parameters not shown in the configuration below are unavailable for GitLab Dedicated instances.
|
||||
You can [configure SAML single sign-on (SSO)](../../integration/saml.md#configure-saml-support-in-gitlab) for your GitLab Dedicated instance.
|
||||
|
||||
The following SAML SSO options are available:
|
||||
|
||||
- [Request signing](../../integration/saml.md#sign-saml-authentication-requests-optional)
|
||||
- [SAML SSO for groups](../../integration/saml.md#configure-users-based-on-saml-group-membership)
|
||||
- [Group sync](../../user/group/saml_sso/group_sync.md#configure-saml-group-sync)
|
||||
|
||||
Prerequisites:
|
||||
|
||||
- You must configure the identity provider before sending the required data to GitLab.
|
||||
- You must [set up the identity provider (IdP)](../../integration/saml.md#set-up-identity-providers) before you can configure SAML for GitLab Dedicated.
|
||||
- To configure GitLab to sign SAML authentication requests, you must create a private key and public certificate pair for your GitLab Dedicated instance.
|
||||
|
||||
#### Activate SAML with Switchboard
|
||||
|
||||
|
|
@ -224,9 +230,23 @@ To activate SAML for your GitLab Dedicated instance:
|
|||
1. At the top of the page, select **Configuration**.
|
||||
1. Expand **SAML Config**.
|
||||
1. Turn on the **Enable** toggle.
|
||||
1. Complete the fields.
|
||||
1. Complete the required fields:
|
||||
- SAML label
|
||||
- IdP cert fingerprint
|
||||
- IdP SSO target URL
|
||||
1. Optional. To configure users based on SAML group membership, complete the following fields:
|
||||
- SAML group attribute
|
||||
- Admin groups
|
||||
- Auditor groups
|
||||
- External groups
|
||||
- Required groups
|
||||
1. Optional. To configure SAML request signing, complete the following fields:
|
||||
- Name identifier format
|
||||
- Attribute statements
|
||||
- Security
|
||||
1. Select **Save**.
|
||||
1. Scroll up to the top of the page and select whether to apply the changes immediately or during the next maintenance window.
|
||||
1. Optional. To use group sync, [configure the SAML group links](../../user/group/saml_sso/group_sync.md#configure-saml-group-links).
|
||||
1. To verify the SAML configuration is successful:
|
||||
- Check that the SSO button description is displayed on your instance's sign-in page.
|
||||
- Go to the metadata URL of your instance (`https://INSTANCE-URL/users/auth/saml/metadata`). This page can be used to simplify much of the configuration of the identity provider, and manually validate the settings.
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ masks the problem by:
|
|||
|
||||
1. Upgrading the Gitaly binary in-place.
|
||||
1. Performing a graceful reload.
|
||||
|
||||
|
||||
The same approach doesn't fit a container-based lifecycle where a container or pod needs to fully shutdown and start as a new container or pod.
|
||||
|
||||
Gitaly Cluster (Praefect) solves the data and service high-availability aspect by replicating data across instances. However, Gitaly Cluster is unsuited to run in Kubernetes
|
||||
|
|
@ -60,9 +60,9 @@ service disruption and helps set expectations. You should use maintenance window
|
|||
- Gitaly configuration changes.
|
||||
- Kubernetes node maintenance windows. For example, upgrades and patching. Isolating Gitaly into its own dedicated node pool might help.
|
||||
|
||||
#### Use [PriorityClass](https://kubernetes.io/docs/concepts/scheduling-eviction/pod-priority-preemption/#priorityclass)
|
||||
#### Use `PriorityClass`
|
||||
|
||||
Assign Gitaly pods higher priority compared to other pods, to help with node saturation pressure, eviction priority, and scheduling latency:
|
||||
Use [PriorityClass](https://kubernetes.io/docs/concepts/scheduling-eviction/pod-priority-preemption/#priorityclass) to assign Gitaly pods higher priority compared to other pods, to help with node saturation pressure, eviction priority, and scheduling latency:
|
||||
|
||||
1. Create a priority class:
|
||||
|
||||
|
|
|
|||
|
|
@ -21594,6 +21594,7 @@ Describes an external status check.
|
|||
| Name | Type | Description |
|
||||
| ---- | ---- | ----------- |
|
||||
| <a id="externalstatuscheckexternalurl"></a>`externalUrl` | [`String!`](#string) | External URL for the status check. |
|
||||
| <a id="externalstatuscheckhmac"></a>`hmac` | [`Boolean!`](#boolean) | Whether or not HMAC secret is enabled for the status check. |
|
||||
| <a id="externalstatuscheckid"></a>`id` | [`GlobalID!`](#globalid) | ID of the rule. |
|
||||
| <a id="externalstatuscheckname"></a>`name` | [`String!`](#string) | Name of the rule. |
|
||||
|
||||
|
|
|
|||
|
|
@ -51,6 +51,7 @@ The `upload[url]` parameter is required if the `upload` parameter is present.
|
|||
|
||||
For uploads to Amazon S3, refer to [Generating a pre-signed URL for uploading objects](https://docs.aws.amazon.com/AmazonS3/latest/userguide/PresignedUrlUploadObject.html)
|
||||
documentation scripts to generate the `upload[url]`.
|
||||
Because of a [known issue](https://gitlab.com/gitlab-org/gitlab/-/issues/430277), you can only upload files with a maximum file size of 5 GB to Amazon S3.
|
||||
|
||||
```plaintext
|
||||
POST /projects/:id/export
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ works with a set of [ETL](#etl) Pipelines leveraging from the current [GitLab AP
|
|||
|
||||

|
||||
|
||||
### [ETL](https://www.ibm.com/topics/etl)
|
||||
### ETL
|
||||
|
||||
<!-- Direct quote from the IBM URL link -->
|
||||
|
||||
|
|
@ -29,7 +29,7 @@ works with a set of [ETL](#etl) Pipelines leveraging from the current [GitLab AP
|
|||
> combines data from multiple data sources into a single, consistent data store
|
||||
> that is loaded into a data warehouse or other target system.
|
||||
|
||||
Using ETL architecture makes the code more explicit and easier to follow, test and extend. The
|
||||
Using [ETL](https://www.ibm.com/topics/etl) architecture makes the code more explicit and easier to follow, test and extend. The
|
||||
idea is to have one ETL pipeline for each relation to be imported.
|
||||
|
||||
### API
|
||||
|
|
|
|||
|
|
@ -357,7 +357,9 @@ See the issue for [allowing parsing of raw Ruby objects](https://gitlab.com/gitl
|
|||
|
||||
### Generator to generate _n_ amount of records
|
||||
|
||||
### [Group Labels](https://gitlab.com/gitlab-org/gitlab/-/blob/master/spec/factories/labels.rb)
|
||||
### Group Labels
|
||||
|
||||
[Group Labels](https://gitlab.com/gitlab-org/gitlab/-/blob/master/spec/factories/labels.rb):
|
||||
|
||||
```yaml
|
||||
group_labels:
|
||||
|
|
@ -367,7 +369,9 @@ group_labels:
|
|||
color: "#FF0000"
|
||||
```
|
||||
|
||||
### [Group Milestones](https://gitlab.com/gitlab-org/gitlab/-/blob/master/spec/factories/milestones.rb)
|
||||
### Group Milestones
|
||||
|
||||
[Group Milestones](https://gitlab.com/gitlab-org/gitlab/-/blob/master/spec/factories/milestones.rb):
|
||||
|
||||
```yaml
|
||||
group_milestones:
|
||||
|
|
@ -397,7 +401,9 @@ group_milestones:
|
|||
|
||||
- You _must_ specify `group:` and have it be empty. This is because the Milestones factory manipulates the factory in an `after(:build)`. If this is not present, the Milestone cannot be associated properly with the Group.
|
||||
|
||||
### [Epics](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/spec/factories/epics.rb)
|
||||
### Epics
|
||||
|
||||
[Epics](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/spec/factories/epics.rb):
|
||||
|
||||
```yaml
|
||||
epics:
|
||||
|
|
|
|||
|
|
@ -40,8 +40,9 @@ migrating all primary keys to `bigint`, using `bigint` foreign keys
|
|||
saves time, and requires fewer steps, when migrating the parent table
|
||||
to `bigint` primary keys.
|
||||
|
||||
## Consider using `reverse_lock_order` for [high traffic tables](../migration_style_guide.md#high-traffic-tables)
|
||||
## Consider `reverse_lock_order`
|
||||
|
||||
Consider using `reverse_lock_order` for [high traffic tables](../migration_style_guide.md#high-traffic-tables)
|
||||
Both `add_concurrent_foreign_key` and `remove_foreign_key_if_exists` take a
|
||||
boolean option `reverse_lock_order` which defaults to false.
|
||||
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ bound on mounting and destroyed when the button is, mitigating the above
|
|||
issue. It also has bindings to a particular container or modal ID
|
||||
available, to work with the focus trap created by our GlModal.
|
||||
|
||||
### 3. A `gitlab-ui` component not conforming to [Pajamas Design System](https://design.gitlab.com/)
|
||||
### 3. A `gitlab-ui` component not conforming to Pajamas Design System
|
||||
|
||||
Some [Pajamas Design System](https://design.gitlab.com/) components implemented in
|
||||
`gitlab-ui` do not conform with the design system specs. This is because they lack some
|
||||
|
|
|
|||
|
|
@ -53,9 +53,9 @@ see [Immutability and cache updates](#immutability-and-cache-updates) for more i
|
|||
|
||||
<!-- vale gitlab.Spelling = YES -->
|
||||
|
||||
#### [Apollo GraphQL VS Code extension](https://marketplace.visualstudio.com/items?itemName=apollographql.vscode-apollo)
|
||||
#### Apollo GraphQL VS Code extension
|
||||
|
||||
If you use VS Code, the Apollo GraphQL extension supports autocompletion in `.graphql` files. To set up
|
||||
If you use VS Code, the [Apollo GraphQL extension](https://marketplace.visualstudio.com/items?itemName=apollographql.vscode-apollo) supports autocompletion in `.graphql` files. To set up
|
||||
the GraphQL extension, follow these steps:
|
||||
|
||||
1. Generate the schema: `bundle exec rake gitlab:graphql:schema:dump`
|
||||
|
|
|
|||
|
|
@ -115,14 +115,14 @@ Reusable components with technical and usage guidelines can be found in our
|
|||
|
||||
Read the [frontend FAQ](frontend_faq.md) for common small pieces of helpful information.
|
||||
|
||||
#### [Internationalization (i18n) and Translations](../i18n/externalization.md)
|
||||
#### Internationalization (i18n) and Translations
|
||||
|
||||
Frontend internationalization support is described in [this document](../i18n/index.md).
|
||||
Frontend internationalization support is described in [**Translate GitLab to your language**](../i18n/index.md).
|
||||
The [externalization part of the guide](../i18n/externalization.md) explains the helpers/methods available.
|
||||
|
||||
#### [Troubleshooting](troubleshooting.md)
|
||||
#### Troubleshooting
|
||||
|
||||
Running into a Frontend development problem? Check out [this guide](troubleshooting.md) to help resolve your issue.
|
||||
Running into a Frontend development problem? Check out [this troubleshooting guide](troubleshooting.md) to help resolve your issue.
|
||||
|
||||
#### Browser support
|
||||
|
||||
|
|
|
|||
|
|
@ -1305,7 +1305,9 @@ to update upcoming reconciliations for namespaces.
|
|||
|
||||
Use a PUT command to update `upcoming_reconciliations`.
|
||||
|
||||
#### Old API (deprecated, [New API](#new-update-upcoming_reconciliations-api))
|
||||
#### Old API (deprecated)
|
||||
|
||||
For the new API, see **New Update upcoming_reconciliations API** below.
|
||||
|
||||
```plaintext
|
||||
PUT /internal/upcoming_reconciliations
|
||||
|
|
@ -1370,10 +1372,12 @@ Example response:
|
|||
|
||||
### Delete an `upcoming_reconciliation`
|
||||
|
||||
#### Old API (deprecated, [New API](#new-delete-upcoming_reconciliations-api))
|
||||
#### Old API (deprecated)
|
||||
|
||||
Use a DELETE command to delete an `upcoming_reconciliation`.
|
||||
|
||||
For the new API, see **New delete upcoming_reconciliations API** below.
|
||||
|
||||
```plaintext
|
||||
DELETE /internal/upcoming_reconciliations
|
||||
```
|
||||
|
|
|
|||
|
|
@ -28,59 +28,59 @@ automated testing means, and what are its principles:
|
|||
- [Five Factor Testing](https://madeintandem.com/blog/five-factor-testing/): Why do we need tests?
|
||||
- [Principles of Automated Testing](https://www.lihaoyi.com/post/PrinciplesofAutomatedTesting.html): Levels of testing. Prioritize tests. Cost of tests.
|
||||
|
||||
## [Testing levels](testing_levels.md)
|
||||
## Testing levels
|
||||
|
||||
Learn about the different testing levels, and how to decide at what level your
|
||||
Learn about the different [testing levels](testing_levels.md), and how to decide at what level your
|
||||
changes should be tested.
|
||||
|
||||
## [Testing best practices](best_practices.md)
|
||||
## Testing best practices
|
||||
|
||||
Everything you should know about how to write good tests: Test Design, RSpec, FactoryBot,
|
||||
Everything you should know about [how to write good tests](best_practices.md): Test Design, RSpec, FactoryBot,
|
||||
system tests, parameterized tests etc.
|
||||
|
||||
## [Frontend testing standards and style guidelines](frontend_testing.md)
|
||||
## Frontend testing standards and style guidelines
|
||||
|
||||
Everything you should know about how to write good Frontend tests: Jest,
|
||||
Everything you should know about [how to write good Frontend tests](frontend_testing.md): Jest,
|
||||
testing promises, stubbing etc.
|
||||
|
||||
## [Getting started with Feature tests](frontend_testing.md#get-started-with-feature-tests)
|
||||
## Getting started with Feature tests
|
||||
|
||||
Need to get started with feature tests? Here are some general guidelines,
|
||||
Need to [get started with feature tests](frontend_testing.md#get-started-with-feature-tests)? Here are some general guidelines,
|
||||
tips and tricks to get the most out of white-box testing.
|
||||
|
||||
## [Flaky tests](flaky_tests.md)
|
||||
## Flaky tests
|
||||
|
||||
What are flaky tests, the different kind of flaky tests we encountered, and what
|
||||
What are [flaky tests](flaky_tests.md), the different kind of flaky tests we encountered, and what
|
||||
we do about them.
|
||||
|
||||
## [GitLab pipelines](../pipelines/index.md)
|
||||
## GitLab pipelines
|
||||
|
||||
How GitLab test suite is run in the CI context: setup, caches, artifacts,
|
||||
How GitLab test suite [is run in the CI context](../pipelines/index.md): setup, caches, artifacts,
|
||||
parallelization, monitoring.
|
||||
|
||||
## [Review apps](review_apps.md)
|
||||
## Review apps
|
||||
|
||||
How review apps are set up for GitLab CE/EE and how to use them.
|
||||
How [review apps](review_apps.md) are set up for GitLab CE/EE and how to use them.
|
||||
|
||||
## [Testing Rake tasks](testing_rake_tasks.md)
|
||||
## Testing Rake tasks
|
||||
|
||||
Everything you should know about how to test Rake tasks.
|
||||
Everything you should know about [how to test Rake tasks](testing_rake_tasks.md).
|
||||
|
||||
## [End-to-end tests](end_to_end/index.md)
|
||||
## End-to-end tests
|
||||
|
||||
Everything you should know about how to run end-to-end tests using
|
||||
Everything you should know about [how to run end-to-end tests](end_to_end/index.md) using
|
||||
[GitLab QA](https://gitlab.com/gitlab-org/gitlab-qa) testing framework.
|
||||
|
||||
## [Migrations tests](testing_migrations_guide.md)
|
||||
## Migrations tests
|
||||
|
||||
Everything you should know about how to test migrations.
|
||||
Everything you should know about [how to test migrations](testing_migrations_guide.md).
|
||||
|
||||
## [Contract tests](contract/index.md)
|
||||
## Contract tests
|
||||
|
||||
Introduction to contract testing, how to run the tests, and how to write them.
|
||||
[Introduction to contract testing](contract/index.md), how to run the tests, and how to write them.
|
||||
|
||||
## [Test results tracking](test_results_tracking.md)
|
||||
## Test results tracking
|
||||
|
||||
How we track our test suite run results.
|
||||
How we track our [test suite run results](test_results_tracking.md).
|
||||
|
||||
[Return to Development documentation](../index.md)
|
||||
|
|
|
|||
|
|
@ -12,10 +12,12 @@ DETAILS:
|
|||
**Status:** Beta
|
||||
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/143027) in GitLab 16.10 [with a flag](../administration/feature_flags.md) named `observability_logs`. Disabled by default. This feature is in [beta](../policy/experiment-beta-support.md#beta).
|
||||
> - Feature flag [changed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158786) in GitLab 17.3 to the `observability_features` [feature flag](../administration/feature_flags.md), disabled by default. The previous feature flag (`observability_logs`) was removed.
|
||||
|
||||
FLAG:
|
||||
This feature is only available on GitLab.com. On self-managed GitLab and GitLab Dedicated, by default this feature is not available.
|
||||
This feature is not ready for production use.
|
||||
The availability of this feature is controlled by a feature flag.
|
||||
For more information, see the history.
|
||||
This feature is available for testing, but not ready for production use.
|
||||
|
||||
GitLab supports centralized application and infrastructure logs collection, storage, and analysis.
|
||||
GitLab Logging provides insight about the operational health of monitored systems.
|
||||
|
|
|
|||
|
|
@ -12,10 +12,12 @@ DETAILS:
|
|||
**Status:** Beta
|
||||
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/124966) in GitLab 16.7 [with a flag](../administration/feature_flags.md) named `observability_metrics`. Disabled by default. This feature is an [experiment](../policy/experiment-beta-support.md#experiment).
|
||||
> - Feature flag [changed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158786) in GitLab 17.3 to the `observability_features` [feature flag](../administration/feature_flags.md), disabled by default. The previous feature flag (`observability_metrics`) was removed.
|
||||
|
||||
FLAG:
|
||||
This feature is only available on GitLab.com. On self-managed GitLab and GitLab Dedicated, by default this feature is not available.
|
||||
This feature is not ready for production use.
|
||||
The availability of this feature is controlled by a feature flag.
|
||||
For more information, see the history.
|
||||
This feature is available for testing, but not ready for production use.
|
||||
|
||||
Metrics provide insight about the operational health of monitored systems.
|
||||
Use metrics to learn more about your systems and applications in a given time range.
|
||||
|
|
|
|||
|
|
@ -11,13 +11,13 @@ DETAILS:
|
|||
**Offering:** GitLab.com
|
||||
**Status:** Beta
|
||||
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/124966) in GitLab 16.2 [with flags](../administration/feature_flags.md) named `observability_group_tab` and `observability_tracing`. Disabled by default. This feature is in [beta](../policy/experiment-beta-support.md#beta).
|
||||
> - Feature flag `observability_group_tab` [removed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/133264) in GitLab 16.5.
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/124966) in GitLab 16.2 [with a flag](../administration/feature_flags.md) named `observability_tracing`. Disabled by default. This feature is in [beta](../policy/experiment-beta-support.md#beta).
|
||||
> - Feature flag [changed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158786) in GitLab 17.3 to the `observability_features` [feature flag](../administration/feature_flags.md), disabled by default. The previous feature flag `observability_tracing` was removed.
|
||||
|
||||
FLAG:
|
||||
On GitLab.com, by default this feature is not available.
|
||||
To make it available, an administrator can [enable the feature flag](../administration/feature_flags.md) named `observability_tracing`.
|
||||
This feature is not ready for production use.
|
||||
The availability of this feature is controlled by a feature flag.
|
||||
For more information, see the history.
|
||||
This feature is available for testing, but not ready for production use.
|
||||
|
||||
With distributed tracing, you can troubleshoot application performance issues by inspecting how a request moves through different services and systems, the timing of each operation, and any errors or logs as they occur. Tracing is particularly useful in the context of microservice applications, which group multiple independent services collaborating to fulfill user requests.
|
||||
|
||||
|
|
|
|||
|
|
@ -85,17 +85,18 @@ Set up Dependency Scanning. For detailed instructions, follow [the Dependency Sc
|
|||
|
||||
```yaml
|
||||
export-merged-sbom:
|
||||
image: alpine
|
||||
before_script:
|
||||
- apk add --update jq curl
|
||||
stage: .post
|
||||
script:
|
||||
- |
|
||||
curl --header "Authorization: Bearer $PRIVATE_TOKEN"
|
||||
--output export.sh --url "https://gitlab.com/api/v4/snippets/<SNIPPET_ID>/raw"
|
||||
- |
|
||||
curl --header "Authorization: Bearer $PRIVATE_TOKEN" --output export.sh --url "https://gitlab.com/api/v4/snippets/<SNIPPET_ID>/raw"
|
||||
- /bin/sh export.sh
|
||||
artifacts:
|
||||
paths:
|
||||
- "gl-sbom-merged-*.cdx.json"
|
||||
|
||||
```
|
||||
|
||||
1. Go to **Build > Pipelines** and confirm that the latest pipeline completed successfully.
|
||||
|
|
|
|||
|
|
@ -11,14 +11,11 @@ DETAILS:
|
|||
**Offering:** GitLab.com
|
||||
**Status:** Beta
|
||||
|
||||
> - Observability features [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/124966) in GitLab 17.3 [with a flag](../../administration/feature_flags.md) named `observability_features`. Disabled by default.
|
||||
|
||||
FLAG:
|
||||
The availability of this feature is controlled by a feature flag.
|
||||
For more information, see the history.
|
||||
This feature is available for testing, but not ready for production use.
|
||||
For more information, see the history of the [**Distributed tracing** feature](../../operations/tracing.md).
|
||||
|
||||
In this tutorial, we'll show you how to create, configure, instrument and monitor a Django application using GitLab observability features.
|
||||
In this tutorial, we'll show you how to create, configure, instrument, and monitor a Django application using GitLab observability features.
|
||||
|
||||
<!-- vale gitlab.SentenceSpacing = NO -->
|
||||
|
||||
|
|
@ -178,7 +175,7 @@ To create an application:
|
|||
|
||||
1. To start collecting traces, restart the Django server. After refreshing `/animals` a few times, you should see traces in the GitLab UI.
|
||||
|
||||

|
||||

|
||||
|
||||
1. Optional. Django will also export certain metrics by default to GitLab, but custom metrics are supported too. For example, to increment a counter metric every time a page is loaded, add the following code:
|
||||
|
||||
|
|
|
|||
|
|
@ -11,12 +11,9 @@ DETAILS:
|
|||
**Offering:** GitLab.com
|
||||
**Status:** Beta
|
||||
|
||||
> - Observability tracing [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/124966) in GitLab 16.2 [with a flag](../../administration/feature_flags.md) named `observability_tracing`. Disabled by default.
|
||||
|
||||
FLAG:
|
||||
The availability of this feature is controlled by a feature flag.
|
||||
For more information, see the history.
|
||||
This feature is available for testing, but not ready for production use.
|
||||
For more information, see the history of the [**Distributed tracing** feature](../../operations/tracing.md).
|
||||
|
||||
In this tutorial, you'll learn how to configure, instrument, and monitor a NodeJS application using GitLab Observability features.
|
||||
|
||||
|
|
|
|||
|
|
@ -11,12 +11,9 @@ DETAILS:
|
|||
**Offering:** GitLab.com
|
||||
**Status:** Beta
|
||||
|
||||
> - Observability tracing [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/124966) in GitLab 16.2 [with a flag](../../administration/feature_flags.md) named `observability_tracing`. Disabled by default.
|
||||
|
||||
FLAG:
|
||||
The availability of this feature is controlled by a feature flag.
|
||||
For more information, see the history.
|
||||
This feature is available for testing, but not ready for production use.
|
||||
For more information, see the history of the [**Distributed tracing** feature](../../operations/tracing.md).
|
||||
|
||||
In this tutorial, you'll learn how to create, configure, instrument, and monitor a Ruby on Rails application using GitLab Observability features.
|
||||
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ Each row of the report shows:
|
|||
|
||||
- Project name.
|
||||
- Project path.
|
||||
- Compliance framework label if the project has one assigned.
|
||||
- Compliance framework labels if the project has one or more assigned.
|
||||
|
||||
The default framework for the group has a **default** badge.
|
||||
|
||||
|
|
@ -40,7 +40,7 @@ To view the compliance projects report:
|
|||
> - Adding compliance frameworks without using bulk actions [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/394795) in GitLab 16.0.
|
||||
> - Ability to add compliance frameworks to subgroups [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/469004) in GitLab 17.2.
|
||||
|
||||
You can apply a compliance framework to projects in a group or subgroup.
|
||||
You can apply one or more compliance frameworks to projects in a group or subgroup.
|
||||
|
||||
Prerequisites:
|
||||
|
||||
|
|
@ -51,8 +51,8 @@ To apply a compliance framework to one project in a group:
|
|||
1. On the left sidebar, select **Search or go to** and find your group.
|
||||
1. Select **Secure > Compliance center**.
|
||||
1. On the page, select the **Projects** tab.
|
||||
1. Next to the project you want to add the compliance framework to, select **{plus}** **Add framework**.
|
||||
1. Select an existing compliance framework or create a new one.
|
||||
1. Next to the project you want to add the compliance framework to, select **{pencil}** action.
|
||||
1. Select one or more existing compliance frameworks or create a new one.
|
||||
|
||||
To apply a compliance framework to multiple projects in a group:
|
||||
|
||||
|
|
|
|||
|
|
@ -43,10 +43,10 @@ the [Duo Chat examples](../gitlab_duo_chat_examples.md).
|
|||
For self-managed, the models also depend on your GitLab version.
|
||||
For the most benefit, use the latest GitLab version whenever possible.
|
||||
|
||||
#### Root cause analysis
|
||||
### Root cause analysis
|
||||
|
||||
DETAILS:
|
||||
**Tier:** Ultimate with [GitLab Duo Enterprise](../../subscriptions/subscription-add-ons.md).
|
||||
**Tier:** Ultimate with [GitLab Duo Enterprise](../../subscriptions/subscription-add-ons.md)
|
||||
**Offering:** GitLab.com, Self-managed, GitLab Dedicated
|
||||
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/123692) in GitLab 16.2 as an [experiment](../../policy/experiment-beta-support.md#experiment) on GitLab.com.
|
||||
|
|
@ -54,7 +54,7 @@ DETAILS:
|
|||
|
||||
- Helps you determine the root cause for a CI/CD job failure by analyzing the logs.
|
||||
- LLM: Anthropic's [Claude 3.5 Sonnet](https://console.cloud.google.com/vertex-ai/publishers/anthropic/model-garden/claude-3-5-sonnet)
|
||||
- [View documentation](../gitlab_duo_chat/examples.md#troubleshoot-failed-cicd-jobs-with-root-cause-analysis)
|
||||
- [View documentation](../gitlab_duo_chat/examples.md#troubleshoot-failed-cicd-jobs-with-root-cause-analysis).
|
||||
|
||||
### Code Suggestions
|
||||
|
||||
|
|
@ -194,17 +194,6 @@ DETAILS:
|
|||
- <i class="fa fa-youtube-play youtube" aria-hidden="true"></i> [Watch overview](https://www.youtube.com/watch?v=Bx6Zajyuy9k&list=PLFGfElNsQthYDx0A_FaNNfUm9NHsK6zED)
|
||||
- [View documentation](../project/merge_requests/duo_in_merge_requests.md#summarize-a-code-review).
|
||||
|
||||
### Root cause analysis
|
||||
|
||||
DETAILS:
|
||||
**Tier:** For a limited time, Ultimate. In the future, [GitLab Duo Enterprise](../../subscriptions/subscription-add-ons.md).
|
||||
**Offering:** GitLab.com
|
||||
**Status:** Experiment
|
||||
|
||||
- Helps you determine the root cause for a CI/CD job failure by analyzing the logs.
|
||||
- LLM: Vertex AI Codey [`text-bison`](https://console.cloud.google.com/vertex-ai/publishers/google/model-garden/text-bison)
|
||||
- [View documentation](../gitlab_duo_chat/examples.md#troubleshoot-failed-cicd-jobs-with-root-cause-analysis).
|
||||
|
||||
### Vulnerability resolution
|
||||
|
||||
DETAILS:
|
||||
|
|
|
|||
|
|
@ -24,7 +24,9 @@ and [must be turned on](#turn-on-beta-and-experimental-features).
|
|||
|
||||
## Configure GitLab Duo on a self-managed instance
|
||||
|
||||
To use GitLab Duo on a self-managed instance, you must ensure connectivity exists.
|
||||
To use GitLab Duo on a self-managed instance, you must ensure both outbound and inbound connectivity exists.
|
||||
|
||||
For example, network firewalls can cause lag or delay. Check both your outbound and inbound settings:
|
||||
|
||||
### Allow outbound connections from the GitLab instance
|
||||
|
||||
|
|
@ -45,6 +47,17 @@ To use GitLab Duo on a self-managed instance, you must ensure connectivity exist
|
|||
- Check for restrictions on WebSocket (`wss://`) traffic to `wss://gitlab.example.com/-/cable` and other `.com` domains.
|
||||
Network policy restrictions on `wss://` traffic can cause issues with some GitLab Duo Chat
|
||||
services. Consider policy updates to allow these services.
|
||||
- If you use reverse proxies, such as Apache, you might see GitLab Duo Chat connection issues in your logs, like **WebSocket connection to .... failures**.
|
||||
|
||||
To resolve this problem, try editing your Apache proxy settings:
|
||||
|
||||
```apache
|
||||
# Enable WebSocket reverse Proxy
|
||||
# Needs proxy_wstunnel enabled
|
||||
RewriteCond %{HTTP:Upgrade} websocket [NC]
|
||||
RewriteCond %{HTTP:Connection} upgrade [NC]
|
||||
RewriteRule ^/?(.*) "ws://127.0.0.1:8181/$1" [P,L]
|
||||
```
|
||||
|
||||
## Turn off GitLab Duo features
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,9 @@ In the Ultimate tier, the compliance framework can optionally enforce
|
|||
[compliance pipeline configuration](compliance_pipelines.md) and [security policies](../application_security/policies/scan-execution-policies.md#security-policy-scopes) to the projects on which it is applied.
|
||||
|
||||
Compliance frameworks are created on top-level groups. If a project is moved outside of its existing top-level group,
|
||||
its framework is removed.
|
||||
its frameworks are removed.
|
||||
|
||||
You can apply multiple compliance frameworks to a project.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
|
|
@ -47,7 +49,9 @@ or deleted at the subgroup or project level. Project owners can choose a framewo
|
|||
|
||||
## Add a compliance framework to a project
|
||||
|
||||
Add a compliance framework to a project. Compliance frameworks cannot be added to projects in personal namespaces.
|
||||
> - Assigning multiple compliance frameworks [introduced](https://gitlab.com/groups/gitlab-org/-/epics/13294) in GitLab 17.3.
|
||||
|
||||
Add a compliance framework to a project. You can apply multiple compliance frameworks to a project but cannot add compliance frameworks to projects in personal namespaces.
|
||||
|
||||
To assign a compliance framework to a project, apply the compliance framework through the
|
||||
[Compliance projects report](../compliance/compliance_center/compliance_projects_report.md#apply-a-compliance-framework-to-projects-in-a-group).
|
||||
|
|
|
|||
|
|
@ -329,7 +329,7 @@ replaces the default sidebar navigation:
|
|||
A `_sidebar` example, formatted with Markdown:
|
||||
|
||||
```markdown
|
||||
### [Home](home)
|
||||
### Home
|
||||
|
||||
- [Hello World](hello)
|
||||
- [Foo](foo)
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ by disabling one or more [`ops` feature flags](../../development/feature_flags/i
|
|||
| Epics | `global_search_epics_tab` | When enabled, global search includes epics. |
|
||||
| Issues | `global_search_issues_tab` | When enabled, global search includes issues. |
|
||||
| Merge requests | `global_search_merge_requests_tab` | When enabled, global search includes merge requests. |
|
||||
| Users | `global_search_users_tab` | When enabled, global search includes users. |
|
||||
| Users | `global_search_users_tab` | When enabled, global search and command palette includes users. |
|
||||
| Wiki | `global_search_wiki_tab` | When enabled, global search includes project and [group wikis](../project/wiki/group.md). |
|
||||
|
||||
All global search scopes are enabled by default on self-managed instances.
|
||||
|
|
|
|||
|
|
@ -0,0 +1,10 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module Gitlab
|
||||
module BackgroundMigration
|
||||
class BackfillApprovalsProjectId < BackfillDesiredShardingKeyJob
|
||||
operation_name :backfill_approvals_project_id
|
||||
feature_category :code_review_workflow
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -51,7 +51,7 @@ RSpec.describe 'Database schema', feature_category: :database do
|
|||
abuse_reports: %w[reporter_id user_id],
|
||||
abuse_report_notes: %w[discussion_id],
|
||||
application_settings: %w[performance_bar_allowed_group_id slack_app_id snowplow_app_id eks_account_id eks_access_key_id],
|
||||
approvals: %w[user_id],
|
||||
approvals: %w[user_id project_id],
|
||||
approver_groups: %w[target_id],
|
||||
approvers: %w[target_id user_id],
|
||||
analytics_cycle_analytics_aggregations: %w[last_full_issues_id last_full_merge_requests_id last_incremental_issues_id last_full_run_issues_id last_full_run_merge_requests_id last_incremental_merge_requests_id last_consistency_check_issues_stage_event_hash_id last_consistency_check_issues_issuable_id last_consistency_check_merge_requests_stage_event_hash_id last_consistency_check_merge_requests_issuable_id],
|
||||
|
|
|
|||
|
|
@ -471,6 +471,18 @@ RSpec.describe SearchHelper, feature_category: :global_search do
|
|||
resource_results(term, scope: scope)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when global_search_users_tab feature flag is disabled' do
|
||||
before do
|
||||
stub_feature_flags(global_search_users_tab: false)
|
||||
end
|
||||
|
||||
it 'does not return results' do
|
||||
results = resource_results('use')
|
||||
|
||||
expect(results).to be_empty
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe 'scope_specific_results' do
|
||||
|
|
@ -510,6 +522,18 @@ RSpec.describe SearchHelper, feature_category: :global_search do
|
|||
expect(scope_specific_results('sea', 'other')).to eq([])
|
||||
end
|
||||
end
|
||||
|
||||
context 'when global_search_users_tab feature flag is disabled' do
|
||||
before do
|
||||
stub_feature_flags(global_search_users_tab: false)
|
||||
end
|
||||
|
||||
it 'does not return results' do
|
||||
results = scope_specific_results('sea', 'users')
|
||||
|
||||
expect(results).to be_empty
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe 'projects_autocomplete' do
|
||||
|
|
|
|||
|
|
@ -0,0 +1,15 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'spec_helper'
|
||||
|
||||
RSpec.describe Gitlab::BackgroundMigration::BackfillApprovalsProjectId,
|
||||
feature_category: :code_review_workflow,
|
||||
schema: 20240719090628 do
|
||||
include_examples 'desired sharding key backfill job' do
|
||||
let(:batch_table) { :approvals }
|
||||
let(:backfill_column) { :project_id }
|
||||
let(:backfill_via_table) { :merge_requests }
|
||||
let(:backfill_via_column) { :target_project_id }
|
||||
let(:backfill_via_foreign_key) { :merge_request_id }
|
||||
end
|
||||
end
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'spec_helper'
|
||||
require_migration!
|
||||
|
||||
RSpec.describe QueueBackfillApprovalsProjectId, feature_category: :code_review_workflow do
|
||||
let!(:batched_migration) { described_class::MIGRATION }
|
||||
|
||||
it 'schedules a new batched migration' do
|
||||
reversible_migration do |migration|
|
||||
migration.before -> {
|
||||
expect(batched_migration).not_to have_scheduled_batched_migration
|
||||
}
|
||||
|
||||
migration.after -> {
|
||||
expect(batched_migration).to have_scheduled_batched_migration(
|
||||
table_name: :approvals,
|
||||
column_name: :id,
|
||||
interval: described_class::DELAY_INTERVAL,
|
||||
batch_size: described_class::BATCH_SIZE,
|
||||
sub_batch_size: described_class::SUB_BATCH_SIZE,
|
||||
gitlab_schema: :gitlab_main_cell,
|
||||
job_arguments: [
|
||||
:project_id,
|
||||
:merge_requests,
|
||||
:target_project_id,
|
||||
:merge_request_id
|
||||
]
|
||||
)
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
||||
Loading…
Reference in New Issue