@@ -36,6 +36,7 @@ class Packages::Package < ApplicationRecord
36
36
# TODO: put the installable default scope on the :package_files association once the dependent: :destroy is removed
37
37
# See https://gitlab.com/gitlab-org/gitlab/-/issues/349191
38
38
has_many :installable_package_files , -> { installable } , class_name : 'Packages::PackageFile' , inverse_of : :package
39
+ has_many :installable_nuget_package_files , -> { installable . with_nuget_format } , class_name : 'Packages::PackageFile' , inverse_of : :package
39
40
has_many :dependency_links , inverse_of : :package , class_name : 'Packages::DependencyLink'
40
41
has_many :tags , inverse_of : :package , class_name : 'Packages::Tag'
41
42
has_one :conan_metadatum , inverse_of : :package , class_name : 'Packages::Conan::Metadatum'
@@ -128,6 +129,7 @@ class Packages::Package < ApplicationRecord
128
129
scope :including_project_namespace_route , -> { includes ( project : { namespace : :route } ) }
129
130
scope :including_tags , -> { includes ( :tags ) }
130
131
scope :including_dependency_links , -> { includes ( dependency_links : :dependency ) }
132
+ scope :including_dependency_links_with_nuget_metadatum , -> { includes ( dependency_links : [ :dependency , :nuget_metadatum ] ) }
131
133
132
134
scope :with_conan_channel , -> ( package_channel ) do
133
135
joins ( :conan_metadatum ) . where ( packages_conan_metadata : { package_channel : package_channel } )
@@ -149,12 +151,14 @@ class Packages::Package < ApplicationRecord
149
151
end
150
152
scope :preload_composer , -> { preload ( :composer_metadatum ) }
151
153
scope :preload_npm_metadatum , -> { preload ( :npm_metadatum ) }
154
+ scope :preload_nuget_metadatum , -> { preload ( :nuget_metadatum ) }
152
155
scope :preload_pypi_metadatum , -> { preload ( :pypi_metadatum ) }
153
156
154
157
scope :without_nuget_temporary_name , -> { where . not ( name : Packages ::Nuget ::TEMPORARY_PACKAGE_NAME ) }
155
158
156
159
scope :has_version , -> { where . not ( version : nil ) }
157
160
scope :preload_files , -> { preload ( :installable_package_files ) }
161
+ scope :preload_nuget_files , -> { preload ( :installable_nuget_package_files ) }
158
162
scope :preload_pipelines , -> { preload ( pipelines : :user ) }
159
163
scope :last_of_each_version , -> { where ( id : all . select ( 'MAX(id) AS id' ) . group ( :version ) ) }
160
164
scope :limit_recent , -> ( limit ) { order_created_desc . limit ( limit ) }
0 commit comments