From 4a5683900af480286f716c7e977efaafd4cf45f9 Mon Sep 17 00:00:00 2001 From: Roman Langolf Date: Thu, 22 Feb 2024 17:10:40 +0700 Subject: [PATCH 1/4] replace URL with URI --- .../org/scalasteward/sbt/plugin/StewardPlugin_1_3_11.scala | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/sbt-plugin-1_3_11/src/main/scala/org/scalasteward/sbt/plugin/StewardPlugin_1_3_11.scala b/modules/sbt-plugin-1_3_11/src/main/scala/org/scalasteward/sbt/plugin/StewardPlugin_1_3_11.scala index ad6b474f7..4967d182a 100644 --- a/modules/sbt-plugin-1_3_11/src/main/scala/org/scalasteward/sbt/plugin/StewardPlugin_1_3_11.scala +++ b/modules/sbt-plugin-1_3_11/src/main/scala/org/scalasteward/sbt/plugin/StewardPlugin_1_3_11.scala @@ -52,7 +52,7 @@ object StewardPlugin_1_3_11 extends AutoPlugin { ) val dependencies = libraryDeps ++ scalafixDeps - def getCredentials(url: URL, name: String): Option[Resolver.Credentials] = + def getCredentials(url: URI, name: String): Option[Resolver.Credentials] = (for { allDirect <- Try(Credentials.allDirect(sbtCredentials)).toOption maybeRealmAndHost = allDirect.find(c => c.realm == name && c.host == url.getHost) @@ -71,11 +71,11 @@ object StewardPlugin_1_3_11 extends AutoPlugin { val resolvers = fullResolvers.value.collect { case repo: MavenRepository if !repo.root.startsWith("file:") => - val creds = getCredentials(new URL(repo.root), repo.name) + val creds = getCredentials(new URI(repo.root), repo.name) Resolver.MavenRepository(repo.name, repo.root, creds, getHeaders(repo.name)) case repo: URLRepository => val ivyPatterns = repo.patterns.ivyPatterns.mkString - val creds = getCredentials(new URL(ivyPatterns), repo.name) + val creds = getCredentials(new URI(ivyPatterns), repo.name) Resolver.IvyRepository(repo.name, ivyPatterns, creds, getHeaders(repo.name)) } From 5ec35a8cb8fe059897df750451cbdc9a90d6d365 Mon Sep 17 00:00:00 2001 From: Roman Langolf Date: Thu, 22 Feb 2024 17:29:15 +0700 Subject: [PATCH 2/4] update maven resolver filter --- .../scalasteward/sbt/plugin/StewardPlugin_1_3_11.scala | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/modules/sbt-plugin-1_3_11/src/main/scala/org/scalasteward/sbt/plugin/StewardPlugin_1_3_11.scala b/modules/sbt-plugin-1_3_11/src/main/scala/org/scalasteward/sbt/plugin/StewardPlugin_1_3_11.scala index 4967d182a..5ecc131bd 100644 --- a/modules/sbt-plugin-1_3_11/src/main/scala/org/scalasteward/sbt/plugin/StewardPlugin_1_3_11.scala +++ b/modules/sbt-plugin-1_3_11/src/main/scala/org/scalasteward/sbt/plugin/StewardPlugin_1_3_11.scala @@ -52,7 +52,7 @@ object StewardPlugin_1_3_11 extends AutoPlugin { ) val dependencies = libraryDeps ++ scalafixDeps - def getCredentials(url: URI, name: String): Option[Resolver.Credentials] = + def getCredentials(url: URL, name: String): Option[Resolver.Credentials] = (for { allDirect <- Try(Credentials.allDirect(sbtCredentials)).toOption maybeRealmAndHost = allDirect.find(c => c.realm == name && c.host == url.getHost) @@ -70,12 +70,14 @@ object StewardPlugin_1_3_11 extends AutoPlugin { } yield Resolver.Header(headerKey, headerValue) val resolvers = fullResolvers.value.collect { - case repo: MavenRepository if !repo.root.startsWith("file:") => - val creds = getCredentials(new URI(repo.root), repo.name) + case repo: MavenRepository if Set("http:", "https:").exists(repo.root.startsWith) => + val creds = getCredentials(new URL(repo.root), repo.name) Resolver.MavenRepository(repo.name, repo.root, creds, getHeaders(repo.name)) + case repo: MavenRepository => + Resolver.MavenRepository(repo.name, repo.root, None, getHeaders(repo.name)) case repo: URLRepository => val ivyPatterns = repo.patterns.ivyPatterns.mkString - val creds = getCredentials(new URI(ivyPatterns), repo.name) + val creds = getCredentials(new URL(ivyPatterns), repo.name) Resolver.IvyRepository(repo.name, ivyPatterns, creds, getHeaders(repo.name)) } From 09125c381d1a9fdc5e88f3d89e92663c9e0f7dca Mon Sep 17 00:00:00 2001 From: Roman Langolf Date: Fri, 23 Feb 2024 11:58:07 +0700 Subject: [PATCH 3/4] update maven resolver filter --- .../scalasteward/sbt/plugin/StewardPlugin_1_3_11.scala | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/modules/sbt-plugin-1_3_11/src/main/scala/org/scalasteward/sbt/plugin/StewardPlugin_1_3_11.scala b/modules/sbt-plugin-1_3_11/src/main/scala/org/scalasteward/sbt/plugin/StewardPlugin_1_3_11.scala index 5ecc131bd..d5e6f8eac 100644 --- a/modules/sbt-plugin-1_3_11/src/main/scala/org/scalasteward/sbt/plugin/StewardPlugin_1_3_11.scala +++ b/modules/sbt-plugin-1_3_11/src/main/scala/org/scalasteward/sbt/plugin/StewardPlugin_1_3_11.scala @@ -70,11 +70,12 @@ object StewardPlugin_1_3_11 extends AutoPlugin { } yield Resolver.Header(headerKey, headerValue) val resolvers = fullResolvers.value.collect { - case repo: MavenRepository if Set("http:", "https:").exists(repo.root.startsWith) => - val creds = getCredentials(new URL(repo.root), repo.name) + case repo: MavenRepository if !repo.root.startsWith("file:") => + val creds = + if (Set("http:", "https:").exists(repo.root.startsWith)) + getCredentials(new URL(repo.root), repo.name) + else None Resolver.MavenRepository(repo.name, repo.root, creds, getHeaders(repo.name)) - case repo: MavenRepository => - Resolver.MavenRepository(repo.name, repo.root, None, getHeaders(repo.name)) case repo: URLRepository => val ivyPatterns = repo.patterns.ivyPatterns.mkString val creds = getCredentials(new URL(ivyPatterns), repo.name) From f62b9b13cf86863a283e3e9927b341af25707823 Mon Sep 17 00:00:00 2001 From: Roman Langolf Date: Sat, 24 Feb 2024 13:41:25 +0700 Subject: [PATCH 4/4] update resolver's host resolution --- .../sbt/plugin/StewardPlugin_1_3_11.scala | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/modules/sbt-plugin-1_3_11/src/main/scala/org/scalasteward/sbt/plugin/StewardPlugin_1_3_11.scala b/modules/sbt-plugin-1_3_11/src/main/scala/org/scalasteward/sbt/plugin/StewardPlugin_1_3_11.scala index d5e6f8eac..587c10863 100644 --- a/modules/sbt-plugin-1_3_11/src/main/scala/org/scalasteward/sbt/plugin/StewardPlugin_1_3_11.scala +++ b/modules/sbt-plugin-1_3_11/src/main/scala/org/scalasteward/sbt/plugin/StewardPlugin_1_3_11.scala @@ -52,12 +52,12 @@ object StewardPlugin_1_3_11 extends AutoPlugin { ) val dependencies = libraryDeps ++ scalafixDeps - def getCredentials(url: URL, name: String): Option[Resolver.Credentials] = + def getCredentials(host: String, name: String): Option[Resolver.Credentials] = (for { allDirect <- Try(Credentials.allDirect(sbtCredentials)).toOption - maybeRealmAndHost = allDirect.find(c => c.realm == name && c.host == url.getHost) + maybeRealmAndHost = allDirect.find(c => c.realm == name && c.host == host) maybeRealm = allDirect.find(_.realm == name) - maybeHost = allDirect.find(_.host == url.getHost) + maybeHost = allDirect.find(_.host == host) } yield maybeRealmAndHost.orElse(maybeRealm).orElse(maybeHost)).flatten .map(c => Resolver.Credentials(c.userName, c.passwd)) @@ -69,16 +69,17 @@ object StewardPlugin_1_3_11 extends AutoPlugin { (headerKey, headerValue) <- authentication.headers } yield Resolver.Header(headerKey, headerValue) + // may include protocols other than http/https which may fail on constructing a java.net.URL + def getHost(uri: String): Option[String] = + Try(new URL(uri).getHost).orElse(Try(new URI(uri).getHost)).toOption + val resolvers = fullResolvers.value.collect { case repo: MavenRepository if !repo.root.startsWith("file:") => - val creds = - if (Set("http:", "https:").exists(repo.root.startsWith)) - getCredentials(new URL(repo.root), repo.name) - else None + val creds = getHost(repo.root).flatMap(getCredentials(_, repo.name)) Resolver.MavenRepository(repo.name, repo.root, creds, getHeaders(repo.name)) case repo: URLRepository => val ivyPatterns = repo.patterns.ivyPatterns.mkString - val creds = getCredentials(new URL(ivyPatterns), repo.name) + val creds = getHost(ivyPatterns).flatMap(getCredentials(_, repo.name)) Resolver.IvyRepository(repo.name, ivyPatterns, creds, getHeaders(repo.name)) }