Class: Dependabot::NpmAndYarn::Package::RegistryFinder
- Inherits:
-
Object
- Object
- Dependabot::NpmAndYarn::Package::RegistryFinder
- Extended by:
- T::Sig
- Defined in:
- lib/dependabot/npm_and_yarn/package/registry_finder.rb
Constant Summary collapse
- GLOBAL_NPM_REGISTRY =
"https://registry.npmjs.org"- CENTRAL_REGISTRIES =
%w( https://registry.npmjs.org http://registry.npmjs.org https://registry.yarnpkg.com http://registry.yarnpkg.com ).freeze
- NPM_AUTH_TOKEN_REGEX =
%r{//(?<registry>.*)/:_authToken=(?<token>.*)$}- NPM_GLOBAL_REGISTRY_REGEX =
/^registry\s*=\s*['"]?(?<registry>.*?)['"]?$/- YARN_GLOBAL_REGISTRY_REGEX =
/^(?:--)?registry\s+((['"](?<registry>.*)['"])|(?<registry>.*))/- NPM_SCOPED_REGISTRY_REGEX =
/^(?<scope>@[^:]+)\s*:registry\s*=\s*['"]?(?<registry>.*?)['"]?$/- YARN_SCOPED_REGISTRY_REGEX =
/['"](?<scope>@[^:]+):registry['"]\s((['"](?<registry>.*)['"])|(?<registry>.*))/
Class Method Summary collapse
Instance Method Summary collapse
- #auth_headers ⇒ Object
- #custom_registry? ⇒ Boolean
- #dependency_url ⇒ Object
-
#initialize(dependency:, credentials:, npmrc_file: nil, yarnrc_file: nil, yarnrc_yml_file: nil) ⇒ RegistryFinder
constructor
A new instance of RegistryFinder.
- #registry ⇒ Object
- #registry_from_rc(dependency_name) ⇒ Object
- #tarball_url(version) ⇒ Object
Constructor Details
#initialize(dependency:, credentials:, npmrc_file: nil, yarnrc_file: nil, yarnrc_yml_file: nil) ⇒ RegistryFinder
Returns a new instance of RegistryFinder.
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/dependabot/npm_and_yarn/package/registry_finder.rb', line 38 def initialize( dependency:, credentials:, npmrc_file: nil, yarnrc_file: nil, yarnrc_yml_file: nil ) @dependency = dependency @credentials = credentials @npmrc_file = npmrc_file @yarnrc_file = yarnrc_file @yarnrc_yml_file = yarnrc_yml_file @registry = T.let(nil, T.nilable(String)) @first_registry_with_dependency_details = T.let(nil, T.nilable(String)) @known_registries = T.let([], T::Array[T::Hash[String, T.nilable(String)]]) @configured_global_registry = T.let(nil, T.nilable(String)) @global_registry = T.let(nil, T.nilable(String)) @parsed_yarnrc_yml = T.let(nil, T.nilable(T::Hash[String, T.untyped])) end |
Class Method Details
.central_registry?(registry) ⇒ Boolean
86 87 88 89 90 |
# File 'lib/dependabot/npm_and_yarn/package/registry_finder.rb', line 86 def self.central_registry?(registry) CENTRAL_REGISTRIES.any? do |r| r.include?(registry) end end |
Instance Method Details
#auth_headers ⇒ Object
68 69 70 |
# File 'lib/dependabot/npm_and_yarn/package/registry_finder.rb', line 68 def auth_headers auth_header_for(auth_token) end |
#custom_registry? ⇒ Boolean
98 99 100 101 102 |
# File 'lib/dependabot/npm_and_yarn/package/registry_finder.rb', line 98 def custom_registry? return false if CENTRAL_REGISTRIES.include?(registry_url) !(registry_url || "").match?(/registry\.npmjs\.(org|com)/) end |
#dependency_url ⇒ Object
73 74 75 |
# File 'lib/dependabot/npm_and_yarn/package/registry_finder.rb', line 73 def dependency_url "#{registry_url}/#{escaped_dependency_name}" end |
#registry ⇒ Object
60 61 62 63 64 65 |
# File 'lib/dependabot/npm_and_yarn/package/registry_finder.rb', line 60 def registry return @registry if @registry @registry = configured_registry || locked_registry || first_registry_with_dependency_details T.must(@registry) end |
#registry_from_rc(dependency_name) ⇒ Object
93 94 95 |
# File 'lib/dependabot/npm_and_yarn/package/registry_finder.rb', line 93 def registry_from_rc(dependency_name) explicit_registry_from_rc(dependency_name) || global_registry end |
#tarball_url(version) ⇒ Object
78 79 80 81 82 83 |
# File 'lib/dependabot/npm_and_yarn/package/registry_finder.rb', line 78 def tarball_url(version) = version.to_s.gsub(/\+.*/, "") # Dependency name needs to be unescaped since tarball URLs don't always work with escaped slashes "#{registry_url}/#{dependency&.name}/-/#{scopeless_name}-#{version_without_build_metadata}.tgz" end |