From ad16d4286003de01944776dbfdda2128aeb5f15d Mon Sep 17 00:00:00 2001 From: Danielle Maywood Date: Wed, 9 Apr 2025 10:27:39 +0000 Subject: [PATCH 1/2] feat: allow modifying auth mode Adds an auth option to code-server feature to allow modifying the auto mode of code-server. --- src/code-server/devcontainer-feature.json | 7 ++++++- src/code-server/install.sh | 2 +- test/code-server/code-server-auth-none.sh | 17 +++++++++++++++++ test/code-server/code-server-auth-password.sh | 17 +++++++++++++++++ test/code-server/scenarios.json | 16 ++++++++++++++++ 5 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 test/code-server/code-server-auth-none.sh create mode 100644 test/code-server/code-server-auth-password.sh diff --git a/src/code-server/devcontainer-feature.json b/src/code-server/devcontainer-feature.json index b12799c..073975c 100644 --- a/src/code-server/devcontainer-feature.json +++ b/src/code-server/devcontainer-feature.json @@ -27,7 +27,12 @@ "workspace": { "type": "string", "default": "" - } + }, + "auth": { + "type": "string", + "enum": ["password", "none"], + "default": "password" + } }, "entrypoint": "/usr/local/bin/code-server-entrypoint", "dependsOn": { diff --git a/src/code-server/install.sh b/src/code-server/install.sh index 3f9ff0b..2224b9c 100644 --- a/src/code-server/install.sh +++ b/src/code-server/install.sh @@ -28,7 +28,7 @@ cat > /usr/local/bin/code-server-entrypoint \ #!/usr/bin/env bash set -e -su $_REMOTE_USER -c 'code-server --bind-addr "$HOST:$PORT" "$CODE_SERVER_WORKSPACE"' +su $_REMOTE_USER -c 'code-server --auth "$AUTH" --bind-addr "$HOST:$PORT" "$CODE_SERVER_WORKSPACE"' EOF chmod +x /usr/local/bin/code-server-entrypoint diff --git a/test/code-server/code-server-auth-none.sh b/test/code-server/code-server-auth-none.sh new file mode 100644 index 0000000..41e6244 --- /dev/null +++ b/test/code-server/code-server-auth-none.sh @@ -0,0 +1,17 @@ +#!/bin/bash +set -e + +# Optional: Import test library bundled with the devcontainer CLI +source dev-container-features-test-lib + +# Feature-specific tests +check "code-server version" code-server --version +check "code-server running" pgrep -f 'code-server/lib/node.*/code-server' +check "code-server listening" lsof -i "@127.0.0.1:8080" + +entrypoint=$(cat /usr/local/bin/code-server-entrypoint) +echo "$entrypoint" +check "code-server auth" grep $'\'code-server.* --auth "none" .*\'' <<<"$entrypoint" + +# Report results +reportResults diff --git a/test/code-server/code-server-auth-password.sh b/test/code-server/code-server-auth-password.sh new file mode 100644 index 0000000..2664953 --- /dev/null +++ b/test/code-server/code-server-auth-password.sh @@ -0,0 +1,17 @@ +#!/bin/bash +set -e + +# Optional: Import test library bundled with the devcontainer CLI +source dev-container-features-test-lib + +# Feature-specific tests +check "code-server version" code-server --version +check "code-server running" pgrep -f 'code-server/lib/node.*/code-server' +check "code-server listening" lsof -i "@127.0.0.1:8080" + +entrypoint=$(cat /usr/local/bin/code-server-entrypoint) +echo "$entrypoint" +check "code-server auth" grep $'\'code-server.* --auth "password" .*\'' <<<"$entrypoint" + +# Report results +reportResults diff --git a/test/code-server/scenarios.json b/test/code-server/scenarios.json index 3a34c43..26fb59b 100644 --- a/test/code-server/scenarios.json +++ b/test/code-server/scenarios.json @@ -38,5 +38,21 @@ "workspace": "/home" } } + }, + "code-server-auth-none": { + "image": "mcr.microsoft.com/devcontainers/base:ubuntu", + "features": { + "code-server": { + "auth": "none" + } + } + }, + "code-server-auth-password": { + "image": "mcr.microsoft.com/devcontainers/base:ubuntu", + "features": { + "code-server": { + "auth": "password" + } + } } } From 8a54722096fd39a8b90ad75e37b906c4b1e526e1 Mon Sep 17 00:00:00 2001 From: Danielle Maywood Date: Wed, 9 Apr 2025 13:17:13 +0000 Subject: [PATCH 2/2] chore: update test --- test/code-server/code-server-auth-none.sh | 4 +--- test/code-server/code-server-auth-password.sh | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/test/code-server/code-server-auth-none.sh b/test/code-server/code-server-auth-none.sh index 41e6244..089f594 100644 --- a/test/code-server/code-server-auth-none.sh +++ b/test/code-server/code-server-auth-none.sh @@ -9,9 +9,7 @@ check "code-server version" code-server --version check "code-server running" pgrep -f 'code-server/lib/node.*/code-server' check "code-server listening" lsof -i "@127.0.0.1:8080" -entrypoint=$(cat /usr/local/bin/code-server-entrypoint) -echo "$entrypoint" -check "code-server auth" grep $'\'code-server.* --auth "none" .*\'' <<<"$entrypoint" +check "code-server auth" grep $'\'code-server.* --auth "none" .*\'' < /usr/local/bin/code-server-entrypoint # Report results reportResults diff --git a/test/code-server/code-server-auth-password.sh b/test/code-server/code-server-auth-password.sh index 2664953..6bd1920 100644 --- a/test/code-server/code-server-auth-password.sh +++ b/test/code-server/code-server-auth-password.sh @@ -9,9 +9,7 @@ check "code-server version" code-server --version check "code-server running" pgrep -f 'code-server/lib/node.*/code-server' check "code-server listening" lsof -i "@127.0.0.1:8080" -entrypoint=$(cat /usr/local/bin/code-server-entrypoint) -echo "$entrypoint" -check "code-server auth" grep $'\'code-server.* --auth "password" .*\'' <<<"$entrypoint" +check "code-server auth" grep $'\'code-server.* --auth "password" .*\'' < /usr/local/bin/code-server-entrypoint # Report results reportResults