feat: get default public key from vscode
This commit is contained in:
@@ -570,7 +570,7 @@ header("Allow: GET, POST, OPTIONS, PUT, DELETE");
|
|||||||
const devContainerUsername = data.data.devContainerUsername
|
const devContainerUsername = data.data.devContainerUsername
|
||||||
const devContainerPassword = data.data.devContainerPassword
|
const devContainerPassword = data.data.devContainerPassword
|
||||||
const devContainerPort = data.data.devContainerPort
|
const devContainerPort = data.data.devContainerPort
|
||||||
const devContainerWorkDir = `${data.data.devContainerWorkDir}/${devContainerUsername}`
|
const devContainerWorkDir = '/data/workspace'
|
||||||
|
|
||||||
// default: open with password
|
// default: open with password
|
||||||
firstOpenRemoteFolder(devContainerHost, devContainerUsername, devContainerPassword, devContainerPort, devContainerWorkDir)
|
firstOpenRemoteFolder(devContainerHost, devContainerUsername, devContainerPassword, devContainerPort, devContainerWorkDir)
|
||||||
@@ -623,13 +623,18 @@ header("Allow: GET, POST, OPTIONS, PUT, DELETE");
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO: create container
|
// TODO: create container
|
||||||
function createDevContainer(repoId) {
|
async function createDevContainer(repoId) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise(async (resolve, reject) => {
|
||||||
|
// get public key
|
||||||
|
const publicKey = await getDefaultPublicKeyFromVSCode()
|
||||||
|
|
||||||
|
// request creating container
|
||||||
const url = DEVSTAR_HOME + "/api/devcontainer"
|
const url = DEVSTAR_HOME + "/api/devcontainer"
|
||||||
var token = USERTOKEN
|
var token = USERTOKEN
|
||||||
|
|
||||||
const postData = {
|
const postData = {
|
||||||
"repoId": repoId.toString(),
|
"repoId": repoId.toString(),
|
||||||
|
"sshPublicKeyList": [publicKey]
|
||||||
}
|
}
|
||||||
|
|
||||||
fetch(url, {
|
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
|
// TODO: delete container
|
||||||
function deleteDevContainer(repoId) {
|
function deleteDevContainer(repoId) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
|
|||||||
@@ -103,7 +103,6 @@ header("Allow: GET, POST, OPTIONS, PUT, DELETE");
|
|||||||
// set user token to vscode global state
|
// set user token to vscode global state
|
||||||
await biCommunication2Vscode('setUserToken', jsonData.data)
|
await biCommunication2Vscode('setUserToken', jsonData.data)
|
||||||
.then((data) => {
|
.then((data) => {
|
||||||
console.log(data)
|
|
||||||
var iframe = document.getElementById('embedded-devstar');
|
var iframe = document.getElementById('embedded-devstar');
|
||||||
if (iframe && iframe.contentWindow) {
|
if (iframe && iframe.contentWindow) {
|
||||||
iframe.contentWindow.postMessage({ action: 'setUserToken', data: data}, '*');
|
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}}, '*');
|
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) {
|
} catch (error) {
|
||||||
console.error('Error parsing message:', error);
|
console.error('Error parsing message:', error);
|
||||||
|
|||||||
Reference in New Issue
Block a user