From 8c2d6604342efd0172429e6da9779f7d0970902b Mon Sep 17 00:00:00 2001 From: richardgilmore Date: Sun, 26 Apr 2020 22:23:00 +0100 Subject: [PATCH 1/3] Add IntelliJ and metals entries in .gitignore --- .gitignore | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.gitignore b/.gitignore index 2f7896d1d..477eea9ea 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,8 @@ target/ + +# Metals / bloop +.metals/ +.bloop/ + +# Intellij +.idea/ From e2876fb23ef25551d76f40474fbec9f869caa693 Mon Sep 17 00:00:00 2001 From: richardgilmore Date: Sun, 26 Apr 2020 14:45:58 +0100 Subject: [PATCH 2/3] Allow authenticating via custom HTTP headers --- .../lmcoursier/CoursierConfiguration.scala | 2 ++ .../lmcoursier/definitions/Authentication.scala | 17 +++++++++++++++-- .../lmcoursier/definitions/ToCoursier.scala | 1 + 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/modules/lm-coursier/src/main/scala/lmcoursier/CoursierConfiguration.scala b/modules/lm-coursier/src/main/scala/lmcoursier/CoursierConfiguration.scala index acfd65b8c..45ea1b886 100644 --- a/modules/lm-coursier/src/main/scala/lmcoursier/CoursierConfiguration.scala +++ b/modules/lm-coursier/src/main/scala/lmcoursier/CoursierConfiguration.scala @@ -75,6 +75,8 @@ import scala.concurrent.duration.Duration withStrict(Some(strict)) def withTtl(ttl: Duration): CoursierConfiguration = withTtl(Some(ttl)) + def addRepositoryAuthentication(repositoryId: String, authentication: Authentication): CoursierConfiguration = + withAuthenticationByRepositoryId(authenticationByRepositoryId :+ (repositoryId, authentication)) } object CoursierConfiguration { diff --git a/modules/lm-coursier/src/main/scala/lmcoursier/definitions/Authentication.scala b/modules/lm-coursier/src/main/scala/lmcoursier/definitions/Authentication.scala index 264b1ff5f..1a28fbb9d 100644 --- a/modules/lm-coursier/src/main/scala/lmcoursier/definitions/Authentication.scala +++ b/modules/lm-coursier/src/main/scala/lmcoursier/definitions/Authentication.scala @@ -1,15 +1,28 @@ package lmcoursier.definitions -import dataclass.data +import dataclass._ @data class Authentication( user: String, password: String, optional: Boolean = false, - realmOpt: Option[String] = None + realmOpt: Option[String] = None, + @since + headers: Seq[(String,String)] = Nil ) { override def toString(): String = withPassword("****") + .withHeaders( + headers.map { + case (k, v) => (k, "****") + } + ) .productIterator .mkString("Authentication(", ", ", ")") } + +object Authentication { + + def apply(headers: Seq[(String, String)]): Authentication = + Authentication("", "", optional = false, None, headers) +} diff --git a/modules/lm-coursier/src/main/scala/lmcoursier/definitions/ToCoursier.scala b/modules/lm-coursier/src/main/scala/lmcoursier/definitions/ToCoursier.scala index 23a2222ab..57bdece37 100644 --- a/modules/lm-coursier/src/main/scala/lmcoursier/definitions/ToCoursier.scala +++ b/modules/lm-coursier/src/main/scala/lmcoursier/definitions/ToCoursier.scala @@ -27,6 +27,7 @@ object ToCoursier { coursier.core.Authentication(authentication.user, authentication.password) .withOptional(authentication.optional) .withRealmOpt(authentication.realmOpt) + .withHttpHeaders(authentication.headers) def module(module: Module): coursier.core.Module = coursier.core.Module( From f37dd6af0fde4bb935993712e1b81ab60f0fe961 Mon Sep 17 00:00:00 2001 From: Alexandre Archambault Date: Sun, 3 May 2020 18:11:37 +0200 Subject: [PATCH 3/3] Support missing coursier.core.Authentication fields --- .../main/scala/lmcoursier/definitions/Authentication.scala | 6 ++++-- .../src/main/scala/lmcoursier/definitions/ToCoursier.scala | 2 ++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/modules/lm-coursier/src/main/scala/lmcoursier/definitions/Authentication.scala b/modules/lm-coursier/src/main/scala/lmcoursier/definitions/Authentication.scala index 1a28fbb9d..5d65e1763 100644 --- a/modules/lm-coursier/src/main/scala/lmcoursier/definitions/Authentication.scala +++ b/modules/lm-coursier/src/main/scala/lmcoursier/definitions/Authentication.scala @@ -8,7 +8,9 @@ import dataclass._ optional: Boolean = false, realmOpt: Option[String] = None, @since - headers: Seq[(String,String)] = Nil + headers: Seq[(String,String)] = Nil, + httpsOnly: Boolean = true, + passOnRedirect: Boolean = false ) { override def toString(): String = withPassword("****") @@ -24,5 +26,5 @@ import dataclass._ object Authentication { def apply(headers: Seq[(String, String)]): Authentication = - Authentication("", "", optional = false, None, headers) + Authentication("", "").withHeaders(headers) } diff --git a/modules/lm-coursier/src/main/scala/lmcoursier/definitions/ToCoursier.scala b/modules/lm-coursier/src/main/scala/lmcoursier/definitions/ToCoursier.scala index 57bdece37..dd7da1344 100644 --- a/modules/lm-coursier/src/main/scala/lmcoursier/definitions/ToCoursier.scala +++ b/modules/lm-coursier/src/main/scala/lmcoursier/definitions/ToCoursier.scala @@ -28,6 +28,8 @@ object ToCoursier { .withOptional(authentication.optional) .withRealmOpt(authentication.realmOpt) .withHttpHeaders(authentication.headers) + .withHttpsOnly(authentication.httpsOnly) + .withPassOnRedirect(authentication.passOnRedirect) def module(module: Module): coursier.core.Module = coursier.core.Module(