Class: Dependabot::NpmAndYarn::UpdateChecker::RegistryFinder

Inherits:
Object
  • Object
show all
Defined in:
lib/dependabot/npm_and_yarn/update_checker/registry_finder.rb

Constant Summary collapse

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

Constructor Details

#initialize(dependency:, credentials:, npmrc_file: nil, yarnrc_file: nil, yarnrc_yml_file: nil) ⇒ RegistryFinder

Returns a new instance of RegistryFinder.



23
24
25
26
27
28
29
30
# File 'lib/dependabot/npm_and_yarn/update_checker/registry_finder.rb', line 23

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
end

Class Method Details

.central_registry?(registry) ⇒ Boolean

Returns:

  • (Boolean)


44
45
46
47
48
# File 'lib/dependabot/npm_and_yarn/update_checker/registry_finder.rb', line 44

def self.central_registry?(registry)
  CENTRAL_REGISTRIES.any? do |r|
    r.include?(registry)
  end
end

Instance Method Details

#auth_headersObject



36
37
38
# File 'lib/dependabot/npm_and_yarn/update_checker/registry_finder.rb', line 36

def auth_headers
  auth_header_for(auth_token)
end

#dependency_urlObject



40
41
42
# File 'lib/dependabot/npm_and_yarn/update_checker/registry_finder.rb', line 40

def dependency_url
  "#{registry_url.gsub(%r{/+$}, '')}/#{escaped_dependency_name}"
end

#registryObject



32
33
34
# File 'lib/dependabot/npm_and_yarn/update_checker/registry_finder.rb', line 32

def registry
  locked_registry || first_registry_with_dependency_details
end

#registry_from_rc(dependency_name) ⇒ Object



50
51
52
53
54
55
# File 'lib/dependabot/npm_and_yarn/update_checker/registry_finder.rb', line 50

def registry_from_rc(dependency_name)
  return global_registry unless dependency_name.start_with?("@") && dependency_name.include?("/")

  scope = dependency_name.split("/").first
  scoped_registry(scope)
end