diff --git a/gradle.properties b/gradle.properties index b5a9c7ba..554184fc 100644 --- a/gradle.properties +++ b/gradle.properties @@ -15,7 +15,7 @@ pluginUntilBuild=241.* # verifier should be used after bumping versions to ensure compatibility in the # range. platformType=GW -platformVersion=233.14808-EAP-CANDIDATE-SNAPSHOT +platformVersion=233.15325-EAP-CANDIDATE-SNAPSHOT instrumentationCompiler=241.10840-EAP-CANDIDATE-SNAPSHOT platformDownloadSources=true verifyVersions=2023.3,2024.1 diff --git a/src/main/kotlin/com/coder/gateway/cli/CoderCLIManager.kt b/src/main/kotlin/com/coder/gateway/cli/CoderCLIManager.kt index b729f472..96cb09ea 100644 --- a/src/main/kotlin/com/coder/gateway/cli/CoderCLIManager.kt +++ b/src/main/kotlin/com/coder/gateway/cli/CoderCLIManager.kt @@ -111,6 +111,7 @@ fun ensureCLI( */ data class Features( val disableAutostart: Boolean = false, + val reportWorkspaceUsage: Boolean = false, ) /** @@ -264,6 +265,7 @@ class CoderCLIManager( "ssh", "--stdio", if (settings.disableAutostart && feats.disableAutostart) "--disable-autostart" else null, + if (feats.reportWorkspaceUsage) "--usage-app=jetbrains" else null, ) val extraConfig = if (settings.sshConfigOptions.isNotBlank()) { @@ -446,6 +448,7 @@ class CoderCLIManager( Features( // Autostart with SSH was added in 2.5.0. disableAutostart = version >= SemVer(2, 5, 0), + reportWorkspaceUsage = version >= SemVer(2, 13, 0), ) } } diff --git a/src/test/fixtures/outputs/report-usage.conf b/src/test/fixtures/outputs/report-usage.conf new file mode 100644 index 00000000..635e48ef --- /dev/null +++ b/src/test/fixtures/outputs/report-usage.conf @@ -0,0 +1,9 @@ +# --- START CODER JETBRAINS test.coder.invalid +Host coder-jetbrains--foo--test.coder.invalid + ProxyCommand /tmp/coder-gateway/test.coder.invalid/coder-linux-amd64 --global-config /tmp/coder-gateway/test.coder.invalid/config ssh --stdio --usage-app=jetbrains foo + ConnectTimeout 0 + StrictHostKeyChecking no + UserKnownHostsFile /dev/null + LogLevel ERROR + SetEnv CODER_SSH_SESSION_TYPE=JetBrains +# --- END CODER JETBRAINS test.coder.invalid diff --git a/src/test/kotlin/com/coder/gateway/cli/CoderCLIManagerTest.kt b/src/test/kotlin/com/coder/gateway/cli/CoderCLIManagerTest.kt index 4bd5640e..51a6339a 100644 --- a/src/test/kotlin/com/coder/gateway/cli/CoderCLIManagerTest.kt +++ b/src/test/kotlin/com/coder/gateway/cli/CoderCLIManagerTest.kt @@ -345,6 +345,7 @@ internal class CoderCLIManagerTest { }, SSHTest(listOf("foo"), null, "disable-autostart", "blank", "", true, Features(true)), SSHTest(listOf("foo"), null, "no-disable-autostart", "blank", "", true, Features(false)), + SSHTest(listOf("foo"), null, "report-usage", "blank", "", true, Features(false, true)), SSHTest( listOf("extra"), null, @@ -721,7 +722,8 @@ internal class CoderCLIManagerTest { val tests = listOf( Pair("2.5.0", Features(true)), - Pair("4.9.0", Features(true)), + Pair("2.13.0", Features(true, true)), + Pair("4.9.0", Features(true, true)), Pair("2.4.9", Features(false)), Pair("1.0.1", Features(false)), )