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.rb21
1 files changed, 19 insertions, 2 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 8210072eab3..2d1733421fd 100644
--- a/app/services/packages/nuget/update_package_from_metadata_service.rb
+++ b/app/services/packages/nuget/update_package_from_metadata_service.rb
@@ -8,6 +8,7 @@ module Packages
# used by ExclusiveLeaseGuard
DEFAULT_LEASE_TIMEOUT = 1.hour.to_i.freeze
+ SYMBOL_PACKAGE_IDENTIFIER = 'SymbolsPackage'
InvalidMetadataError = Class.new(StandardError)
@@ -20,7 +21,13 @@ module Packages
try_obtain_lease do
@package_file.transaction do
- package = existing_package ? link_to_existing_package : update_linked_package
+ if existing_package
+ package = link_to_existing_package
+ elsif symbol_package?
+ raise InvalidMetadataError, 'symbol package is invalid, matching package does not exist'
+ else
+ package = update_linked_package
+ end
update_package(package)
@@ -39,6 +46,8 @@ module Packages
private
def update_package(package)
+ return if symbol_package?
+
::Packages::Nuget::SyncMetadatumService
.new(package, metadata.slice(:project_url, :license_url, :icon_url))
.execute
@@ -103,6 +112,14 @@ module Packages
metadata.fetch(:package_tags, [])
end
+ def package_types
+ metadata.fetch(:package_types, [])
+ end
+
+ def symbol_package?
+ package_types.include?(SYMBOL_PACKAGE_IDENTIFIER)
+ end
+
def metadata
strong_memoize(:metadata) do
::Packages::Nuget::MetadataExtractionService.new(@package_file.id).execute
@@ -110,7 +127,7 @@ module Packages
end
def package_filename
- "#{package_name.downcase}.#{package_version.downcase}.nupkg"
+ "#{package_name.downcase}.#{package_version.downcase}.#{symbol_package? ? 'snupkg' : 'nupkg'}"
end
# used by ExclusiveLeaseGuard