←  Back to Changelog VS Code SSH Gateway rollout and JetBrains IDE task support

August 31, 2022

August Gitpod Release 2022

Welcome to the August edition of the Gitpod Changelog.

Key highlights:

The following features are also accessible for users running the “latest” IDE or editor preference:

Improvements for JetBrains IDEs

We are continuing to make progress with the JetBrains and Gitpod integration #7956 as part of our ongoing partnership with JetBrains. Whilst most of our efforts are mostly towards IntelliJ IDEA, a lot of the improvements we are making will still apply to our other supported JetBrains IDEs.

JetBrains now supports multiple task Terminals

A key part of “Gitpodifying” a project is adding any necessary tasks, such as starting servers or database to your .gitpod.yml. One advantage of declaring these processes in your .gitpod.yml configuration is that your commands are picked up by the IDE or editor and show on workspace start.

Previously, JetBrains with Gitpod only showed a single terminal, meaning that users needed to use gp tasks to interact with running terminals. Due to some improvements for JetBrains Remote Development that we are able to leverage, you can now see all of your terminals inside the IDE as you also can with VS Code.

JetBrains now respects configured Java SDK (JDK) versions

Previously, when opening a Java Workspace with JetBrains, the Gitpod IDE would select the latest Java SDK (JDK) version as the default.

This was problematic when we recently updated the Gitpod workspace-full image, to include both Java 11 and 17, which many users rely upon. When having multiple JDK versions, JetBrains would default to using the latest JDK version, which in the case of the workspace-full image was 17, and not 11, causing a minor regression. Now, Gitpod respects configured JDK versions in locations such as the PATH and JAVA_HOME.

jetbrains gateway java sdk JetBrains IDEs now picking up the correct SDK version by default

View Resource Consumption in JetBrains Backend Control Center

When using a Gitpod workspace you might experience performance issues caused by an application using more resources than expected, or due to resource consumption in adjacent containers on the node. Whatever the reason, you may want to investigate what’s going on within your workspace.

We’ve now extended the JetBrains Backend Control Center with two additional bits of information about your workspace: Workspace CPU and Workspace Memory. The additional performance information shown in the control center is for the node that your workspace is running on, and not the workspace itself. This information is also the same that can be found from running the command gp top in your workspace.

jetbrains gateway performance center Viewing the workspace and node performance in the Backend Control Center

Improvements for VS Code Desktop

We have been continuing to invest in our desktop editor experiences, including VS Code #7184, with an emphasis on removing any barriers or friction in getting the VS Code editor open with a Gitpod workspace, establishing a stable connection via SSH, and improving the experience of restarting a timed out workspace.

Sync Local VS Code extensions

The underlying Microsoft VS Code - Remote SSH extension that powers the Gitpod VS Code Desktop integration does not automatically install local user extensions on remote machines, such as a Gitpod workspace. For users, because VS Code - Remote SSH does not automatically install local extensions, that means you’ll have to manually click “install” for each local extensions on every Gitpod workspace start. Installing extensions manually is cumbersome, especially when you have many extensions to install and is a barrier to utilising Gitpod ephemeral workspaces.

In an upcoming release, Gitpod will prompt you to enable VS Code Setting Sync with Gitpod, which will allow Gitpod to retrieve local extensions and automatically install them in your workspace. If for any reason you want to disable syncing of local extensions, you can do so via the gitpod.remote.syncExtension VS Code settings. If you have any feedback or thoughts, please add it to the GitHub issue: #7906.

Install local VS Code extensions notification Prompt to enable Setting Sync with Gitpod to sync local VS Code extensions

VS Code Desktop reduced popups when opening

Many users love Gitpod for how simple it can make working with your projects. However, for VS Code Desktop there were some cases where you needed to respond to specific popups when opening your workspace, for instance accepting the SSH fingerprint of the workspace, or accepting the browser redirect when opening a workspace.

The number of prompts you are now shown when opening VS Code Desktop is reduced.

You should see one browser redirect prompt (one for VS Code Desktop and one for JetBrains Gateway), marking “always allow” will suppress all future prompts. SSH fingerprints are also now automatically added to your known_hosts if you’re using SSH Gateway approach to opening VS Code Desktop.

Accepting the SSH fingerprint in VS Code Accepting the SSH fingerprint in VS Code Using the SSH Gateway approach for VS Code Desktop means no more SSH fingerprint prompts

For more information, check out our dedicated documentation for optimising VS Code Desktop.

All VS Code Desktop users on SaaS are now using SSH Gateway! 🎉

We have now completed a migration of all VS Code Desktop users on SaaS to our new SSH Gateway approach. This change brings improved stability, smoother restarting of workspaces, and more.

To get setup, we recommend you upload an SSH key to Gitpod. For full details on why we made this change to our SSH approach for VS Code Desktop, please check out our blog post VS Code Desktop and SSH explained.

If you cannot use the new approach for any reason, please reach out via the GitHub issue #7452.

new ssh key

Improvements for the Gitpod CLI (gp)

Over the last few months we’ve been making lots of updates to the Gitpod CLI (gp). Because the gp command-line-interface is bundled inside of all Gitpod workspaces, gp acts as a common way to run workspace actions regardless of what editor or IDE you’re using Gitpod with, whether that’s JetBrains, VS Code or directly via SSH.

Let’s say that you’re documenting your Gitpod setup, rather than detailing actions directly how to take some action in each of the Gitpod supported IDEs & editors, you can share gp commands knowing that the experience will be consistent across all workspace editing experiences.

gp tasks list shows your current tasks (as defined in the .gitpod.yml)

The gp tasks list command allows you to list any running commands that are defined in your .gitpod.yml. If you want, you can even attach to a given task using gp tasks attach which brings that current task into the foreground of your terminal. However, since there are situations where it might not be as easy to figure out which terminal you’re currently viewing, that’s why we now highlight your current task to make life a little easier for you

gp task list

gp tasks stop stops running tasks that (as defined in the .gitpod.yml)

You can now run gp tasks stop to stop running tasks that have been defined in your .gitpod.yml. You can either stop a single task with gp tasks stop <id>, or terminate all tasks by running gp tasks stop --all.

See the gp Command Line Interface documentation for more.

Improvements for SSH connections to Gitpod

The SSH protocol is the primary method of connection to Gitpod workspaces for JetBrains IDEs, VS Code Desktop and users who directly SSH into Gitpod for editing, or working with their code. We’ve been working to ensure that Gitpod has a wide range of support for different SSH clients and SSH key versions.

Improved OpenSSH compatibility and support for sha256/sha512

Previously, Gitpod did not support OpenSSH clients >v8.8, nor did Gitpod support RSA sha256/sha512. For users using VS Code Desktop with the SSH Gateway approach, this could mean that in some cases users could not leverage SSH access to Gitpod due to incompatible keys or OpenSSH client’s, however this issue should now be resolved.

Other fixes and improvements

  • #12468 - Local Preview: Check and exit if M1 Mac @Pothulapati's avatar on GitHub @corneliusludmann's avatar on GitHub
  • #12116 - Gitpod CLI: New command gp tasks stop @akosyakov's avatar on GitHub @andreafalzetti's avatar on GitHub @felladrin's avatar on GitHub @filiptronicek's avatar on GitHub @mustard-mh's avatar on GitHub
  • #11255 - Prevent abuse by limiting rate at which network connections can be made by a workspace @Furisto's avatar on GitHub @MrSimonEmms's avatar on GitHub @aledbf's avatar on GitHub @geropl's avatar on GitHub @jenting's avatar on GitHub @kylos101's avatar on GitHub @sagor999's avatar on GitHub @utam0k's avatar on GitHub
  • #12258 - Added phone number verification in SaaS, to help mitigate abuse. @AlexTugarev's avatar on GitHub @corneliusludmann's avatar on GitHub @gtsiolis's avatar on GitHub @jldec's avatar on GitHub @kylos101's avatar on GitHub @svenefftinge's avatar on GitHub
  • #12367 - Improve reliability of image build starts @jenting's avatar on GitHub @utam0k's avatar on GitHub
  • #12315 - Prevent divide by zero error in workspace info service @Furisto's avatar on GitHub @jenting's avatar on GitHub @kylos101's avatar on GitHub @utam0k's avatar on GitHub
  • #12288 - SSH-Gateway: Support rsa sha256/sha512 algorithm @MrSimonEmms's avatar on GitHub @akosyakov's avatar on GitHub @iQQBot's avatar on GitHub @jeanp413's avatar on GitHub @sagor999's avatar on GitHub
  • #12096 - Update spending limit modal on workspace start @geropl's avatar on GitHub @gtsiolis's avatar on GitHub @jankeromnes's avatar on GitHub @jldec's avatar on GitHub @laushinka's avatar on GitHub
  • #12234 - Truncate project environment variable name @geropl's avatar on GitHub @gtsiolis's avatar on GitHub
  • #12163 - JetBrains IDEs will use the default Java SDK version when there’s no explicit configuration for it yet. @akosyakov's avatar on GitHub @andreafalzetti's avatar on GitHub @felladrin's avatar on GitHub
  • #12028 - Fixed a rare case in which prebuilds terminated successfully but were shown as failed @jenting's avatar on GitHub @sagor999's avatar on GitHub @utam0k's avatar on GitHub
  • #12280 - Update docker compose from v2.8.0 to v2.10.0 @aledbf's avatar on GitHub @sagor999's avatar on GitHub
  • #12159 - JetBrains: Display Workspace CPU/Memory usage in Backend Control Center.JetBrains: Workspaces created from repositories with tasks defined on .gitpod.yml will start with one terminal opened for each task. @akosyakov's avatar on GitHub @andreafalzetti's avatar on GitHub @felladrin's avatar on GitHub
  • #12139 - Mark workspaces’ whose image builds failed as `stopped @geropl's avatar on GitHub @laushinka's avatar on GitHub
  • #12082 - Enable allowing redirect to Desktop IDEs for all workspaces. @akosyakov's avatar on GitHub @felladrin's avatar on GitHub @loujaybee's avatar on GitHub
  • #12053 - JetBrains: Display Workspace CPU/Memory usage in Backend Control Center @akosyakov's avatar on GitHub @andreafalzetti's avatar on GitHub @felladrin's avatar on GitHub
  • #12052 - Gitpod CLI: Highlight current task in gp tasks list @akosyakov's avatar on GitHub @andreafalzetti's avatar on GitHub @felladrin's avatar on GitHub @filiptronicek's avatar on GitHub @jeanp413's avatar on GitHub
  • #11993 - Fixes entering of colons in host on Git Integration page. @AlexTugarev's avatar on GitHub @andrew-farries's avatar on GitHub
  • #11576 - Add Spending Limit Reached modal on workspace creation. @AlexTugarev's avatar on GitHub @geropl's avatar on GitHub
  • #10199 - Migrate AlertBox component instances to Alert component @KevSlashNull's avatar on GitHub @andrew-farries's avatar on GitHub @gtsiolis's avatar on GitHub @meysholdt's avatar on GitHub
  • #11434 - Local Preview: Provide information about next steps when exited @MrSimonEmms's avatar on GitHub @Pothulapati's avatar on GitHub @andrew-farries's avatar on GitHub @gtsiolis's avatar on GitHub @lucasvaltl's avatar on GitHub
  • #11570 - Fix broken prebuild trigger for GHE. @AlexTugarev's avatar on GitHub @geropl's avatar on GitHub
  • #11768 - Display an alert on signup if a user cannot login because their license does not cover for that additional seat @AlexTugarev's avatar on GitHub @geropl's avatar on GitHub @gtsiolis's avatar on GitHub @lucasvaltl's avatar on GitHub