Module: API::Helpers::Packages::Npm
Constant Summary
collapse
- NPM_ENDPOINT_REQUIREMENTS =
{
package_name: API::NO_SLASH_URL_PART_REGEX
}.freeze
API::Helpers::PackagesHelpers::ALLOWED_REQUIRED_PERMISSIONS, API::Helpers::PackagesHelpers::MAX_PACKAGE_FILE_SIZE
Instance Method Summary
collapse
extended, extensions, included, method_added, override, prepended, queue_verification, verify!
#authorize_create_package!, #authorize_destroy_package!, #authorize_packages_access!, #authorize_read_package!, #authorize_upload!, #authorize_workhorse!, #present_package_file!, #require_dependency_proxy_enabled!, #require_packages_enabled!, #track_package_event, #user_project, #user_project_with_read_package
Instance Method Details
88
89
90
91
92
|
# File 'lib/api/helpers/packages/npm.rb', line 88
def enqueue_sync_metadata_cache_worker(project, package_name)
return unless Feature.enabled?(:npm_metadata_cache, project)
::Packages::Npm::CreateMetadataCacheWorker.perform_async(project.id, package_name)
end
|
#finder_for_endpoint_scope(package_name) ⇒ Object
32
33
34
35
36
37
38
39
40
41
|
# File 'lib/api/helpers/packages/npm.rb', line 32
def finder_for_endpoint_scope(package_name)
case endpoint_scope
when :project
::Packages::Npm::PackageFinder.new(package_name, project: project_or_nil)
when :instance
::Packages::Npm::PackageFinder.new(package_name, namespace: top_namespace_from(package_name))
when :group
::Packages::Npm::PackageFinder.new(package_name, namespace: group)
end
end
|
#project ⇒ Object
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
# File 'lib/api/helpers/packages/npm.rb', line 15
def project
case endpoint_scope
when :project
user_project(action: :read_package)
when :instance, :group
project_id = project_id_or_nil
not_found!('Project') unless project_id
find_project!(project_id)
end
end
|
#project_id_or_nil ⇒ Object
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
# File 'lib/api/helpers/packages/npm.rb', line 52
def project_id_or_nil
case endpoint_scope
when :project
params[:id]
when :group
finder = ::Packages::Npm::PackageFinder.new(
params[:package_name],
namespace: group
)
finder.last&.project_id
when :instance
package_name = params[:package_name]
namespace =
if Feature.enabled?(:npm_allow_packages_in_multiple_projects)
top_namespace_from(package_name)
else
namespace_path = ::Packages::Npm.scope_of(package_name)
return unless namespace_path
Namespace.top_most.by_path(namespace_path)
end
return unless namespace
finder = ::Packages::Npm::PackageFinder.new(
package_name,
namespace: namespace
)
finder.last&.project_id
end
end
|
#project_or_nil ⇒ Object
43
44
45
46
47
48
49
|
# File 'lib/api/helpers/packages/npm.rb', line 43
def project_or_nil
return unless project_id_or_nil
find_project(project_id_or_nil)
end
|