diff --git a/db/migrate/20240611202050_update_default_package_metadata_purl_types_cargo.rb b/db/migrate/20240611202050_update_default_package_metadata_purl_types_cargo.rb new file mode 100644 index 0000000000000000000000000000000000000000..d58d7ea41ad0ecd47591758d31539f11e9a385da --- /dev/null +++ b/db/migrate/20240611202050_update_default_package_metadata_purl_types_cargo.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +class UpdateDefaultPackageMetadataPurlTypesCargo < Gitlab::Database::Migration[2.2] + milestone '17.2' + + disable_ddl_transaction! + + PARTIALLY_ENABLED_SYNC = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13].freeze + FULLY_ENABLED_SYNC = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14].freeze + + def change + change_column_default :application_settings, :package_metadata_purl_types, + from: PARTIALLY_ENABLED_SYNC, to: FULLY_ENABLED_SYNC + end +end diff --git a/db/migrate/20240611202115_add_cargo_purl_type_to_application_setting.rb b/db/migrate/20240611202115_add_cargo_purl_type_to_application_setting.rb new file mode 100644 index 0000000000000000000000000000000000000000..c1c86d3f911facfea1d883592cf9d608baed4fa9 --- /dev/null +++ b/db/migrate/20240611202115_add_cargo_purl_type_to_application_setting.rb @@ -0,0 +1,28 @@ +# frozen_string_literal: true + +class AddCargoPurlTypeToApplicationSetting < Gitlab::Database::Migration[2.2] + milestone '17.2' + + restrict_gitlab_migration gitlab_schema: :gitlab_main + + class ApplicationSetting < MigrationRecord + end + + CARGO_PURL_TYPE = 14 + + def up + application_setting = ApplicationSetting.last + return unless application_setting + + application_setting.package_metadata_purl_types |= [CARGO_PURL_TYPE] + application_setting.save + end + + def down + application_setting = ApplicationSetting.last + return unless application_setting + + application_setting.package_metadata_purl_types.delete(CARGO_PURL_TYPE) + application_setting.save + end +end diff --git a/db/schema_migrations/20240611202050 b/db/schema_migrations/20240611202050 new file mode 100644 index 0000000000000000000000000000000000000000..24ee041825b00079bf53209797c57747c88c22ff --- /dev/null +++ b/db/schema_migrations/20240611202050 @@ -0,0 +1 @@ +0b22e7b236e50bbee5f93fe9f9d96e2b5c9977918069e2c1d202190f18449ed6 \ No newline at end of file diff --git a/db/schema_migrations/20240611202115 b/db/schema_migrations/20240611202115 new file mode 100644 index 0000000000000000000000000000000000000000..f837661a2b3d6750e2c376edbbe277144ce3417e --- /dev/null +++ b/db/schema_migrations/20240611202115 @@ -0,0 +1 @@ +baf3dd93f9ca57aff07984074da754e20f75ad56fc687e7118463180b25e15b1 \ No newline at end of file diff --git a/db/structure.sql b/db/structure.sql index 8bb8d9bf1b8f9154fdfc74835d86076eaa1c8378..0ab812e297bcbe52ea60c2af29f55b86fb616909 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -5327,7 +5327,7 @@ CREATE TABLE application_settings ( encrypted_product_analytics_configurator_connection_string bytea, encrypted_product_analytics_configurator_connection_string_iv bytea, silent_mode_enabled boolean DEFAULT false NOT NULL, - package_metadata_purl_types smallint[] DEFAULT '{1,2,3,4,5,6,7,8,9,10,11,12,13}'::smallint[], + package_metadata_purl_types smallint[] DEFAULT '{1,2,3,4,5,6,7,8,9,10,11,12,13,14}'::smallint[], ci_max_includes integer DEFAULT 150 NOT NULL, remember_me_enabled boolean DEFAULT true NOT NULL, encrypted_anthropic_api_key bytea, diff --git a/spec/migrations/20240611202115_add_cargo_purl_type_to_application_setting_spec.rb b/spec/migrations/20240611202115_add_cargo_purl_type_to_application_setting_spec.rb new file mode 100644 index 0000000000000000000000000000000000000000..8cf96fd8e9beeedf71690ce04560686e5115359d --- /dev/null +++ b/spec/migrations/20240611202115_add_cargo_purl_type_to_application_setting_spec.rb @@ -0,0 +1,35 @@ +# frozen_string_literal: true + +require 'spec_helper' +require_migration! + +RSpec.describe AddCargoPurlTypeToApplicationSetting, feature_category: :software_composition_analysis do + let(:settings) { table(:application_settings) } + + describe "#up" do + it 'updates setting' do + settings.create!(package_metadata_purl_types: [1, 2, 4, 5, 9, 10]) + + disable_migrations_output do + migrate! + end + + expect(ApplicationSetting.last.package_metadata_purl_types).to eq([1, 2, 4, 5, 9, 10, 14]) + end + end + + describe "#down" do + context 'with default value' do + it 'updates setting' do + settings.create!(package_metadata_purl_types: [1, 2, 4, 5, 9, 10, 14]) + + disable_migrations_output do + migrate! + schema_migrate_down! + end + + expect(ApplicationSetting.last.package_metadata_purl_types).to eq([1, 2, 4, 5, 9, 10]) + end + end + end +end