Class: Dependabot::Sbt::FileParser::RepositoriesFinder

Inherits:
Object
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/dependabot/sbt/file_parser/repositories_finder.rb

Constant Summary collapse

CENTRAL_REPO_URL =
"https://repo.maven.apache.org/maven2"
RESOLVER_AT_REGEX =

Matches: resolvers += "Name" at "https://url"

/resolvers\s*\+?=\s*(?:Seq\s*\()?\s*"[^"]*"\s+at\s+"(?<url>[^"]+)"/
RESOLVER_SEQ_AT_REGEX =

Matches: resolvers ++= Seq("Name" at "url", ...)

/"[^"]*"\s+at\s+"(?<url>[^"]+)"/
RESOLVER_URL_REGEX =

Matches: Resolver.url("name", url("https://url&quot;))

/Resolver\.url\(\s*"[^"]*"\s*,\s*url\(\s*"(?<url>[^"]+)"\s*\)/
MAVEN_REPOSITORY_REGEX =

Matches: MavenRepository("name", "https://url&quot;)

/MavenRepository\(\s*"[^"]*"\s*,\s*"(?<url>[^"]+)"\s*\)/

Instance Method Summary collapse

Constructor Details

#initialize(dependency_files:, credentials: []) ⇒ RepositoriesFinder

Returns a new instance of RepositoriesFinder.



34
35
36
37
# File 'lib/dependabot/sbt/file_parser/repositories_finder.rb', line 34

def initialize(dependency_files:, credentials: [])
  @dependency_files = dependency_files
  @credentials = credentials
end

Instance Method Details

#repository_urlsObject



40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/dependabot/sbt/file_parser/repositories_finder.rb', line 40

def repository_urls
  urls = T.let([], T::Array[String])

  sbt_files.each do |file|
    urls += repository_urls_from(file)
  end

  # SBT always includes Maven Central as a default resolver.
  # Custom resolvers supplement but don't replace it.
  urls << central_repo_url unless urls.include?(central_repo_url)

  urls.uniq
end