Skip to content

Commit 8ceff55

Browse files
committed
[server] generate better workspace ids
1 parent 1ac8fbe commit 8ceff55

File tree

3 files changed

+14
-6
lines changed

3 files changed

+14
-6
lines changed

components/server/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@
7676
"request": "^2.87.0",
7777
"request-promise": "^4.2.2",
7878
"swot-js": "^1.0.3",
79+
"unique-names-generator": "^4.3.1",
7980
"uuid": "^3.1.0",
8081
"vscode-ws-jsonrpc": "^0.2.0",
8182
"ws": "^5.2.2"

components/server/src/workspace/workspace-factory.ts

+8-6
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import { ImageBuilderClientProvider } from '@gitpod/image-builder/lib';
2121
import { TracedWorkspaceDB, DBWithTracing } from '@gitpod/gitpod-db/lib/traced-db';
2222
import { ImageSourceProvider } from './image-source-provider';
2323
import { TheiaPluginService } from '../theia-plugin/theia-plugin-service';
24+
import { uniqueNamesGenerator, adjectives, colors, animals } from 'unique-names-generator';
2425

2526
@injectable()
2627
export class WorkspaceFactory {
@@ -188,12 +189,13 @@ export class WorkspaceFactory {
188189
}
189190

190191
protected generateWorkspaceId(): string {
191-
var uuid
192-
do {
193-
uuid = uuidv4()
194-
}
195-
while (uuid.charAt(0).match("[0-9]") != null) // No numbers as first char, as we use this id as DNS name
196-
return uuid
192+
const randomName: string = uniqueNamesGenerator({
193+
dictionaries: [adjectives, colors, animals],
194+
separator: '-',
195+
length: 3,
196+
});
197+
198+
return randomName + "-" + uuidv4().substring(0,8);
197199
}
198200

199201
}

yarn.lock

+5
Original file line numberDiff line numberDiff line change
@@ -19321,6 +19321,11 @@ unique-filename@^1.1.0, unique-filename@^1.1.1:
1932119321
dependencies:
1932219322
unique-slug "^2.0.0"
1932319323

19324+
unique-names-generator@^4.3.1:
19325+
version "4.3.1"
19326+
resolved "https://registry.yarnpkg.com/unique-names-generator/-/unique-names-generator-4.3.1.tgz#f61ec2290b2f865894af01afb40f3e1043bb8fa2"
19327+
integrity sha512-oxkKrDXbwx6I5M963SdfmMH2t8n1OIfYyzoJ25BmDeETlyWAZjTbMXwIEMiQDex4lkD2pqe+9gxDJQAB2IOfDg==
19328+
1932419329
unique-slug@^2.0.0:
1932519330
version "2.0.1"
1932619331
resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.1.tgz#5e9edc6d1ce8fb264db18a507ef9bd8544451ca6"

0 commit comments

Comments
 (0)