Skip to content

Commit

Permalink
Make list workspaces works
Browse files Browse the repository at this point in the history
  • Loading branch information
mustard-mh committed Mar 26, 2024
1 parent 50532b8 commit 7cf9966
Show file tree
Hide file tree
Showing 11 changed files with 39 additions and 111 deletions.
4 changes: 3 additions & 1 deletion components/ide/jetbrains/toolbox/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ tasks.shadowJar {
"com.squareup.okhttp3",
"org.slf4j",
"org.jetbrains.intellij",
"com.squareup.okio",
"kotlin."
)

Expand Down Expand Up @@ -94,6 +95,7 @@ val restartToolbox by tasks.creating {
exec {
commandLine("sh", "-c", "pkill -f 'JetBrains Toolbox' || true")
}
Thread.sleep(3000)
exec {
commandLine("open", "/Applications/JetBrains Toolbox.app")
}
Expand Down Expand Up @@ -167,6 +169,6 @@ val uploadPlugin by tasks.creating {
// instance.uploader.uploadNewPlugin(pluginZip.outputs.files.singleFile, listOf("toolbox", "gateway"), LicenseUrl.APACHE_2_0, ProductFamily.TOOLBOX)

// subsequent updates
instance.uploader.upload("io.gitpod.toolbox.gateway", pluginZip.outputs.files.singleFile)
instance.uploader.upload(pluginId, pluginZip.outputs.files.singleFile)
}
}

This file was deleted.

This file was deleted.

22 changes: 0 additions & 22 deletions components/ide/jetbrains/toolbox/src/main/kotlin/await.kt

This file was deleted.

14 changes: 0 additions & 14 deletions components/ide/jetbrains/toolbox/src/main/kotlin/dto.kt

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package toolbox.gateway.sample.io.gitpod.toolbox
package io.gitpod.toolbox.data

import com.connectrpc.Interceptor
import com.connectrpc.ProtocolClientConfig
Expand All @@ -12,7 +12,7 @@ import com.connectrpc.protocols.NetworkProtocol
import io.gitpod.publicapi.v1.WorkspaceServiceClient

class GitpodPublicApiManager {
private val sharedClient = createClient("gitpod.io", "aaaa")
private val sharedClient = createClient("gitpod.io", "TODO: input your pat token here WITHOUT push to repo")

This comment has been minimized.

Copy link
@akosyakov

akosyakov Mar 26, 2024

Member

@mustard-mh We are going to add ouath2 right?

This comment has been minimized.

Copy link
@mustard-mh

mustard-mh Mar 26, 2024

Author Contributor

val workspaceApi = WorkspaceServiceClient(sharedClient)

Expand All @@ -38,7 +38,14 @@ class GitpodPublicApiManager {

class AuthorizationInterceptor(private val token: String) : Interceptor {
override fun streamFunction(): StreamFunction {
TODO("Not yet implemented")
return StreamFunction(
requestFunction = { request ->
val headers = mutableMapOf<String, List<String>>()
headers.putAll(request.headers)
headers["Authorization"] = listOf("Bearer $token")
return@StreamFunction request.clone(headers = headers)
},
)
}

override fun unaryFunction(): UnaryFunction {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package toolbox.gateway.sample
package io.gitpod.toolbox.gateway

import com.jetbrains.toolbox.gateway.environments.ManualEnvironmentContentsView

class SampleEnvironmentContentsView : ManualEnvironmentContentsView {
class GitpodEnvironmentContentsView : ManualEnvironmentContentsView {
override fun addEnvironmentContentsListener(listener: ManualEnvironmentContentsView.Listener) {
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package io.gitpod.toolbox.gateway

import com.jetbrains.toolbox.gateway.GatewayExtension
import com.jetbrains.toolbox.gateway.RemoteEnvironmentConsumer
import com.jetbrains.toolbox.gateway.RemoteProvider
import com.jetbrains.toolbox.gateway.ToolboxServiceLocator
import kotlinx.coroutines.CoroutineScope

class GitpodGatewayExtension : GatewayExtension {
override fun createRemoteProviderPluginInstance(serviceLocator: ToolboxServiceLocator): RemoteProvider {
return GitpodRemoteProvider(
serviceLocator.getService(RemoteEnvironmentConsumer::class.java),
serviceLocator.getService(CoroutineScope::class.java),
)
}
}
Original file line number Diff line number Diff line change
@@ -1,20 +1,18 @@
package toolbox.gateway.sample
package io.gitpod.toolbox.gateway

import com.connectrpc.ResponseMessage
import com.jetbrains.toolbox.gateway.ProviderVisibilityState
import com.jetbrains.toolbox.gateway.RemoteEnvironmentConsumer
import com.jetbrains.toolbox.gateway.RemoteProvider
import io.gitpod.publicapi.v1.WorkspaceOuterClass
import io.gitpod.publicapi.v1.WorkspaceOuterClass.ListWorkspacesRequest
import io.gitpod.toolbox.data.GitpodPublicApiManager
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.launch
import okhttp3.OkHttpClient
import org.slf4j.LoggerFactory
import toolbox.gateway.sample.io.gitpod.toolbox.GitpodPublicApiManager
import java.net.URI

class SampleRemoteProvider(
private val httpClient: OkHttpClient,
class GitpodRemoteProvider(
private val consumer: RemoteEnvironmentConsumer,
coroutineScope: CoroutineScope,
) : RemoteProvider {
Expand All @@ -25,7 +23,7 @@ class SampleRemoteProvider(
coroutineScope.launch {
val workspaceList = publicApi.workspaceApi.listWorkspaces(ListWorkspacesRequest.newBuilder().setOrganizationId(publicApi.getCurrentOrganizationId()).build())
workspaceList.success {list: ResponseMessage.Success<WorkspaceOuterClass.ListWorkspacesResponse> ->
consumer.consumeEnvironments(list.message.workspacesList.map { GitpodRemoteEnvironment(it) })
consumer.consumeEnvironments(list.message.workspacesList.map { GitpodRemoteProviderEnvironment(it) })
}
workspaceList.failure { error: ResponseMessage.Failure<WorkspaceOuterClass.ListWorkspacesResponse> ->
logger.error("Failed to retrieve workspaces: ${error.toString()}")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package toolbox.gateway.sample
package io.gitpod.toolbox.gateway

import com.jetbrains.toolbox.gateway.EnvironmentVisibilityState
import com.jetbrains.toolbox.gateway.RemoteProviderEnvironment
Expand All @@ -8,7 +8,7 @@ import com.jetbrains.toolbox.gateway.ui.ActionListener
import io.gitpod.publicapi.v1.WorkspaceOuterClass
import java.util.concurrent.CompletableFuture

class GitpodRemoteEnvironment(
class GitpodRemoteProviderEnvironment(
private val workspace: WorkspaceOuterClass.Workspace
) : RemoteProviderEnvironment {
private val stateListeners = mutableSetOf<EnvironmentStateConsumer>()
Expand All @@ -29,7 +29,7 @@ class GitpodRemoteEnvironment(
}

override fun getContentsView(): CompletableFuture<EnvironmentContentsView> {
return CompletableFuture.completedFuture(SampleEnvironmentContentsView())
return CompletableFuture.completedFuture(GitpodEnvironmentContentsView())
}

override fun setVisible(visibilityState: EnvironmentVisibilityState) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1 @@
toolbox.gateway.sample.SampleGatewayExtension
io.gitpod.toolbox.gateway.GitpodGatewayExtension

0 comments on commit 7cf9966

Please sign in to comment.