Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
gitpod-io
GitHub Repository: gitpod-io/gitpod
Path: blob/main/components/gitpod-protocol/data/gitpod-schema.json
2496 views
1
{
2
"$id": "https://gitpod.io/schemas/gitpod-schema.json",
3
"$schema": "http://json-schema.org/draft-07/schema#",
4
"title": "Gitpod Config",
5
"type": "object",
6
"properties": {
7
"ports": {
8
"type": "array",
9
"description": "List of exposed ports.",
10
"items": {
11
"type": "object",
12
"required": [
13
"port"
14
],
15
"properties": {
16
"port": {
17
"type": ["number", "string"],
18
"pattern": "^\\d+[:-]\\d+$",
19
"description": "The port number (e.g. 1337) or range (e.g. 3000-3999) to expose."
20
},
21
"onOpen": {
22
"type": "string",
23
"enum": [
24
"open-browser",
25
"open-preview",
26
"notify",
27
"ignore",
28
"ignore-completely"
29
],
30
"description": "What to do when a service on this port was detected. 'notify' (default) will show a notification asking the user what to do. 'open-browser' will open a new browser tab. 'open-preview' will open in the preview on the right of the IDE. 'ignore' will do nothing. 'ignore-completely' will do nothing and prevent port forwarding."
31
},
32
"visibility": {
33
"type": "string",
34
"enum": [
35
"private",
36
"public"
37
],
38
"default": "private",
39
"description": "Whether the port visibility should be private or public. 'private' (default) will only allow users with workspace access to access the port. 'public' will allow everyone with the port URL to access the port."
40
},
41
"name": {
42
"type": "string",
43
"description": "Port name."
44
},
45
"protocol": {
46
"type": "string",
47
"enum": [
48
"http",
49
"https"
50
],
51
"description": "The protocol of workspace port."
52
},
53
"description": {
54
"type": "string",
55
"description": "A description to identify what is this port used for."
56
}
57
},
58
"additionalProperties": false
59
}
60
},
61
"tasks": {
62
"type": "array",
63
"description": "List of tasks to run on start. Each task will open a terminal in the IDE.",
64
"items": {
65
"type": "object",
66
"properties": {
67
"name": {
68
"type": "string",
69
"description": "Name of the task. Shown on the tab of the opened terminal."
70
},
71
"before": {
72
"type": "string",
73
"description": "A shell command to run before `init` and the main `command`. This command is executed on every start and is expected to terminate. If it fails, the following commands will not be executed."
74
},
75
"init": {
76
"type": "string",
77
"description": "A shell command to run between `before` and the main `command`. This command is executed only on after initializing a workspace with a fresh clone, but not on restarts and snapshots. This command is expected to terminate. If it fails, the `command` property will not be executed."
78
},
79
"prebuild": {
80
"type": "string",
81
"description": "A shell command to run after `before`. This command is executed only on during workspace prebuilds. This command is expected to terminate. If it fails, the workspace build fails.",
82
"deprecationMessage": "Deprecated. Please use `init` task instead. See https://www.gitpod.io/docs/config-start-tasks."
83
},
84
"command": {
85
"type": "string",
86
"description": "The main shell command to run after `before` and `init`. This command is executed last on every start and doesn't have to terminate."
87
},
88
"env": {
89
"type": "object",
90
"description": "Environment variables to set."
91
},
92
"openIn": {
93
"type": "string",
94
"enum": [
95
"bottom",
96
"main",
97
"left",
98
"right"
99
],
100
"description": "The panel/area where to open the terminal. Default is 'bottom' panel."
101
},
102
"openMode": {
103
"type": "string",
104
"enum": [
105
"split-left",
106
"split-right",
107
"tab-before",
108
"tab-after"
109
],
110
"description": "The opening mode. Default is 'tab-after'."
111
}
112
},
113
"additionalProperties": false
114
}
115
},
116
"image": {
117
"type": [
118
"object",
119
"string"
120
],
121
"description": "The Docker image to run your workspace in.",
122
"default": "gitpod/workspace-full",
123
"required": [
124
"file"
125
],
126
"properties": {
127
"file": {
128
"type": "string",
129
"description": "Relative path to a docker file."
130
},
131
"context": {
132
"type": "string",
133
"description": "Relative path to the context path (optional). Should only be set if you need to copy files into the image."
134
}
135
},
136
"additionalProperties": false
137
},
138
"additionalRepositories": {
139
"type": "array",
140
"description": "List of additional repositories that are part of this project.",
141
"items": {
142
"type": "object",
143
"required": [
144
"url"
145
],
146
"properties": {
147
"url": {
148
"type": ["string"],
149
"description": "The url of the git repository to clone. Supports any context URLs."
150
},
151
"checkoutLocation": {
152
"type": "string",
153
"description": "Path to where the repository should be checked out relative to `/workspace`. Defaults to the simple repository name."
154
}
155
},
156
"additionalProperties": false
157
}
158
},
159
"mainConfiguration": {
160
"type": "string",
161
"description": "The main repository, containing the dev environment configuration."
162
},
163
"checkoutLocation": {
164
"type": "string",
165
"description": "Path to where the repository should be checked out relative to `/workspace`. Defaults to the simple repository name."
166
},
167
"workspaceLocation": {
168
"type": "string",
169
"description": "Path to where the IDE's workspace should be opened. Supports vscode's `*.code-workspace` files."
170
},
171
"gitConfig": {
172
"type": [
173
"object"
174
],
175
"description": "Git config values should be provided in pairs. E.g. `core.autocrlf: input`. See https://git-scm.com/docs/git-config#_values.",
176
"additionalProperties": {
177
"type": "string"
178
}
179
},
180
"github": {
181
"type": "object",
182
"description": "Configures Gitpod's GitHub app (deprecated)",
183
"deprecationMessage": "Deprecated. Please use the Project Settings to configure prebuilds.",
184
"properties": {
185
"prebuilds": {
186
"type": [
187
"boolean",
188
"object"
189
],
190
"description": "Set to true to enable workspace prebuilds, false to disable them. Defaults to true. (deprecated)",
191
"deprecationMessage": "Deprecated. Please use the Project Settings to configure prebuilds.",
192
"properties": {
193
"master": {
194
"type": "boolean",
195
"description": "Enable prebuilds for the default branch (typically master). Defaults to true.",
196
"deprecationMessage": "Deprecated. Please use the Project Settings to configure prebuilds."
197
},
198
"branches": {
199
"type": "boolean",
200
"description": "Enable prebuilds for all branches. Defaults to false.",
201
"deprecationMessage": "Deprecated. Please use the Project Settings to configure prebuilds."
202
},
203
"pullRequests": {
204
"type": "boolean",
205
"description": "Enable prebuilds for pull-requests from the original repo. Defaults to true.",
206
"deprecationMessage": "Deprecated. Please use the Project Settings to configure prebuilds."
207
},
208
"pullRequestsFromForks": {
209
"type": "boolean",
210
"description": "Enable prebuilds for pull-requests from any repo (e.g. from forks). Defaults to false.",
211
"deprecationMessage": "Deprecated. This feature is about to be removed."
212
},
213
"addBadge": {
214
"type": "boolean",
215
"description": "Add a Review in Gitpod badge to pull requests. Defaults to true.",
216
"deprecationMessage": "Deprecated. This feature is about to be removed."
217
},
218
"addCheck": {
219
"type": [
220
"boolean",
221
"string"
222
],
223
"enum": [
224
true,
225
false,
226
"prevent-merge-on-error"
227
],
228
"description": "Add a commit check to pull requests. Set to 'fail-on-error' if you want broken prebuilds to block merging. Defaults to true.",
229
"deprecationMessage": "Deprecated. This feature is about to be removed."
230
},
231
"addLabel": {
232
"type": [
233
"boolean",
234
"string"
235
],
236
"description": "Add a label to a PR when it's prebuilt. Set to true to use the default label (prebuilt-in-gitpod) or set to a string to use a different label name. This is a beta feature and may be unreliable. Defaults to false.",
237
"deprecationMessage": "Deprecated. This feature is about to be removed."
238
}
239
}
240
}
241
},
242
"additionalProperties": false
243
},
244
"vscode": {
245
"type": "object",
246
"description": "Configure VS Code integration",
247
"additionalProperties": false,
248
"properties": {
249
"extensions": {
250
"type": "array",
251
"description": "List of extensions which should be installed for users of this workspace. The identifier of an extension is always '${publisher}.${name}'. For example: 'vscode.csharp'.",
252
"items": {
253
"type": "string"
254
}
255
}
256
}
257
},
258
"jetbrains": {
259
"type": "object",
260
"description": "Configure JetBrains integration",
261
"additionalProperties": false,
262
"properties": {
263
"plugins": {
264
"type": "array",
265
"description": "List of plugins which should be installed for all JetBrains product for users of this workspace. From the JetBrains Marketplace page, find a page of the required plugin, select 'Versions' tab, click any version to copy pluginId (short name such as org.rust.lang) of the plugin you want to install.",
266
"items": {
267
"type": "string"
268
}
269
},
270
"intellij": {
271
"$ref": "#/definitions/jetbrainsProduct",
272
"description": "Configure IntelliJ integration"
273
},
274
"goland": {
275
"$ref": "#/definitions/jetbrainsProduct",
276
"description": "Configure GoLand integration"
277
},
278
"pycharm": {
279
"$ref": "#/definitions/jetbrainsProduct",
280
"description": "Configure PyCharm integration"
281
},
282
"phpstorm": {
283
"$ref": "#/definitions/jetbrainsProduct",
284
"description": "Configure PhpStorm integration"
285
},
286
"rubymine": {
287
"$ref": "#/definitions/jetbrainsProduct",
288
"description": "Configure RubyMine integration"
289
},
290
"webstorm": {
291
"$ref": "#/definitions/jetbrainsProduct",
292
"description": "Configure WebStorm integration"
293
},
294
"rider": {
295
"$ref": "#/definitions/jetbrainsProduct",
296
"description": "Configure Rider integration"
297
},
298
"clion": {
299
"$ref": "#/definitions/jetbrainsProduct",
300
"description": "Configure CLion integration"
301
},
302
"rustrover": {
303
"$ref": "#/definitions/jetbrainsProduct",
304
"description": "Configure RustRover integration"
305
}
306
}
307
},
308
"experimentalNetwork": {
309
"type": "boolean",
310
"deprecationMessage": "The 'experimentalNetwork' property is deprecated.",
311
"description": "Experimental network configuration in workspaces (deprecated). Enabled by default"
312
},
313
"coreDump": {
314
"type": "object",
315
"description": "Configure the default action of certain signals is to cause a process to terminate and produce a core dump file, a file containing an image of the process's memory at the time of termination. Disabled by default.",
316
"deprecationMessage": "The 'coreDump' property is experimental.",
317
"additionalProperties": false,
318
"properties": {
319
"enabled": {
320
"type": "boolean"
321
},
322
"softLimit": {
323
"type": "number",
324
"description": "upper limit on the size of the core dump file that will be produced if it receives a core dump signal"
325
},
326
"hardLimit": {
327
"type": "number",
328
"description": "the hard limit acts as a ceiling for the soft limit. For more details please check https://man7.org/linux/man-pages/man2/getrlimit.2.html"
329
}
330
}
331
},
332
"env": {
333
"type": "object",
334
"description": "Environment variables to set on the workspace.",
335
"additionalProperties": {
336
"type": "string"
337
}
338
}
339
},
340
"additionalProperties": false,
341
"definitions": {
342
"jetbrainsProduct": {
343
"type": "object",
344
"additionalProperties": false,
345
"properties": {
346
"plugins": {
347
"type": "array",
348
"description": "List of plugins which should be installed for users of this workspace. From the JetBrains Marketplace page, find a page of the required plugin, select 'Versions' tab, click any version to copy pluginId (short name such as org.rust.lang) of the plugin you want to install.",
349
"items": {
350
"type": "string"
351
}
352
},
353
"prebuilds": {
354
"type": "object",
355
"description": "Enable warming up of JetBrains backend in prebuilds.",
356
"additionalProperties": false,
357
"properties": {
358
"version": {
359
"type": "string",
360
"enum": [
361
"stable",
362
"latest",
363
"both"
364
],
365
"description": "Whether only stable, latest or both versions should be warmed up. Default is stable only."
366
}
367
}
368
},
369
"vmoptions": {
370
"type": "string",
371
"description": "Configure JVM options, for instance '-Xmx=4096m'."
372
}
373
}
374
}
375
}
376
}
377
378