feat: get default public key from vscode

This commit is contained in:
Levi Yan
2024-10-21 11:40:21 +08:00
parent bf0ace5cc4
commit 5672003901
2 changed files with 25 additions and 4 deletions

View File

@@ -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) => {

View File

@@ -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);