Skip to content

Commit 8785470

Browse files
authored
feat(jetbrains-gateway): add releases_base_link/download_base_link variables (#333)
1 parent b53554b commit 8785470

File tree

2 files changed

+51
-13
lines changed

2 files changed

+51
-13
lines changed

jetbrains-gateway/README.md

+22-4
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ This module adds a JetBrains Gateway Button to open any workspace with a single
1414
```tf
1515
module "jetbrains_gateway" {
1616
source = "registry.coder.com/modules/jetbrains-gateway/coder"
17-
version = "1.0.21"
17+
version = "1.0.23"
1818
agent_id = coder_agent.example.id
1919
agent_name = "example"
2020
folder = "/home/coder/example"
@@ -32,7 +32,7 @@ module "jetbrains_gateway" {
3232
```tf
3333
module "jetbrains_gateway" {
3434
source = "registry.coder.com/modules/jetbrains-gateway/coder"
35-
version = "1.0.21"
35+
version = "1.0.23"
3636
agent_id = coder_agent.example.id
3737
agent_name = "example"
3838
folder = "/home/coder/example"
@@ -46,7 +46,7 @@ module "jetbrains_gateway" {
4646
```tf
4747
module "jetbrains_gateway" {
4848
source = "registry.coder.com/modules/jetbrains-gateway/coder"
49-
version = "1.0.21"
49+
version = "1.0.23"
5050
agent_id = coder_agent.example.id
5151
agent_name = "example"
5252
folder = "/home/coder/example"
@@ -61,7 +61,7 @@ module "jetbrains_gateway" {
6161
```tf
6262
module "jetbrains_gateway" {
6363
source = "registry.coder.com/modules/jetbrains-gateway/coder"
64-
version = "1.0.21"
64+
version = "1.0.23"
6565
agent_id = coder_agent.example.id
6666
agent_name = "example"
6767
folder = "/home/coder/example"
@@ -72,6 +72,24 @@ module "jetbrains_gateway" {
7272
}
7373
```
7474

75+
### Custom base link
76+
77+
Due to the highest priority of the `ide_download_link` parameter in the `(jetbrains-gateway://...` within IDEA, the pre-configured download address will be overridden when using [IDEA's offline mode](https://www.jetbrains.com/help/idea/fully-offline-mode.html). Therefore, it is necessary to configure the `download_base_link` parameter for the `jetbrains_gateway` module to change the value of `ide_download_link`.
78+
79+
```tf
80+
module "jetbrains_gateway" {
81+
source = "registry.coder.com/modules/jetbrains-gateway/coder"
82+
version = "1.0.23"
83+
agent_id = coder_agent.example.id
84+
agent_name = "example"
85+
folder = "/home/coder/example"
86+
jetbrains_ides = ["GO", "WS"]
87+
releases_base_link = "https://releases.internal.site/"
88+
download_base_link = "https://download.internal.site/"
89+
default = "GO"
90+
}
91+
```
92+
7593
## Supported IDEs
7694

7795
This module and JetBrains Gateway support the following JetBrains IDEs:

jetbrains-gateway/main.tf

+29-9
Original file line numberDiff line numberDiff line change
@@ -146,9 +146,29 @@ variable "jetbrains_ides" {
146146
}
147147
}
148148

149+
variable "releases_base_link" {
150+
type = string
151+
description = ""
152+
default = "https://data.services.jetbrains.com"
153+
validation {
154+
condition = can(regex("^https?://.+$", var.releases_base_link))
155+
error_message = "The releases_base_link must be a valid HTTP/S address."
156+
}
157+
}
158+
159+
variable "download_base_link" {
160+
type = string
161+
description = ""
162+
default = "https://download.jetbrains.com"
163+
validation {
164+
condition = can(regex("^https?://.+$", var.download_base_link))
165+
error_message = "The download_base_link must be a valid HTTP/S address."
166+
}
167+
}
168+
149169
data "http" "jetbrains_ide_versions" {
150170
for_each = var.latest ? toset(var.jetbrains_ides) : toset([])
151-
url = "https://data.services.jetbrains.com/products/releases?code=${each.key}&latest=true&type=${var.channel}"
171+
url = "${var.releases_base_link}/products/releases?code=${each.key}&latest=true&type=${var.channel}"
152172
}
153173

154174
locals {
@@ -158,63 +178,63 @@ locals {
158178
name = "GoLand",
159179
identifier = "GO",
160180
build_number = var.jetbrains_ide_versions["GO"].build_number,
161-
download_link = "https://download.jetbrains.com/go/goland-${var.jetbrains_ide_versions["GO"].version}.tar.gz"
181+
download_link = "${var.download_base_link}/go/goland-${var.jetbrains_ide_versions["GO"].version}.tar.gz"
162182
version = var.jetbrains_ide_versions["GO"].version
163183
},
164184
"WS" = {
165185
icon = "/icon/webstorm.svg",
166186
name = "WebStorm",
167187
identifier = "WS",
168188
build_number = var.jetbrains_ide_versions["WS"].build_number,
169-
download_link = "https://download.jetbrains.com/webstorm/WebStorm-${var.jetbrains_ide_versions["WS"].version}.tar.gz"
189+
download_link = "${var.download_base_link}/webstorm/WebStorm-${var.jetbrains_ide_versions["WS"].version}.tar.gz"
170190
version = var.jetbrains_ide_versions["WS"].version
171191
},
172192
"IU" = {
173193
icon = "/icon/intellij.svg",
174194
name = "IntelliJ IDEA Ultimate",
175195
identifier = "IU",
176196
build_number = var.jetbrains_ide_versions["IU"].build_number,
177-
download_link = "https://download.jetbrains.com/idea/ideaIU-${var.jetbrains_ide_versions["IU"].version}.tar.gz"
197+
download_link = "${var.download_base_link}/idea/ideaIU-${var.jetbrains_ide_versions["IU"].version}.tar.gz"
178198
version = var.jetbrains_ide_versions["IU"].version
179199
},
180200
"PY" = {
181201
icon = "/icon/pycharm.svg",
182202
name = "PyCharm Professional",
183203
identifier = "PY",
184204
build_number = var.jetbrains_ide_versions["PY"].build_number,
185-
download_link = "https://download.jetbrains.com/python/pycharm-professional-${var.jetbrains_ide_versions["PY"].version}.tar.gz"
205+
download_link = "${var.download_base_link}/python/pycharm-professional-${var.jetbrains_ide_versions["PY"].version}.tar.gz"
186206
version = var.jetbrains_ide_versions["PY"].version
187207
},
188208
"CL" = {
189209
icon = "/icon/clion.svg",
190210
name = "CLion",
191211
identifier = "CL",
192212
build_number = var.jetbrains_ide_versions["CL"].build_number,
193-
download_link = "https://download.jetbrains.com/cpp/CLion-${var.jetbrains_ide_versions["CL"].version}.tar.gz"
213+
download_link = "${var.download_base_link}/cpp/CLion-${var.jetbrains_ide_versions["CL"].version}.tar.gz"
194214
version = var.jetbrains_ide_versions["CL"].version
195215
},
196216
"PS" = {
197217
icon = "/icon/phpstorm.svg",
198218
name = "PhpStorm",
199219
identifier = "PS",
200220
build_number = var.jetbrains_ide_versions["PS"].build_number,
201-
download_link = "https://download.jetbrains.com/webide/PhpStorm-${var.jetbrains_ide_versions["PS"].version}.tar.gz"
221+
download_link = "${var.download_base_link}/webide/PhpStorm-${var.jetbrains_ide_versions["PS"].version}.tar.gz"
202222
version = var.jetbrains_ide_versions["PS"].version
203223
},
204224
"RM" = {
205225
icon = "/icon/rubymine.svg",
206226
name = "RubyMine",
207227
identifier = "RM",
208228
build_number = var.jetbrains_ide_versions["RM"].build_number,
209-
download_link = "https://download.jetbrains.com/ruby/RubyMine-${var.jetbrains_ide_versions["RM"].version}.tar.gz"
229+
download_link = "${var.download_base_link}/ruby/RubyMine-${var.jetbrains_ide_versions["RM"].version}.tar.gz"
210230
version = var.jetbrains_ide_versions["RM"].version
211231
}
212232
"RD" = {
213233
icon = "/icon/rider.svg",
214234
name = "Rider",
215235
identifier = "RD",
216236
build_number = var.jetbrains_ide_versions["RD"].build_number,
217-
download_link = "https://download.jetbrains.com/rider/JetBrains.Rider-${var.jetbrains_ide_versions["RD"].version}.tar.gz"
237+
download_link = "${var.download_base_link}/rider/JetBrains.Rider-${var.jetbrains_ide_versions["RD"].version}.tar.gz"
218238
version = var.jetbrains_ide_versions["RD"].version
219239
}
220240
}

0 commit comments

Comments
 (0)