Canvas: Generate Github nodes out of the dodo-app config
Change-Id: Ifc5b09deb39352a3025f7ea66ce39b421daac94d
diff --git a/apps/canvas/back/src/index.ts b/apps/canvas/back/src/index.ts
index 0ba25b0..82e55fe 100644
--- a/apps/canvas/back/src/index.ts
+++ b/apps/canvas/back/src/index.ts
@@ -12,7 +12,16 @@
import shell from "shelljs";
import { RealFileSystem } from "./lib/fs.js";
import path from "node:path";
-import { Env, generateDodoConfig, ConfigSchema, AppNode, ConfigWithInput, configToGraph, Network } from "config";
+import {
+ Env,
+ generateDodoConfig,
+ ConfigSchema,
+ AppNode,
+ ConfigWithInput,
+ configToGraph,
+ Network,
+ GithubRepository,
+} from "config";
async function generateKey(root: string): Promise<[string, string]> {
const privKeyPath = path.join(root, "key");
@@ -325,12 +334,18 @@
resp.write(JSON.stringify({ error: "Invalid configuration", issues: config.error.format() }));
return;
}
+ let repos: GithubRepository[] = [];
+ if (p.githubToken) {
+ const github = new GithubClient(p.githubToken);
+ repos = await github.getRepositories();
+ }
const state = req.body.state
? JSON.stringify(req.body.state)
: JSON.stringify(
configToGraph(
config.data,
getNetworks(resp.locals.username),
+ repos,
p.state ? JSON.parse(Buffer.from(p.state).toString("utf8")) : null,
),
);