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

Function mergeMultiProjectSecrets

src/node/services/utils/multiProjectSecrets.ts:6–32  ·  view source on GitHub ↗
(metadata: WorkspaceMetadata, config: Config)

Source from the content-addressed store, hash-verified

4import type { Config } from "@/node/config";
5
6export function mergeMultiProjectSecrets(metadata: WorkspaceMetadata, config: Config): Secret[] {
7 const projects = getProjects(metadata);
8 const primaryProject = projects.find((project) => project.projectPath === metadata.projectPath);
9 const orderedProjects = primaryProject
10 ? [
11 primaryProject,
12 ...projects.filter((project) => project.projectPath !== metadata.projectPath),
13 ]
14 : projects;
15
16 const seen = new Set<string>();
17 const merged: Secret[] = [];
18
19 // Primary project secrets win on collisions so multi-project bash/AI keep single-project precedence.
20 for (const project of orderedProjects) {
21 const secrets = config.getEffectiveSecrets(project.projectPath);
22 for (const secret of secrets) {
23 if (seen.has(secret.key)) {
24 continue;
25 }
26 seen.add(secret.key);
27 merged.push(secret);
28 }
29 }
30
31 return merged;
32}

Callers 2

executeBashMethod · 0.90
streamMessageMethod · 0.90

Calls 5

getProjectsFunction · 0.90
getEffectiveSecretsMethod · 0.80
addMethod · 0.80
pushMethod · 0.65
hasMethod · 0.45

Tested by

no test coverage detected