57 lines
1.7 KiB
Ruby
57 lines
1.7 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
class BackfillSoftwareLicensesSpdxIdentifiers < ActiveRecord::Migration[5.2]
|
|
include Gitlab::Database::MigrationHelpers
|
|
|
|
DOWNTIME = false
|
|
CURRENT_LICENSES = {
|
|
'AGPL-1.0' => 'AGPL-1.0',
|
|
'AGPL-3.0' => 'AGPL-3.0',
|
|
'Apache 2.0' => 'Apache-2.0',
|
|
'Artistic-2.0' => 'Artistic-2.0',
|
|
'BSD' => 'BSD-4-Clause',
|
|
'CC0 1.0 Universal' => 'CC0-1.0',
|
|
'CDDL-1.0' => 'CDDL-1.0',
|
|
'CDDL-1.1' => 'CDDL-1.1',
|
|
'EPL-1.0' => 'EPL-1.0',
|
|
'EPL-2.0' => 'EPL-2.0',
|
|
'GPLv2' => 'GPL-2.0',
|
|
'GPLv3' => 'GPL-3.0',
|
|
'ISC' => 'ISC',
|
|
'LGPL' => 'LGPL-3.0-only',
|
|
'LGPL-2.1' => 'LGPL-2.1',
|
|
'MIT' => 'MIT',
|
|
'Mozilla Public License 2.0' => 'MPL-2.0',
|
|
'MS-PL' => 'MS-PL',
|
|
'MS-RL' => 'MS-RL',
|
|
'New BSD' => 'BSD-3-Clause',
|
|
'Python Software Foundation License' => 'Python-2.0',
|
|
'ruby' => 'Ruby',
|
|
'Simplified BSD' => 'BSD-2-Clause',
|
|
'WTFPL' => 'WTFPL',
|
|
'Zlib' => 'Zlib'
|
|
}.freeze
|
|
|
|
disable_ddl_transaction!
|
|
|
|
# 25 records to be updated on GitLab.com
|
|
def up
|
|
return unless Gitlab.ee?
|
|
|
|
say "Expect #{CURRENT_LICENSES.count} updates to the software_licenses table to occur"
|
|
CURRENT_LICENSES.each do |name, spdx_identifier|
|
|
# The following cop is disabled because of https://gitlab.com/gitlab-org/gitlab/issues/33470
|
|
# For more context see https://gitlab.com/gitlab-org/gitlab/merge_requests/17004#note_226264823
|
|
# rubocop:disable Migration/UpdateColumnInBatches
|
|
update_column_in_batches(:software_licenses, :spdx_identifier, spdx_identifier) do |table, query|
|
|
query.where(table[:name].eq(name))
|
|
end
|
|
end
|
|
end
|
|
|
|
def down
|
|
return unless Gitlab.ee?
|
|
|
|
update_column_in_batches(:software_licenses, :spdx_identifier, nil)
|
|
end
|
|
end
|