From df4c36c082bb939d3d0dfa4ee4f62a615ae39c0e Mon Sep 17 00:00:00 2001 From: Darren Gibson Date: Thu, 31 Oct 2024 12:29:34 -0500 Subject: [PATCH] sbt: Scoping credentials to ThisBuild In Sbt (prior to 2.0) a sbt key not scoped to `ThisBuild` will always be at the project level, rather than at the build level. In order to do some things, like use a private repository configured by sbt with sbt-scalafix, we need the credentials scope to the build, otherwise the credentials show as non-existent. --- modules/programs/sbt.nix | 2 +- tests/modules/programs/sbt/credentials.nix | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/programs/sbt.nix b/modules/programs/sbt.nix index de14bc6f3..7d8a069f8 100644 --- a/modules/programs/sbt.nix +++ b/modules/programs/sbt.nix @@ -12,7 +12,7 @@ let let symbol = "credential_${toString idx}"; in '' lazy val ${symbol} = "${cred.passwordCommand}".!!.trim - credentials += Credentials("${cred.realm}", "${cred.host}", "${cred.user}", ${symbol}) + ThisBuild / credentials += Credentials("${cred.realm}", "${cred.host}", "${cred.user}", ${symbol}) ''; renderCredentials = creds: '' diff --git a/tests/modules/programs/sbt/credentials.nix b/tests/modules/programs/sbt/credentials.nix index 1a79582ab..0e15d10e4 100644 --- a/tests/modules/programs/sbt/credentials.nix +++ b/tests/modules/programs/sbt/credentials.nix @@ -20,9 +20,9 @@ let expectedCredentialsSbt = pkgs.writeText "credentials.sbt" '' import scala.sys.process._ lazy val credential_0 = "echo password".!!.trim - credentials += Credentials("Sonatype Nexus Repository Manager", "example.com", "user", credential_0) + ThisBuild / credentials += Credentials("Sonatype Nexus Repository Manager", "example.com", "user", credential_0) lazy val credential_1 = "echo password1".!!.trim - credentials += Credentials("Sonatype Nexus Repository Manager X", "v2.example.com", "user1", credential_1) + ThisBuild / credentials += Credentials("Sonatype Nexus Repository Manager X", "v2.example.com", "user1", credential_1) ''; credentialsSbtPath = ".sbt/1.0/credentials.sbt"; in {