diff --git a/components/dashboard/src/workspaces/RenameWorkspaceModal.tsx b/components/dashboard/src/workspaces/RenameWorkspaceModal.tsx index 2e48e37aee16b0..f5b183f412eb79 100644 --- a/components/dashboard/src/workspaces/RenameWorkspaceModal.tsx +++ b/components/dashboard/src/workspaces/RenameWorkspaceModal.tsx @@ -10,21 +10,14 @@ import { Button } from "@podkit/buttons/Button"; import { Workspace } from "@gitpod/public-api/lib/gitpod/v1/workspace_pb"; import { useUpdateWorkspaceMutation } from "../data/workspaces/update-workspace-mutation"; import { LoadingButton } from "@podkit/buttons/LoadingButton"; +import { Workspace as WorkspaceProtocol } from "@gitpod/gitpod-protocol"; -export const NAME_PREFIX = "named:"; export function toWorkspaceName(name: string): string { - // unsetting the name - if (name.trim().length === 0) { - return "no-name"; - } - return `${NAME_PREFIX}${name}`; + return WorkspaceProtocol.toWorkspaceName(name); } export function fromWorkspaceName(workspace?: Workspace): string | undefined { - if (workspace?.metadata?.name?.startsWith(NAME_PREFIX)) { - return workspace.metadata.name.slice(NAME_PREFIX.length); - } - return undefined; + return WorkspaceProtocol.fromWorkspaceName(workspace?.metadata?.name); } type Props = { diff --git a/components/gitpod-protocol/src/protocol.ts b/components/gitpod-protocol/src/protocol.ts index 8877eeb7fe3a6d..63ae2d5c9a37b3 100644 --- a/components/gitpod-protocol/src/protocol.ts +++ b/components/gitpod-protocol/src/protocol.ts @@ -766,6 +766,20 @@ export namespace Workspace { } return undefined; } + + const NAME_PREFIX = "named:"; + export function fromWorkspaceName(name?: Workspace["description"]): string | undefined { + if (name?.startsWith(NAME_PREFIX)) { + return name.slice(NAME_PREFIX.length); + } + return undefined; + } + export function toWorkspaceName(name?: Workspace["description"]): string { + if (!name || name?.trim().length === 0) { + return "no-name"; + } + return `${NAME_PREFIX}${name}`; + } } export interface GuessGitTokenScopesParams { diff --git a/components/ide/jetbrains/backend-plugin/src/main/kotlin/io/gitpod/jetbrains/remote/GitpodGatewayClientCustomizationProvider.kt b/components/ide/jetbrains/backend-plugin/src/main/kotlin/io/gitpod/jetbrains/remote/GitpodGatewayClientCustomizationProvider.kt index c23543ae90280a..e09d2ab03d5a05 100644 --- a/components/ide/jetbrains/backend-plugin/src/main/kotlin/io/gitpod/jetbrains/remote/GitpodGatewayClientCustomizationProvider.kt +++ b/components/ide/jetbrains/backend-plugin/src/main/kotlin/io/gitpod/jetbrains/remote/GitpodGatewayClientCustomizationProvider.kt @@ -17,7 +17,7 @@ class GitpodGatewayClientCustomizationProvider : GatewayClientCustomizationProvi override val controlCenter: GatewayControlCenterProvider = object : GatewayControlCenterProvider { override fun getHostnameDisplayKind() = GatewayHostnameDisplayKind.ShowHostnameOnNavbar - override fun getHostnameShort() = title + override fun getHostnameShort() = System.getenv("GITPOD_WORKSPACE_NAME") ?: title override fun getHostnameLong() = title } } diff --git a/components/server/src/workspace/workspace-starter.ts b/components/server/src/workspace/workspace-starter.ts index d9e32754d6f680..6b3d4582dfea01 100644 --- a/components/server/src/workspace/workspace-starter.ts +++ b/components/server/src/workspace/workspace-starter.ts @@ -1587,6 +1587,14 @@ export class WorkspaceStarter { sysEnvvars.push(isSetJavaXmx); sysEnvvars.push(isSetJavaProcessorCount); sysEnvvars.push(disableJetBrainsLocalPortForwarding); + + const workspaceName = Workspace.fromWorkspaceName(workspace.description); + if (workspaceName && workspaceName.length > 0) { + const workspaceNameEnv = new EnvironmentVariable(); + workspaceNameEnv.setName("GITPOD_WORKSPACE_NAME"); + workspaceNameEnv.setValue(workspaceName); + sysEnvvars.push(workspaceNameEnv); + } const spec = new StartWorkspaceSpec(); await createGitpodTokenPromise; spec.setEnvvarsList(envvars);