( metadata: WorkspaceMetadata, projectsConfig: ProjectsConfig["projects"] )
| 4 | import { stripTrailingSlashes } from "@/node/utils/pathUtils"; |
| 5 | |
| 6 | export function isWorkspaceTrustedForSharedExecution( |
| 7 | metadata: WorkspaceMetadata, |
| 8 | projectsConfig: ProjectsConfig["projects"] |
| 9 | ): boolean { |
| 10 | if (!isMultiProject(metadata)) { |
| 11 | return projectsConfig.get(stripTrailingSlashes(metadata.projectPath))?.trusted ?? false; |
| 12 | } |
| 13 | |
| 14 | // Multi-project workspaces share a single runtime/container, so one untrusted repo must disable |
| 15 | // trusted behavior for the whole execution environment. |
| 16 | return getProjects(metadata).every( |
| 17 | (project) => projectsConfig.get(stripTrailingSlashes(project.projectPath))?.trusted ?? false |
| 18 | ); |
| 19 | } |
no test coverage detected