Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/services/packages/nuget/update_package_from_metadata_service.rb')
-rw-r--r--app/services/packages/nuget/update_package_from_metadata_service.rb39
1 files changed, 19 insertions, 20 deletions
diff --git a/app/services/packages/nuget/update_package_from_metadata_service.rb b/app/services/packages/nuget/update_package_from_metadata_service.rb
index 258f8c8f6aa..4cec4ed2fae 100644
--- a/app/services/packages/nuget/update_package_from_metadata_service.rb
+++ b/app/services/packages/nuget/update_package_from_metadata_service.rb
@@ -54,13 +54,16 @@ module Packages
update_linked_package
end
- update_package(target_package)
+ build_infos = package_to_destroy&.build_infos || []
+
+ update_package(target_package, build_infos)
+ update_symbol_files(target_package, package_to_destroy) if symbol_package?
::Packages::UpdatePackageFileService.new(@package_file, package_id: target_package.id, file_name: package_filename)
.execute
package_to_destroy&.destroy!
end
- def update_package(package)
+ def update_package(package, build_infos)
return if symbol_package?
::Packages::Nuget::SyncMetadatumService
@@ -71,28 +74,21 @@ module Packages
.new(package, package_tags)
.execute
+ package.build_infos << build_infos if build_infos.any?
rescue StandardError => e
raise InvalidMetadataError, e.message
end
+ def update_symbol_files(package, package_to_destroy)
+ package_to_destroy.nuget_symbols.update_all(package_id: package.id)
+ end
+
def valid_metadata?
fields = [package_name, package_version, package_description]
fields << package_authors unless symbol_package?
fields.all?(&:present?)
end
- def link_to_existing_package
- package_to_destroy = @package_file.package
- # Updating package_id updates the path where the file is stored.
- # We must pass the file again so that CarrierWave can handle the update
- @package_file.update!(
- package_id: existing_package.id,
- file: @package_file.file
- )
- package_to_destroy.destroy!
- existing_package
- end
-
def update_linked_package
@package_file.package.update!(
name: package_name,
@@ -106,12 +102,15 @@ module Packages
end
def existing_package
- @package_file.project.packages
- .nuget
- .with_name(package_name)
- .with_version(package_version)
- .not_pending_destruction
- .first
+ ::Packages::Nuget::PackageFinder
+ .new(
+ nil,
+ @package_file.project,
+ package_name: package_name,
+ package_version: package_version
+ )
+ .execute
+ .first
end
strong_memoize_attr :existing_package