From 88c8343af61a4d5e9f6d37daab84d0f38ecf2de9 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Fri, 26 Apr 2024 06:10:35 +0000 Subject: [PATCH] Add latest changes from gitlab-org/gitlab@master --- app/assets/javascripts/read_more.js | 17 +++ .../vue_shared/components/project_avatar.vue | 1 + .../duo_chat_requires_licensed_seat_sm.yml | 9 ++ config/initializers/postgres_partitioning.rb | 13 ++ config/initializers/sidekiq.rb | 7 + .../merge_request_diff_files_99208b8fac.yml | 19 +++ ...40311101017_remove_auto_fix_worker_jobs.rb | 10 +- ...rtitioned_merge_request_diff_files_copy.rb | 21 +++ ..._migrate_sidekiq_queued_and_future_jobs.rb | 8 +- ...20303_unschedule_stuck_bulk_import_cron.rb | 7 +- ...dule_open_ai_clear_conversations_worker.rb | 7 +- ...01_unschedule_open_ai_clear_convos_cron.rb | 5 +- db/schema_migrations/20240410200046 | 1 + db/structure.sql | 85 +++++++++++ doc/development/ai_features/index.md | 12 +- .../index.md | 2 +- .../dependency_scanning/index.md | 39 ++--- .../output_example_snapshots/html.yml | 36 ++--- .../snapshot_spec.html | 141 +++++++++++++++++- lib/banzai/filter/base_sanitization_filter.rb | 3 + lib/banzai/filter/escaped_char_filter.rb | 76 ++++++++++ .../filter/markdown_engines/glfm_markdown.rb | 1 + ... => markdown_post_escape_legacy_filter.rb} | 40 +++-- ...b => markdown_pre_escape_legacy_filter.rb} | 13 +- lib/banzai/pipeline/gfm_pipeline.rb | 1 + .../pipeline/plain_markdown_pipeline.rb | 4 +- .../background_migration/job_coordinator.rb | 4 +- .../sidekiq_shard_awareness_validation.rb | 17 +++ lib/gitlab/sidekiq_middleware.rb | 1 + lib/gitlab/sidekiq_middleware/monitor.rb | 6 +- .../shard_awareness_validator.rb | 15 ++ lib/gitlab/sidekiq_sharding/router.rb | 5 +- lib/gitlab/sidekiq_sharding/validator.rb | 70 +++++++++ lib/gitlab/sidekiq_versioning.rb | 12 +- lib/tasks/gitlab/sidekiq.rake | 25 ++-- qa/Gemfile | 2 +- qa/Gemfile.lock | 4 +- spec/db/schema_spec.rb | 3 + .../banzai/filter/escaped_char_filter_spec.rb | 53 +++++++ .../lib/banzai/pipeline/full_pipeline_spec.rb | 2 + .../pipeline/plain_markdown_pipeline_spec.rb | 39 +++-- .../job_coordinator_spec.rb | 13 +- .../sidekiq_server_middleware_spec.rb | 4 +- .../migrations/sidekiq_helpers_spec.rb | 102 +++++++------ spec/lib/gitlab/database/sharding_key_spec.rb | 1 + ...sidekiq_shard_awareness_validation_spec.rb | 26 ++++ .../gitlab/sidekiq_middleware/monitor_spec.rb | 8 +- .../shard_awareness_validator_spec.rb | 45 ++++++ spec/lib/gitlab/sidekiq_middleware_spec.rb | 1 + spec/lib/gitlab/sidekiq_migrate_jobs_spec.rb | 2 +- spec/lib/gitlab/sidekiq_queue_spec.rb | 18 ++- .../sidekiq_sharding/scheduled_enq_spec.rb | 5 +- .../gitlab/sidekiq_sharding/validator_spec.rb | 114 ++++++++++++++ spec/lib/gitlab/sidekiq_versioning_spec.rb | 3 +- ...ate_sidekiq_queued_and_future_jobs_spec.rb | 24 +-- spec/requests/api/admin/sidekiq_spec.rb | 24 ++- .../admin/sidekiq_queues/delete_jobs_spec.rb | 25 ++-- spec/sidekiq/cron/job_gem_dependency_spec.rb | 3 +- spec/spec_helper.rb | 16 ++ spec/support/redis.rb | 2 +- ...ackground_migration_job_shared_examples.rb | 4 +- spec/tasks/gitlab/snippets_rake_spec.rb | 17 ++- .../concerns/application_worker_spec.rb | 2 +- 63 files changed, 1089 insertions(+), 206 deletions(-) create mode 100644 config/feature_flags/beta/duo_chat_requires_licensed_seat_sm.yml create mode 100644 db/docs/merge_request_diff_files_99208b8fac.yml create mode 100644 db/migrate/20240410200046_create_partitioned_merge_request_diff_files_copy.rb create mode 100644 db/schema_migrations/20240410200046 create mode 100644 lib/banzai/filter/escaped_char_filter.rb rename lib/banzai/filter/{markdown_post_escape_filter.rb => markdown_post_escape_legacy_filter.rb} (71%) rename lib/banzai/filter/{markdown_pre_escape_filter.rb => markdown_pre_escape_legacy_filter.rb} (88%) create mode 100644 lib/gitlab/middleware/sidekiq_shard_awareness_validation.rb create mode 100644 lib/gitlab/sidekiq_middleware/shard_awareness_validator.rb create mode 100644 lib/gitlab/sidekiq_sharding/validator.rb create mode 100644 spec/lib/banzai/filter/escaped_char_filter_spec.rb create mode 100644 spec/lib/gitlab/middleware/sidekiq_shard_awareness_validation_spec.rb create mode 100644 spec/lib/gitlab/sidekiq_middleware/shard_awareness_validator_spec.rb create mode 100644 spec/lib/gitlab/sidekiq_sharding/validator_spec.rb diff --git a/app/assets/javascripts/read_more.js b/app/assets/javascripts/read_more.js index ea26163caff..736dc91dc5a 100644 --- a/app/assets/javascripts/read_more.js +++ b/app/assets/javascripts/read_more.js @@ -36,6 +36,23 @@ export default function initReadMore(triggerSelector = '.js-read-more-trigger') const readMoreHeight = Number(parentEl.dataset.readMoreHeight); const readMoreContent = parentEl.querySelector('.read-more-content'); + // If element exists in readMoreContent expand content automatically + // and scroll to element + if (window.location.hash) { + const targetId = window.location.href.split('#')[1]; + const hashTargetEl = readMoreContent.querySelector(`#user-content-${targetId}`); + + if (hashTargetEl) { + targetEl.classList.add('is-expanded'); + triggerEl.remove(); + window.addEventListener('load', () => { + // Trigger scrollTo event + hashTargetEl.click(); + }); + return; + } + } + if (readMoreContent) { parentEl.style.setProperty('--read-more-height', `${readMoreHeight}px`); } diff --git a/app/assets/javascripts/vue_shared/components/project_avatar.vue b/app/assets/javascripts/vue_shared/components/project_avatar.vue index 3a279b93774..0599b56af7a 100644 --- a/app/assets/javascripts/vue_shared/components/project_avatar.vue +++ b/app/assets/javascripts/vue_shared/components/project_avatar.vue @@ -57,5 +57,6 @@ export default { :alt="avatarAlt" :size="size" :fallback-on-error="true" + itemprop="image" /> diff --git a/config/feature_flags/beta/duo_chat_requires_licensed_seat_sm.yml b/config/feature_flags/beta/duo_chat_requires_licensed_seat_sm.yml new file mode 100644 index 00000000000..dba3cc24359 --- /dev/null +++ b/config/feature_flags/beta/duo_chat_requires_licensed_seat_sm.yml @@ -0,0 +1,9 @@ +--- +name: duo_chat_requires_licensed_seat_sm +feature_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/457283 +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/150391 +rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/457757 +milestone: '17.0' +group: group::duo chat +type: beta +default_enabled: false diff --git a/config/initializers/postgres_partitioning.rb b/config/initializers/postgres_partitioning.rb index 56f0d651518..337ff6b0bbd 100644 --- a/config/initializers/postgres_partitioning.rb +++ b/config/initializers/postgres_partitioning.rb @@ -63,6 +63,7 @@ end # Enable partition management for the backfill table during merge_request_diff_commits partitioning. # This way new partitions will be created as the trigger syncs new rows across to this table. +# Gitlab::Database::Partitioning.register_tables( [ { @@ -73,4 +74,16 @@ Gitlab::Database::Partitioning.register_tables( ] ) +# Enable partition management for the backfill table during merge_request_diff_files partitioning. +# This way new partitions will be created as the trigger syncs new rows across to this table. +# +Gitlab::Database::Partitioning.register_tables( + [ + { + limit_connection_names: %i[main], + table_name: 'merge_request_diff_files_99208b8fac', + partitioned_column: :merge_request_diff_id, strategy: :int_range, partition_size: 200_000_000 + } + ] +) Gitlab::Database::Partitioning.sync_partitions_ignore_db_error diff --git a/config/initializers/sidekiq.rb b/config/initializers/sidekiq.rb index 391daa176c0..512be568669 100644 --- a/config/initializers/sidekiq.rb +++ b/config/initializers/sidekiq.rb @@ -136,7 +136,14 @@ Sidekiq.configure_client do |config| config.client_middleware(&Gitlab::SidekiqMiddleware.client_configurator) end +Gitlab::Application.configure do |config| + config.middleware.use(Gitlab::Middleware::SidekiqShardAwarenessValidation) +end + Sidekiq::Scheduled::Poller.prepend Gitlab::Patch::SidekiqPoller Sidekiq::Cron::Poller.prepend Gitlab::Patch::SidekiqPoller Sidekiq::Cron::Poller.prepend Gitlab::Patch::SidekiqCronPoller + +Sidekiq::Client.prepend Gitlab::SidekiqSharding::Validator::Client +Sidekiq::RedisClientAdapter::CompatMethods.prepend Gitlab::SidekiqSharding::Validator Sidekiq::Job::Setter.prepend Gitlab::Patch::SidekiqJobSetter diff --git a/db/docs/merge_request_diff_files_99208b8fac.yml b/db/docs/merge_request_diff_files_99208b8fac.yml new file mode 100644 index 00000000000..5d9f419c866 --- /dev/null +++ b/db/docs/merge_request_diff_files_99208b8fac.yml @@ -0,0 +1,19 @@ +--- +table_name: merge_request_diff_files_99208b8fac +classes: +- MergeRequestDiffFile +feature_categories: +- code_review_workflow +description: Temporary table for partitioning the main merge_request_diff_files table +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/149181 +milestone: '17.0' +gitlab_schema: gitlab_main_cell +desired_sharding_key: + project_id: + references: projects + backfill_via: + parent: + foreign_key: merge_request_diff_id + table: merge_request_diffs + sharding_key: project_id + belongs_to: merge_request_diff diff --git a/db/migrate/20240311101017_remove_auto_fix_worker_jobs.rb b/db/migrate/20240311101017_remove_auto_fix_worker_jobs.rb index 65f8bc0e214..19a012cb8eb 100644 --- a/db/migrate/20240311101017_remove_auto_fix_worker_jobs.rb +++ b/db/migrate/20240311101017_remove_auto_fix_worker_jobs.rb @@ -5,10 +5,12 @@ class RemoveAutoFixWorkerJobs < Gitlab::Database::Migration[2.2] milestone '16.11' def up - job_to_remove = Sidekiq::Cron::Job.find('security_auto_fix') - - job_to_remove.destroy if job_to_remove - job_to_remove.disable! if job_to_remove + # TODO: make shard-aware. See https://gitlab.com/gitlab-com/gl-infra/scalability/-/issues/3430 + Gitlab::SidekiqSharding::Validator.allow_unrouted_sidekiq_calls do + job_to_remove = Sidekiq::Cron::Job.find('security_auto_fix') + job_to_remove.destroy if job_to_remove + job_to_remove.disable! if job_to_remove + end sidekiq_remove_jobs(job_klasses: ['Security::AutoFixWorker']) end diff --git a/db/migrate/20240410200046_create_partitioned_merge_request_diff_files_copy.rb b/db/migrate/20240410200046_create_partitioned_merge_request_diff_files_copy.rb new file mode 100644 index 00000000000..edca7d7a0c7 --- /dev/null +++ b/db/migrate/20240410200046_create_partitioned_merge_request_diff_files_copy.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +class CreatePartitionedMergeRequestDiffFilesCopy < Gitlab::Database::Migration[2.2] + include Gitlab::Database::PartitioningMigrationHelpers + + milestone '17.0' + disable_ddl_transaction! + + def up + partition_table_by_int_range( + 'merge_request_diff_files', + 'merge_request_diff_id', + partition_size: 200_000_000, + primary_key: %w[merge_request_diff_id relative_order] + ) + end + + def down + drop_partitioned_table_for('merge_request_diff_files') + end +end diff --git a/db/post_migrate/20240124043507_migrate_sidekiq_queued_and_future_jobs.rb b/db/post_migrate/20240124043507_migrate_sidekiq_queued_and_future_jobs.rb index a657bd9689a..ad96364ae44 100644 --- a/db/post_migrate/20240124043507_migrate_sidekiq_queued_and_future_jobs.rb +++ b/db/post_migrate/20240124043507_migrate_sidekiq_queued_and_future_jobs.rb @@ -130,8 +130,12 @@ class MigrateSidekiqQueuedAndFutureJobs < Gitlab::Database::Migration[2.2] mappings = Gitlab::SidekiqConfig.worker_queue_mappings logger = ::Gitlab::BackgroundMigration::Logger.build migrator = SidekiqMigrateJobs.new(mappings, logger: logger) - migrator.migrate_queues - %w[schedule retry].each { |set| migrator.migrate_set(set) } + + # TODO: make shard-aware. See https://gitlab.com/gitlab-com/gl-infra/scalability/-/issues/3430 + Gitlab::SidekiqSharding::Validator.allow_unrouted_sidekiq_calls do + migrator.migrate_queues + %w[schedule retry].each { |set| migrator.migrate_set(set) } + end end def down diff --git a/db/post_migrate/20240220120303_unschedule_stuck_bulk_import_cron.rb b/db/post_migrate/20240220120303_unschedule_stuck_bulk_import_cron.rb index 15ec4151763..121a468b996 100644 --- a/db/post_migrate/20240220120303_unschedule_stuck_bulk_import_cron.rb +++ b/db/post_migrate/20240220120303_unschedule_stuck_bulk_import_cron.rb @@ -8,8 +8,11 @@ class UnscheduleStuckBulkImportCron < Gitlab::Database::Migration[2.2] # This is to clean up the cron schedule for BulkImports::StuckImportWorker # which was removed in # https://gitlab.com/gitlab-org/gitlab/-/merge_requests/143806 - removed_job = Sidekiq::Cron::Job.find('bulk_imports_stuck_import_worker') - removed_job.destroy if removed_job + # TODO: make shard-aware. See https://gitlab.com/gitlab-com/gl-infra/scalability/-/issues/3430 + Gitlab::SidekiqSharding::Validator.allow_unrouted_sidekiq_calls do + removed_job = Sidekiq::Cron::Job.find('bulk_imports_stuck_import_worker') + removed_job.destroy if removed_job + end sidekiq_remove_jobs(job_klasses: %w[BulkImports::StuckImportWorker]) end diff --git a/db/post_migrate/20240223033342_unschedule_open_ai_clear_conversations_worker.rb b/db/post_migrate/20240223033342_unschedule_open_ai_clear_conversations_worker.rb index 12efb5d5768..c2abf9202e5 100644 --- a/db/post_migrate/20240223033342_unschedule_open_ai_clear_conversations_worker.rb +++ b/db/post_migrate/20240223033342_unschedule_open_ai_clear_conversations_worker.rb @@ -7,8 +7,11 @@ class UnscheduleOpenAiClearConversationsWorker < Gitlab::Database::Migration[2.2 def up # This is to clean up the cron schedule for OpenAi::ClearConversationsWorker # which was removed in https://gitlab.com/gitlab-org/gitlab/-/merge_requests/139626 - removed_job = Sidekiq::Cron::Job.find('open_ai_clear_conversations_worker') - removed_job.destroy if removed_job + # TODO: make shard-aware. See https://gitlab.com/gitlab-com/gl-infra/scalability/-/issues/3430 + Gitlab::SidekiqSharding::Validator.allow_unrouted_sidekiq_calls do + removed_job = Sidekiq::Cron::Job.find('open_ai_clear_conversations_worker') + removed_job.destroy if removed_job + end sidekiq_remove_jobs(job_klasses: %w[OpenAi::ClearConversationsWorker]) end diff --git a/db/post_migrate/20240227131801_unschedule_open_ai_clear_convos_cron.rb b/db/post_migrate/20240227131801_unschedule_open_ai_clear_convos_cron.rb index c71a44b8569..0eb63bcf655 100644 --- a/db/post_migrate/20240227131801_unschedule_open_ai_clear_convos_cron.rb +++ b/db/post_migrate/20240227131801_unschedule_open_ai_clear_convos_cron.rb @@ -8,7 +8,10 @@ class UnscheduleOpenAiClearConvosCron < Gitlab::Database::Migration[2.2] # This is to clean up the cron schedule for OpenAi::ClearConversationsWorker # which was removed in # https://gitlab.com/gitlab-org/gitlab/-/commit/8c24e145c14d64c62a5b4f6fe72726140457d9f1#be4e3233708096a83c31a905040cb84cc105703d_780_780 - Sidekiq::Cron::Job.destroy('open_ai_clear_conversations') + # TODO: make shard-aware. See https://gitlab.com/gitlab-com/gl-infra/scalability/-/issues/3430 + Gitlab::SidekiqSharding::Validator.allow_unrouted_sidekiq_calls do + Sidekiq::Cron::Job.destroy('open_ai_clear_conversations') + end sidekiq_remove_jobs(job_klasses: %w[OpenAi::ClearConversationsWorker]) end diff --git a/db/schema_migrations/20240410200046 b/db/schema_migrations/20240410200046 new file mode 100644 index 00000000000..c18f7202592 --- /dev/null +++ b/db/schema_migrations/20240410200046 @@ -0,0 +1 @@ +a752467de5e6e50304c97ed73feaafc6e99485421528ffc590d93dc8b638d68a \ No newline at end of file diff --git a/db/structure.sql b/db/structure.sql index 24c60dd3227..d0d2cd8ddc9 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -643,6 +643,67 @@ $$; COMMENT ON FUNCTION table_sync_function_0992e728d3() IS 'Partitioning migration: table sync for merge_request_diff_commits table'; +CREATE FUNCTION table_sync_function_3f39f64fc3() RETURNS trigger + LANGUAGE plpgsql + AS $$ +BEGIN +IF (TG_OP = 'DELETE') THEN + DELETE FROM merge_request_diff_files_99208b8fac where "merge_request_diff_id" = OLD."merge_request_diff_id" AND "relative_order" = OLD."relative_order"; +ELSIF (TG_OP = 'UPDATE') THEN + UPDATE merge_request_diff_files_99208b8fac + SET "new_file" = NEW."new_file", + "renamed_file" = NEW."renamed_file", + "deleted_file" = NEW."deleted_file", + "too_large" = NEW."too_large", + "a_mode" = NEW."a_mode", + "b_mode" = NEW."b_mode", + "new_path" = NEW."new_path", + "old_path" = NEW."old_path", + "diff" = NEW."diff", + "binary" = NEW."binary", + "external_diff_offset" = NEW."external_diff_offset", + "external_diff_size" = NEW."external_diff_size", + "generated" = NEW."generated" + WHERE merge_request_diff_files_99208b8fac."merge_request_diff_id" = NEW."merge_request_diff_id" AND merge_request_diff_files_99208b8fac."relative_order" = NEW."relative_order"; +ELSIF (TG_OP = 'INSERT') THEN + INSERT INTO merge_request_diff_files_99208b8fac ("new_file", + "renamed_file", + "deleted_file", + "too_large", + "a_mode", + "b_mode", + "new_path", + "old_path", + "diff", + "binary", + "external_diff_offset", + "external_diff_size", + "generated", + "merge_request_diff_id", + "relative_order") + VALUES (NEW."new_file", + NEW."renamed_file", + NEW."deleted_file", + NEW."too_large", + NEW."a_mode", + NEW."b_mode", + NEW."new_path", + NEW."old_path", + NEW."diff", + NEW."binary", + NEW."external_diff_offset", + NEW."external_diff_size", + NEW."generated", + NEW."merge_request_diff_id", + NEW."relative_order"); +END IF; +RETURN NULL; + +END +$$; + +COMMENT ON FUNCTION table_sync_function_3f39f64fc3() IS 'Partitioning migration: table sync for merge_request_diff_files table'; + CREATE FUNCTION trigger_10ee1357e825() RETURNS trigger LANGUAGE plpgsql AS $$ @@ -1171,6 +1232,25 @@ CREATE TABLE merge_request_diff_commits_b5377a7a34 ( ) PARTITION BY RANGE (merge_request_diff_id); +CREATE TABLE merge_request_diff_files_99208b8fac ( + new_file boolean NOT NULL, + renamed_file boolean NOT NULL, + deleted_file boolean NOT NULL, + too_large boolean NOT NULL, + a_mode character varying NOT NULL, + b_mode character varying NOT NULL, + new_path text NOT NULL, + old_path text NOT NULL, + diff text, + "binary" boolean, + external_diff_offset integer, + external_diff_size integer, + generated boolean, + merge_request_diff_id bigint NOT NULL, + relative_order integer NOT NULL +) +PARTITION BY RANGE (merge_request_diff_id); + CREATE TABLE p_batched_git_ref_updates_deletions ( id bigint NOT NULL, project_id bigint NOT NULL, @@ -21701,6 +21781,9 @@ ALTER TABLE ONLY merge_request_diff_commits ALTER TABLE ONLY merge_request_diff_details ADD CONSTRAINT merge_request_diff_details_pkey PRIMARY KEY (merge_request_diff_id); +ALTER TABLE ONLY merge_request_diff_files_99208b8fac + ADD CONSTRAINT merge_request_diff_files_99208b8fac_pkey PRIMARY KEY (merge_request_diff_id, relative_order); + ALTER TABLE ONLY merge_request_diff_files ADD CONSTRAINT merge_request_diff_files_pkey PRIMARY KEY (merge_request_diff_id, relative_order); @@ -29790,6 +29873,8 @@ CREATE TRIGGER push_rules_loose_fk_trigger AFTER DELETE ON push_rules REFERENCIN CREATE TRIGGER table_sync_trigger_57c8465cd7 AFTER INSERT OR DELETE OR UPDATE ON merge_request_diff_commits FOR EACH ROW EXECUTE FUNCTION table_sync_function_0992e728d3(); +CREATE TRIGGER table_sync_trigger_cd362c20e2 AFTER INSERT OR DELETE OR UPDATE ON merge_request_diff_files FOR EACH ROW EXECUTE FUNCTION table_sync_function_3f39f64fc3(); + CREATE TRIGGER tags_loose_fk_trigger AFTER DELETE ON tags REFERENCING OLD TABLE AS old_table FOR EACH STATEMENT EXECUTE FUNCTION insert_into_loose_foreign_keys_deleted_records(); CREATE TRIGGER trigger_10ee1357e825 BEFORE INSERT OR UPDATE ON p_ci_builds FOR EACH ROW EXECUTE FUNCTION trigger_10ee1357e825(); diff --git a/doc/development/ai_features/index.md b/doc/development/ai_features/index.md index 5c66cc888b9..d556c0af0a4 100644 --- a/doc/development/ai_features/index.md +++ b/doc/development/ai_features/index.md @@ -142,6 +142,8 @@ it will print useful error messages with links to the docs on how to resolve the GITLAB_SIMULATE_SAAS=1 RAILS_ENV=development bundle exec rake 'gitlab:duo:setup[]' ``` +[AI Gateway](#local-setup) still needs to be setup when using the automated setup. + **Manual way** 1. Ensure you have followed [the process to obtain an EE license](https://handbook.gitlab.com/handbook/developer-onboarding/#working-on-gitlab-ee-developer-licenses) for your local instance and you applied Ultimate license. @@ -169,6 +171,11 @@ GITLAB_SIMULATE_SAAS=1 RAILS_ENV=development bundle exec rake 'gitlab:duo:setup[ - [Here's how to reach us!](https://handbook.gitlab.com/handbook/engineering/development/data-science/ai-powered/ai-framework/#-how-to-reach-us) +## Tips for local development + +1. When responses are taking too long to appear in the user interface, consider restarting Sidekiq by running `gdk restart rails-background-jobs`. If that doesn't work, try `gdk kill` and then `gdk start`. +1. Alternatively, bypass Sidekiq entirely and run the service synchronously. This can help with debugging errors as GraphQL errors are now available in the network inspector instead of the Sidekiq logs. To do that temporary alter `perform_for` method in `Llm::CompletionWorker` class by changing `perform_async` to `perform_inline`. + ## Feature development (Abstraction Layer) ### Feature flags @@ -587,8 +594,3 @@ end ## Security Refer to the [secure coding guidelines for Artificial Intelligence (AI) features](../secure_coding_guidelines.md#artificial-intelligence-ai-features). - -## Tips for local development - -1. When responses are taking too long to appear in the user interface, consider restarting Sidekiq by running `gdk restart rails-background-jobs`. If that doesn't work, try `gdk kill` and then `gdk start`. -1. Alternatively, bypass Sidekiq entirely and run the service synchronously. This can help with debugging errors as GraphQL errors are now available in the network inspector instead of the Sidekiq logs. To do that temporary alter `perform_for` method in `Llm::CompletionWorker` class by changing `perform_async` to `perform_inline`. diff --git a/doc/user/application_security/continuous_vulnerability_scanning/index.md b/doc/user/application_security/continuous_vulnerability_scanning/index.md index 94edbf0af46..d11a137238d 100644 --- a/doc/user/application_security/continuous_vulnerability_scanning/index.md +++ b/doc/user/application_security/continuous_vulnerability_scanning/index.md @@ -20,7 +20,7 @@ When advisories are added to either the [GitLab Advisory Database](https://advis [Trivy Database](https://github.com/aquasecurity/trivy-db), Continuous Vulnerability Scanning triggers a scan on all projects where either Container Scanning, Dependency Scanning, or both, are enabled. If a new advisory affects an application or operating system dependency, it creates a -vulnerability in the project. +vulnerability in the project with the scanner value set to `GitLab SBoM Vulnerability Scanner`. NOTE: If a new operating system package is added to either the GitLab Advisory Database or Trivy diff --git a/doc/user/application_security/dependency_scanning/index.md b/doc/user/application_security/dependency_scanning/index.md index 76ec49ca2d5..a670795903f 100644 --- a/doc/user/application_security/dependency_scanning/index.md +++ b/doc/user/application_security/dependency_scanning/index.md @@ -128,14 +128,14 @@ The following languages and dependency managers are supported: Y - Java and Kotlin1 + Java and Kotlin 8 LTS, 11 LTS, 17 LTS, - or 21 LTS2 + or 21 LTS1 - Gradle3 + Gradle2