From ec71b5162848e6369bdf2be8d2f1dd41cded88e8 Mon Sep 17 00:00:00 2001 From: Darren Gibson Date: Wed, 7 May 2025 18:40:35 -0500 Subject: [PATCH] sbt: Scoping credentials to ThisBuild (#6026) 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 60087db94..a45436d68 100644 --- a/modules/programs/sbt.nix +++ b/modules/programs/sbt.nix @@ -25,7 +25,7 @@ let 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 d6dc2f21d..50b7f051c 100644 --- a/tests/modules/programs/sbt/credentials.nix +++ b/tests/modules/programs/sbt/credentials.nix @@ -18,9 +18,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