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 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) => {
 | 
			
		||||
 
 | 
			
		||||
@@ -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);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user