Add latest changes from gitlab-org/gitlab@master

This commit is contained in:
GitLab Bot 2024-09-18 00:07:34 +00:00
parent b2ea21fff5
commit bb2e600515
44 changed files with 297 additions and 50 deletions

View File

@ -1 +1 @@
5b34830d209669e3ffa45b917104474435e0bd90
323958c43117fc44a76b4fac671a401bbec75833

View File

@ -1 +1 @@
ca089de1bada3b8c5470c7b0a5356b02e33a24e8
e45a2da54ec5766ace4f9c0f5cb25f2b59becba8

View File

@ -80,6 +80,7 @@ export default {
return {
valueIsVisible: this.initialVisibility,
mousetrap: null,
};
},
computed: {
@ -107,11 +108,11 @@ export default {
},
},
mounted() {
this.$options.mousetrap = new Mousetrap(this.$refs.input.$el);
this.$options.mousetrap.bind(MOUSETRAP_COPY_KEYBOARD_SHORTCUT, this.handleFormInputCopy);
this.mousetrap = new Mousetrap(this.$refs.input.$el);
this.mousetrap.bind(MOUSETRAP_COPY_KEYBOARD_SHORTCUT, this.handleFormInputCopy);
},
beforeDestroy() {
this.$options.mousetrap?.unbind(MOUSETRAP_COPY_KEYBOARD_SHORTCUT);
this.mousetrap?.unbind(MOUSETRAP_COPY_KEYBOARD_SHORTCUT);
},
methods: {
@ -155,7 +156,6 @@ export default {
this.$emit('input', newValue);
},
},
mousetrap: null,
};
</script>
<template>

View File

@ -27,7 +27,7 @@ module Resolvers
def preloads
{
activity_events: { activity_events: [:user, { agent_token: :agent }] },
activity_events: { activity_events: [{ user: [:user_detail, :user_preference] }, { agent_token: :agent }] },
tokens: :active_agent_tokens
}
end

View File

@ -1,8 +0,0 @@
---
name: summarize_notes_with_duo
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156650
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/477886
milestone: '17.2'
type: development
group: group::project management
default_enabled: true

View File

@ -19,3 +19,4 @@ desired_sharding_key:
table: alert_management_alerts
sharding_key: project_id
belongs_to: alert
desired_sharding_key_migration_job_name: BackfillAlertManagementAlertMetricImagesProjectId

View File

@ -0,0 +1,9 @@
---
migration_job_name: BackfillAlertManagementAlertMetricImagesProjectId
description: Backfills sharding key `alert_management_alert_metric_images.project_id` from `alert_management_alerts`.
feature_category: incident_management
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166074
milestone: '17.5'
queued_migration_version: 20240915140444
finalize_after: '2024-10-22'
finalized_by: # version of the migration that finalized this BBM

View File

@ -10,4 +10,4 @@ description: When a project is first forked, a row is created in this table. Als
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/3098
milestone: '10.1'
gitlab_schema: gitlab_main_cell
sharding_key_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/462136
sharding_key_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/490480

View File

@ -8,4 +8,4 @@ description: Geo verification states for LFS objects
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/63981
milestone: '14.6'
gitlab_schema: gitlab_main
sharding_key_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/462136
sharding_key_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/490481

View File

@ -8,4 +8,4 @@ description: LFS files
introduced_by_url: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/1727
milestone: '8.2'
gitlab_schema: gitlab_main
sharding_key_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/462136
sharding_key_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/490482

View File

@ -9,4 +9,4 @@ description: Holds information about a repository storing objects which are
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/fff7754186202cfcdeaa0962c28e5d43ddd705b7
milestone: '11.6'
gitlab_schema: gitlab_main
sharding_key_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/462136
sharding_key_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/490484

View File

@ -8,4 +8,4 @@ description: Stores merge access settings for protected branches
introduced_by_url: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/5081
milestone: '8.11'
gitlab_schema: gitlab_main_cell
sharding_key_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/462136
sharding_key_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/490485

View File

@ -8,4 +8,4 @@ description: Stores push access settings for protected branches
introduced_by_url: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/5081
milestone: '8.11'
gitlab_schema: gitlab_main_cell
sharding_key_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/462136
sharding_key_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/490486

View File

@ -10,4 +10,4 @@ milestone: '10.7'
gitlab_schema: gitlab_main_cell
allow_cross_foreign_keys:
- gitlab_main_clusterwide
sharding_key_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/462136
sharding_key_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/490487

View File

@ -8,4 +8,4 @@ description: TODO
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/1b98b5ab97ce3e9997df542059cbf3c6ce0bf0e1
milestone: '8.10'
gitlab_schema: gitlab_main_cell
sharding_key_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/462136
sharding_key_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/490488

View File

@ -8,4 +8,4 @@ description: Keeps required code owners sections
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/43573
milestone: '13.5'
gitlab_schema: gitlab_main_cell
sharding_key_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/462136
sharding_key_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/490489

View File

@ -8,4 +8,4 @@ description: Stores repository information used to version control snippets.
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/23796
milestone: '12.8'
gitlab_schema: gitlab_main
sharding_key_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/462136
sharding_key_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/490490

View File

@ -8,4 +8,4 @@ description: Keeps track of snippet repositories being moved across storages.
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/45990
milestone: '13.6'
gitlab_schema: gitlab_main
sharding_key_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/462136
sharding_key_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/490491

View File

@ -9,4 +9,4 @@ description: Stores the repository size, commit count, and file count regarding
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/35026
milestone: '13.2'
gitlab_schema: gitlab_main
sharding_key_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/462136
sharding_key_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/490492

View File

@ -9,4 +9,4 @@ description: For storing mentioned users, groups, projects referenced in a snipp
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/19009
milestone: '12.6'
gitlab_schema: gitlab_main
sharding_key_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/462136
sharding_key_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/490493

View File

@ -8,4 +8,4 @@ description: Stores data about X.509 certificate
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/17773
milestone: '12.8'
gitlab_schema: gitlab_main
sharding_key_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/462136
sharding_key_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/490494

View File

@ -8,4 +8,4 @@ description: Stores data about issuer of X.509 certificate
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/17773
milestone: '12.8'
gitlab_schema: gitlab_main
sharding_key_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/462136
sharding_key_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/490496

View File

@ -0,0 +1,9 @@
# frozen_string_literal: true
class AddProjectIdToAlertManagementAlertMetricImages < Gitlab::Database::Migration[2.2]
milestone '17.5'
def change
add_column :alert_management_alert_metric_images, :project_id, :bigint
end
end

View File

@ -0,0 +1,16 @@
# frozen_string_literal: true
class IndexAlertManagementAlertMetricImagesOnProjectId < Gitlab::Database::Migration[2.2]
milestone '17.5'
disable_ddl_transaction!
INDEX_NAME = 'index_alert_management_alert_metric_images_on_project_id'
def up
add_concurrent_index :alert_management_alert_metric_images, :project_id, name: INDEX_NAME
end
def down
remove_concurrent_index_by_name :alert_management_alert_metric_images, INDEX_NAME
end
end

View File

@ -0,0 +1,17 @@
# frozen_string_literal: true
class AddAlertManagementAlertMetricImagesProjectIdFk < Gitlab::Database::Migration[2.2]
milestone '17.5'
disable_ddl_transaction!
def up
add_concurrent_foreign_key :alert_management_alert_metric_images, :projects, column: :project_id,
on_delete: :cascade
end
def down
with_lock_retries do
remove_foreign_key :alert_management_alert_metric_images, column: :project_id
end
end
end

View File

@ -0,0 +1,25 @@
# frozen_string_literal: true
class AddAlertManagementAlertMetricImagesProjectIdTrigger < Gitlab::Database::Migration[2.2]
milestone '17.5'
def up
install_sharding_key_assignment_trigger(
table: :alert_management_alert_metric_images,
sharding_key: :project_id,
parent_table: :alert_management_alerts,
parent_sharding_key: :project_id,
foreign_key: :alert_id
)
end
def down
remove_sharding_key_assignment_trigger(
table: :alert_management_alert_metric_images,
sharding_key: :project_id,
parent_table: :alert_management_alerts,
parent_sharding_key: :project_id,
foreign_key: :alert_id
)
end
end

View File

@ -0,0 +1,40 @@
# frozen_string_literal: true
class QueueBackfillAlertManagementAlertMetricImagesProjectId < Gitlab::Database::Migration[2.2]
milestone '17.5'
restrict_gitlab_migration gitlab_schema: :gitlab_main_cell
MIGRATION = "BackfillAlertManagementAlertMetricImagesProjectId"
DELAY_INTERVAL = 2.minutes
BATCH_SIZE = 1000
SUB_BATCH_SIZE = 100
def up
queue_batched_background_migration(
MIGRATION,
:alert_management_alert_metric_images,
:id,
:project_id,
:alert_management_alerts,
:project_id,
:alert_id,
job_interval: DELAY_INTERVAL,
batch_size: BATCH_SIZE,
sub_batch_size: SUB_BATCH_SIZE
)
end
def down
delete_batched_background_migration(
MIGRATION,
:alert_management_alert_metric_images,
:id,
[
:project_id,
:alert_management_alerts,
:project_id,
:alert_id
]
)
end
end

View File

@ -0,0 +1 @@
f7e8f6a537719bd2f53501406daed6729317c2374d36a892381fc0856131c7f1

View File

@ -0,0 +1 @@
14c9ab00978c00a7081a37ff941fcffaebc67f54c917a60f5157c3f3c2e885a7

View File

@ -0,0 +1 @@
3099ae5784b9647222c5ca82ad37a6aadf027ae84d0e0aae91ff1180b23e164f

View File

@ -0,0 +1 @@
26e65032cadb1549baef1ecbde655d776034854f8ba3048033399eac48015ab0

View File

@ -0,0 +1 @@
322c89fee81174ca629115be3584567666c6f58405bc4a8dd12917c170463ba1

View File

@ -2169,6 +2169,22 @@ RETURN NEW;
END
$$;
CREATE FUNCTION trigger_ec1934755627() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
IF NEW."project_id" IS NULL THEN
SELECT "project_id"
INTO NEW."project_id"
FROM "alert_management_alerts"
WHERE "alert_management_alerts"."id" = NEW."alert_id";
END IF;
RETURN NEW;
END
$$;
CREATE FUNCTION trigger_f6c61cdddf31() RETURNS trigger
LANGUAGE plpgsql
AS $$
@ -5210,6 +5226,7 @@ CREATE TABLE alert_management_alert_metric_images (
file text NOT NULL,
url text,
url_text text,
project_id bigint,
CONSTRAINT check_2587666252 CHECK ((char_length(url_text) <= 128)),
CONSTRAINT check_4d811d9007 CHECK ((char_length(url) <= 255)),
CONSTRAINT check_70fafae519 CHECK ((char_length(file) <= 255))
@ -27069,6 +27086,8 @@ CREATE INDEX index_alert_management_alert_assignees_on_project_id ON alert_manag
CREATE INDEX index_alert_management_alert_metric_images_on_alert_id ON alert_management_alert_metric_images USING btree (alert_id);
CREATE INDEX index_alert_management_alert_metric_images_on_project_id ON alert_management_alert_metric_images USING btree (project_id);
CREATE INDEX index_alert_management_alerts_on_domain ON alert_management_alerts USING btree (domain);
CREATE INDEX index_alert_management_alerts_on_environment_id ON alert_management_alerts USING btree (environment_id) WHERE (environment_id IS NOT NULL);
@ -33105,6 +33124,8 @@ CREATE TRIGGER trigger_e49ab4d904a0 BEFORE INSERT OR UPDATE ON vulnerability_fin
CREATE TRIGGER trigger_ebab34f83f1d BEFORE INSERT OR UPDATE ON packages_debian_publications FOR EACH ROW EXECUTE FUNCTION trigger_ebab34f83f1d();
CREATE TRIGGER trigger_ec1934755627 BEFORE INSERT OR UPDATE ON alert_management_alert_metric_images FOR EACH ROW EXECUTE FUNCTION trigger_ec1934755627();
CREATE TRIGGER trigger_f6c61cdddf31 BEFORE INSERT OR UPDATE ON ml_model_metadata FOR EACH ROW EXECUTE FUNCTION trigger_f6c61cdddf31();
CREATE TRIGGER trigger_f6f59d8216b3 BEFORE INSERT OR UPDATE ON protected_environment_deploy_access_levels FOR EACH ROW EXECUTE FUNCTION trigger_f6f59d8216b3();
@ -33908,6 +33929,9 @@ ALTER TABLE ONLY packages_debian_project_components
ALTER TABLE ONLY sprints
ADD CONSTRAINT fk_80aa8a1f95 FOREIGN KEY (group_id) REFERENCES namespaces(id) ON DELETE CASCADE;
ALTER TABLE ONLY alert_management_alert_metric_images
ADD CONSTRAINT fk_80b75a6094 FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE;
ALTER TABLE ONLY related_epic_links
ADD CONSTRAINT fk_8257080565 FOREIGN KEY (group_id) REFERENCES namespaces(id) ON DELETE CASCADE;

View File

@ -183,11 +183,69 @@ Inspiration:
- <https://tailwindcss.com/docs/utility-first>
- <https://tailwindcss.com/docs/extracting-components>
### Leveraging Tailwind CSS in stylesheets
### Leveraging Tailwind CSS in HTML and in stylesheets
When writing custom SCSS, you may want to inherit style definitions from the design system without
needing to figure out the relevant properties or values. To simplify this process, you can use
Tailwind CSS's [`@apply` directive](https://tailwindcss.com/docs/reusing-styles#extracting-classes-with-apply)
When writing component classes, it's important to effectively integrate Tailwind CSS's utility classes to
maintain consistency with the design system and keeping the CSS bundles small.
**Utility CSS Classes in HTML vs. in stylesheets:**
By using the utility classes directly in the HTML, we can keep the CSS file size smaller and adhere
to the utility-first philosophy. By avoiding to combine utility classes with custom styles in one components class
unless absolutely necessary, we can prevent confusion and potential conflicts.
- **Reasons for the Preference:**
- **Smaller CSS File Size:** Utilizing utility classes directly can lead to more compact CSS files and
promote a more consistent design system.
- **Clarity and Maintainability:** When utility classes are used in HTML, it's clearer how styles are
applied, reducing the risk of conflicts and regressions.
- **Potential Issues with Combining Styles:**
- **Conflicts:** If utility classes and custom styles are combined in a single class, conflicts can arise,
especially when the styles have interdependencies.
- **Regressions:** It becomes less obvious how styles should resolve, leading to possible regressions
or unexpected behavior.
By following these guidelines, we can create clean, maintainable stylesheets that leverage Tailwind CSS effectively.
#### 1. Use utility classes directly in HTML (preferred approach)
For better maintainability and to adhere to the utility-first principle, add utility classes directly
to the HTML element. A component class should primarily contain only the non-utility CSS styles.
In the following example, you add the utility classes `gl-fixed` and `gl-inset-x-0`, instead of adding
`position: fixed; right: 0; left: 0;` to the SCSS file:
```html
<!-- Bad -->
<div class="my-class"></div>
<style>
.my-class {
top: $header-height;
z-index: 999;
position: fixed;
left: 0px;
right: 0px;
}
</style>
<!-- Good -->
<div class="my-class gl-fixed gl-inset-x-0"></div>
<style>
.my-class {
top: $header-height;
z-index: 999;
}
</style>
```
#### 2. Apply utility classes in component classes (when necessary)
Sometime it might not feasible to use utility classes directly in HTML and you need to include them in our
custom SCSS files. Then, you might want to inherit style definitions from the design system without needing to figure
out the relevant properties or values. To simplify this process, you can use Tailwind CSS's
[`@apply` directive](https://tailwindcss.com/docs/reusing-styles#extracting-classes-with-apply)
to include utilities' style definitions in your custom styles.
Using `@apply` is _encouraged_ for applying CSS properties that depend on the design system (e.g. `margin`, `padding`).

View File

@ -4,14 +4,15 @@ group: unassigned
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review.
---
# Sidekiq limited capacity worker
NOTE:
The following documentation for limited capacity worker relates to a specific
type of worker that usually does not take arguments but instead gets work from
a custom queue (e.g. a PostgresSQL backlog of work). It cannot be used for
throttling normal Sidekiq workers. To restrict the concurrency of a normal
Sidekiq worker you can use a [concurrency limit](worker_attributes.md#concurrency-limit).
# Sidekiq limited capacity worker
It is possible to limit the number of concurrent running jobs for a worker class
by using the `LimitedCapacity::Worker` concern.

View File

@ -325,11 +325,6 @@ DETAILS:
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/454550) to GitLab Duo and promoted to [beta](../../policy/experiment-beta-support.md#beta) in GitLab 17.3 [with a flag](../../administration/feature_flags.md) named `summarize_notes_with_duo`. Disabled by default.
> - [Enabled by default](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/162122) in GitLab 17.4.
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.
Generate a summary of discussions on an issue.
Prerequisites:

View File

@ -0,0 +1,10 @@
# frozen_string_literal: true
module Gitlab
module BackgroundMigration
class BackfillAlertManagementAlertMetricImagesProjectId < BackfillDesiredShardingKeyJob
operation_name :backfill_alert_management_alert_metric_images_project_id
feature_category :incident_management
end
end
end

View File

@ -55566,9 +55566,6 @@ msgstr ""
msgid "This epic does not exist or you don't have sufficient permission."
msgstr ""
msgid "This feature is not enabled yet."
msgstr ""
msgid "This feature requires local storage to be enabled"
msgstr ""

View File

@ -1,7 +1,7 @@
import { GlAlert } from '@gitlab/ui';
import { nextTick } from 'vue';
import { setHTMLFixture, resetHTMLFixture } from 'helpers/fixtures';
import { mountExtended } from 'helpers/vue_test_utils_helper';
import { shallowMountExtended } from 'helpers/vue_test_utils_helper';
import NewAccessTokenApp from '~/access_tokens/components/new_access_token_app.vue';
import { EVENT_ERROR, EVENT_SUCCESS, FORM_SELECTOR } from '~/access_tokens/components/constants';
import { createAlert, VARIANT_INFO } from '~/alert';
@ -17,7 +17,7 @@ describe('~/access_tokens/components/new_access_token_app', () => {
const accessTokenType = 'personal access token';
const createComponent = (provide = { accessTokenType }) => {
wrapper = mountExtended(NewAccessTokenApp, {
wrapper = shallowMountExtended(NewAccessTokenApp, {
provide,
});
};

View File

@ -1,4 +1,4 @@
import { mountExtended } from 'helpers/vue_test_utils_helper';
import { shallowMountExtended } from 'helpers/vue_test_utils_helper';
import Token from '~/access_tokens/components/token.vue';
import InputCopyToggleVisibility from '~/vue_shared/components/form/input_copy_toggle_visibility.vue';
@ -20,7 +20,7 @@ describe('Token', () => {
};
const createComponent = () => {
wrapper = mountExtended(Token, { propsData: defaultPropsData, slots: defaultSlots });
wrapper = shallowMountExtended(Token, { propsData: defaultPropsData, slots: defaultSlots });
};
it('renders title slot', () => {

View File

@ -40,7 +40,7 @@ describe('InputCopyToggleVisibility', () => {
return event;
};
const triggerCopyShortcut = () => {
wrapper.vm.$options.mousetrap.trigger(MOUSETRAP_COPY_KEYBOARD_SHORTCUT);
wrapper.vm.mousetrap.trigger(MOUSETRAP_COPY_KEYBOARD_SHORTCUT);
};
function expectInputToBeMasked() {

View File

@ -0,0 +1,15 @@
# frozen_string_literal: true
require 'spec_helper'
RSpec.describe Gitlab::BackgroundMigration::BackfillAlertManagementAlertMetricImagesProjectId,
feature_category: :incident_management,
schema: 20240915140440 do
include_examples 'desired sharding key backfill job' do
let(:batch_table) { :alert_management_alert_metric_images }
let(:backfill_column) { :project_id }
let(:backfill_via_table) { :alert_management_alerts }
let(:backfill_via_column) { :project_id }
let(:backfill_via_foreign_key) { :alert_id }
end
end

View File

@ -0,0 +1,33 @@
# frozen_string_literal: true
require 'spec_helper'
require_migration!
RSpec.describe QueueBackfillAlertManagementAlertMetricImagesProjectId, feature_category: :incident_management 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: :alert_management_alert_metric_images,
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,
:alert_management_alerts,
:project_id,
:alert_id
]
)
}
end
end
end

View File

@ -128,7 +128,7 @@ RSpec.describe 'Project.cluster_agents', feature_category: :deployment_managemen
})
end
it 'preloads associations to prevent N+1 queries', quarantine: 'https://gitlab.com/gitlab-org/gitlab/-/issues/350868' do
it 'preloads associations to prevent N+1 queries' do
user = create(:user)
token = create(:cluster_agent_token, agent: agents.second)
create(:agent_activity_event, agent: agents.second, agent_token: token, user: user)