MCPcopy Index your code
hub / github.com/coder/mux / createWorkspace

Method createWorkspace

src/node/runtime/multiProjectRuntime.ts:74–152  ·  view source on GitHub ↗
(params: WorkspaceCreationParams)

Source from the content-addressed store, hash-verified

72 }
73
74 async createWorkspace(params: WorkspaceCreationParams): Promise<WorkspaceCreationResult> {
75 const workspaceName = params.directoryName;
76 const createdRuntimes: MultiProjectRuntimeEntry[] = [];
77 const projectWorkspaces: ProjectWorkspaceEntry[] = [];
78
79 for (const projectRuntime of this.projectRuntimes) {
80 const createResult = await projectRuntime.runtime.createWorkspace({
81 ...params,
82 projectPath: projectRuntime.projectPath,
83 });
84
85 if (!createResult.success) {
86 const rollbackErrors = await this.rollbackCreatedWorkspaces(
87 createdRuntimes,
88 workspaceName,
89 params.abortSignal,
90 params.trusted
91 );
92
93 return {
94 success: false,
95 error: this.withRollbackErrors(
96 `Failed to create workspace for project ${projectRuntime.projectName}: ${
97 createResult.error ?? "Unknown error"
98 }`,
99 rollbackErrors
100 ),
101 };
102 }
103
104 const createdWorkspacePath = createResult.workspacePath;
105 if (!createdWorkspacePath) {
106 const rollbackErrors = await this.rollbackCreatedWorkspaces(
107 [...createdRuntimes, projectRuntime],
108 workspaceName,
109 params.abortSignal,
110 params.trusted
111 );
112
113 return {
114 success: false,
115 error: this.withRollbackErrors(
116 `Failed to create workspace for project ${projectRuntime.projectName}: runtime returned success without workspacePath`,
117 rollbackErrors
118 ),
119 };
120 }
121
122 createdRuntimes.push(projectRuntime);
123 projectWorkspaces.push({
124 projectName: projectRuntime.projectName,
125 workspacePath: createdWorkspacePath,
126 });
127 }
128
129 try {
130 await this.containerManager.createContainer(workspaceName, projectWorkspaces);
131 } catch (error) {

Callers

nothing calls this directly

Calls 7

withRollbackErrorsMethod · 0.95
getErrorMessageFunction · 0.90
createContainerMethod · 0.80
getContainerPathMethod · 0.80
createWorkspaceMethod · 0.65
pushMethod · 0.65

Tested by

no test coverage detected