From 567200390163e1c43382dd461600d615180ccdb1 Mon Sep 17 00:00:00 2001 From: Levi Yan Date: Mon, 21 Oct 2024 11:40:21 +0800 Subject: [PATCH] feat: get default public key from vscode --- test/home.html | 22 +++++++++++++++++++--- test/index.html | 7 ++++++- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/test/home.html b/test/home.html index e2c64e8..bcc8fe8 100644 --- a/test/home.html +++ b/test/home.html @@ -570,7 +570,7 @@ header("Allow: GET, POST, OPTIONS, PUT, DELETE"); const devContainerUsername = data.data.devContainerUsername const devContainerPassword = data.data.devContainerPassword const devContainerPort = data.data.devContainerPort - const devContainerWorkDir = `${data.data.devContainerWorkDir}/${devContainerUsername}` + const devContainerWorkDir = '/data/workspace' // default: open with password firstOpenRemoteFolder(devContainerHost, devContainerUsername, devContainerPassword, devContainerPort, devContainerWorkDir) @@ -623,13 +623,18 @@ header("Allow: GET, POST, OPTIONS, PUT, DELETE"); } // TODO: create container - function createDevContainer(repoId) { - return new Promise((resolve, reject) => { + async function createDevContainer(repoId) { + return new Promise(async (resolve, reject) => { + // get public key + const publicKey = await getDefaultPublicKeyFromVSCode() + + // request creating container const url = DEVSTAR_HOME + "/api/devcontainer" var token = USERTOKEN const postData = { "repoId": repoId.toString(), + "sshPublicKeyList": [publicKey] } fetch(url, { @@ -663,6 +668,17 @@ header("Allow: GET, POST, OPTIONS, PUT, DELETE"); }) } + async function getDefaultPublicKeyFromVSCode() { + try { + const data = await biCommunication2Webview('getDefaultPublicKey', null); + const defaultPublicKey = data.defaultPublicKey; + + return defaultPublicKey; + } catch (error) { + console.log("Failed to get default public key: ", error) + } + } + // TODO: delete container function deleteDevContainer(repoId) { return new Promise((resolve, reject) => { diff --git a/test/index.html b/test/index.html index eebcecf..cd0ce0c 100644 --- a/test/index.html +++ b/test/index.html @@ -103,7 +103,6 @@ header("Allow: GET, POST, OPTIONS, PUT, DELETE"); // set user token to vscode global state await biCommunication2Vscode('setUserToken', jsonData.data) .then((data) => { - console.log(data) var iframe = document.getElementById('embedded-devstar'); if (iframe && iframe.contentWindow) { iframe.contentWindow.postMessage({ action: 'setUserToken', data: data}, '*'); @@ -114,6 +113,12 @@ header("Allow: GET, POST, OPTIONS, PUT, DELETE"); iframe.contentWindow.postMessage({ action: 'setUserToken', data: {ok: false}}, '*'); } }); + } else if (jsonData.action === 'getDefaultPublicKey') { + const data = await biCommunication2Vscode('getDefaultPublicKey', {}) + var iframe = document.getElementById('embedded-devstar') + if (iframe && iframe.contentWindow) { + iframe.contentWindow.postMessage({ action: 'getDefaultPublicKey', data: data}, "*") + } } } catch (error) { console.error('Error parsing message:', error);