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