Open djarbz opened 2 months ago
I am not sure if Jetbrians has a handy api to fetch the latest versions and build number.
I found one! Shows all (recent) versions as well as a marker for the latest!
https://data.services.jetbrains.com/help-versions?product=go
I found one! Shows all (recent) versions as well as a marker for the latest!
This doesn't list the build number that is needed to construct the download URL.
Well shoot, I'll keep looking...
This one looks promising! https://data.services.jetbrains.com/products?code=GO&release.type=release
We can change the code=GO
to match the selected IDE and under releases
the first entry is the latest release with download links, version number, and build number, along with a bunch of other goodies!
So we should be able to get the items using
download link: .[0].releases[0].downloads.linux.link
build: .[0].releases[0].build
version: .[0].releases[0].version
and HTTP provider.
Looks like it, I'm wondering if we should default to the latest version and allow end users to optionally specify a specific version?
Default to fetch will slow down builds and not work for air gapped environments.
Ok, so can we trigger the HTTP query pragmatically after the workspace owner selects and IDE and if they want the latest version? I'm not familiar enough with Terraform yet to know the inner workings of data access like that.
I also found this endpoint that will only provide the latest release, but we would need to call it for each IDE. I think this would be a quick enough API call that we could default to latest with a fallback? https://data.services.jetbrains.com/products/releases?code=GO&latest=true&type=release
Does this module even work in air gapped systems? Coder would need internet access to download the IDE anyways. Unless the system has the IDE pre-installed? In which case, perhaps we should have a backend parameter to override the IDE, version, and build number?
Air-gapped solutions would self-host terraform modules. But i like the idea that you can select for "latest" and it would dynamically look it up.
Actually, I am not sure how air-gapped solutions would allow for JetBrains download in the first place. 😆. You would have to pre-install the idea on the running workspace.
Actually, I am not sure how air-gapped solutions would allow for JetBrains download in the first place. 😆. You would have to pre-install the idea on the running workspace.
That's kind of what I was getting at... But if you are on an air gapped system with a pre-installed IDE, wouldn't it be easier to manually specify the Gateway link to match the version than to match what is specified in this module?
IMHO I don't think this module is useful in an air gapped system.
@matifali
I found this endpoint that will return the info for a specific release/eap version.
https://data.services.jetbrains.com/products?code=GO&type=release&majorVersion=2024.1
Great. This would work. I won't be able to do this in next few weeks. Feel free to submit a PR.
I would like to request an option to use a specific or
latest
version of the selected IDE.For example:
2024.1
to use the2024.1
version of the IDE.latest
and upon startup of the workspace the latest version of the selected IDE will be discovered and utilized. If a new version is released, we simply would need to restart the workspace to link the new version.