summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2023-05-10 15:13:04 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2023-05-10 15:13:04 +0000
commit4e9ceea7f8ff3e097ad45f6f54c1b7165248e848 (patch)
tree6cc413c085934f15c789d539f69dcb89600c71fb /doc
parent0e0df204c1a0d859ccbbe1be83a5e09a53381f17 (diff)
downloadgitlab-ce-4e9ceea7f8ff3e097ad45f6f54c1b7165248e848.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'doc')
-rw-r--r--doc/administration/geo/setup/database.md2
-rw-r--r--doc/administration/logs/log_parsing.md5
-rw-r--r--doc/api/graphql/reference/index.md1
-rw-r--r--doc/api/lint.md2
-rw-r--r--doc/api/project_snippets.md108
-rw-r--r--doc/install/docker.md12
-rw-r--r--doc/raketasks/restore_gitlab.md3
-rw-r--r--doc/update/removals.md38
-rw-r--r--doc/user/analytics/value_streams_dashboard.md4
-rw-r--r--doc/user/project/remote_development/index.md5
-rw-r--r--doc/user/workspace/index.md8
11 files changed, 121 insertions, 67 deletions
diff --git a/doc/administration/geo/setup/database.md b/doc/administration/geo/setup/database.md
index 6141c3c1246..cf0c40dbbc5 100644
--- a/doc/administration/geo/setup/database.md
+++ b/doc/administration/geo/setup/database.md
@@ -895,7 +895,7 @@ For each node running a Patroni instance on the secondary site:
postgresql['sql_user_password'] = 'POSTGRESQL_PASSWORD_HASH'
postgresql['listen_address'] = '0.0.0.0' # You can use a public or VPC address here instead
- gitlab_rails['dbpassword'] = 'POSTGRESQL_PASSWORD'
+ gitlab_rails['db_password'] = 'POSTGRESQL_PASSWORD'
gitlab_rails['enable'] = true
gitlab_rails['auto_migrate'] = false
```
diff --git a/doc/administration/logs/log_parsing.md b/doc/administration/logs/log_parsing.md
index 40d6059d246..d9520ea9bc0 100644
--- a/doc/administration/logs/log_parsing.md
+++ b/doc/administration/logs/log_parsing.md
@@ -223,9 +223,12 @@ repeatedly reports that some items never reach 100%,
the following command helps to focus on the most common errors.
```shell
-jq --raw-output 'select(.severity == "ERROR") | [.project_path, .message] | @tsv' geo.log | sort | uniq -c | sort | tail
+jq --raw-output 'select(.severity == "ERROR") | [.project_path, .class, .message, .error] | @tsv' geo.log | sort | uniq -c | sort | tail
```
+Refer to our [Geo troubleshooting page](../geo/replication/troubleshooting.md)
+for advice about specific error messages.
+
### Parsing `gitaly/current`
Use the following examples to [troubleshoot Gitaly](../gitaly/troubleshooting.md).
diff --git a/doc/api/graphql/reference/index.md b/doc/api/graphql/reference/index.md
index 412556b6657..b4d43886c97 100644
--- a/doc/api/graphql/reference/index.md
+++ b/doc/api/graphql/reference/index.md
@@ -18938,6 +18938,7 @@ Represents a product analytics dashboard visualization.
| <a id="projectpathlocks"></a>`pathLocks` | [`PathLockConnection`](#pathlockconnection) | The project's path locks. (see [Connections](#connections)) |
| <a id="projectpipelineanalytics"></a>`pipelineAnalytics` | [`PipelineAnalytics`](#pipelineanalytics) | Pipeline analytics. |
| <a id="projectprintingmergerequestlinkenabled"></a>`printingMergeRequestLinkEnabled` | [`Boolean`](#boolean) | Indicates if a link to create or view a merge request should display after a push to Git repositories of the project from the command line. |
+| <a id="projectproductanalyticsinstrumentationkey"></a>`productAnalyticsInstrumentationKey` **{warning-solid}** | [`String`](#string) | **Introduced** in 16.0. This feature is an Experiment. It can be changed or removed at any time. Product Analytics instrumentation key assigned to the project. |
| <a id="projectproductanalyticsstate"></a>`productAnalyticsState` **{warning-solid}** | [`ProductAnalyticsState`](#productanalyticsstate) | **Introduced** in 15.10. This feature is an Experiment. It can be changed or removed at any time. Current state of the product analytics stack for this project.Can only be called for one project in a single request. |
| <a id="projectpublicjobs"></a>`publicJobs` | [`Boolean`](#boolean) | Indicates if there is public access to pipelines and job details of the project, including output logs and artifacts. |
| <a id="projectpushrules"></a>`pushRules` | [`PushRules`](#pushrules) | Project's push rules settings. |
diff --git a/doc/api/lint.md b/doc/api/lint.md
index 9de9aa23560..cfd34f6a40c 100644
--- a/doc/api/lint.md
+++ b/doc/api/lint.md
@@ -112,7 +112,7 @@ Example responses:
WARNING:
This endpoint was [deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/381669) in GitLab 15.7
-and is planned for removal in 16.0. Use [`POST /projects/:id/ci/lint`](#validate-a-ci-yaml-configuration-with-a-namespace) instead.
+and was [removed](https://gitlab.com/gitlab-org/gitlab/-/issues/403256) in 16.0. Use [`POST /projects/:id/ci/lint`](#validate-a-ci-yaml-configuration-with-a-namespace) instead.
Checks if CI/CD YAML configuration is valid. This endpoint validates basic CI/CD
configuration syntax. It doesn't have any namespace-specific context.
diff --git a/doc/api/project_snippets.md b/doc/api/project_snippets.md
index 242edf7d768..e39836f2781 100644
--- a/doc/api/project_snippets.md
+++ b/doc/api/project_snippets.md
@@ -13,11 +13,9 @@ You can set it with the `visibility` field in the snippet.
Constants for snippet visibility levels are:
-| visibility | Description |
-| ---------- | ----------- |
-| `private` | The snippet is visible only to project members. |
-| `internal` | The snippet is visible for any authenticated user except [external users](../user/admin_area/external_users.md). |
-| `public` | The snippet can be accessed without any authentication. |
+- **Private**: The snippet is visible only to project members.
+- **Internal**: The snippet is visible for any authenticated user except [external users](../user/admin_area/external_users.md).
+- **Public**: The snippet can be accessed without any authentication.
NOTE:
From July 2019, the `Internal` visibility setting is disabled for new projects, groups,
@@ -35,9 +33,9 @@ GET /projects/:id/snippets
Parameters:
-| Attribute | Type | Required | Description |
-|-----------|----------------|----------|-----------------------------------------------------------------------------------------------------------------|
-| `id` | integer or string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user. |
+| Attribute | Type | Required | Description |
+|-----------|----------------|----------|-------------|
+| `id` | integer or string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user.
## Single snippet
@@ -49,10 +47,10 @@ GET /projects/:id/snippets/:snippet_id
Parameters:
-| Attribute | Type | Required | Description |
-|--------------|----------------|----------|-----------------------------------------------------------------------------------------------------------------|
-| `id` | integer or string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user. |
-| `snippet_id` | integer | yes | The ID of a project's snippet. |
+| Attribute | Type | Required | Description |
+|--------------|----------------|----------|-------------|
+| `id` | integer or string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user.
+| `snippet_id` | integer | yes | The ID of a project's snippet.
```json
{
@@ -86,17 +84,17 @@ POST /projects/:id/snippets
Parameters:
-| Attribute | Type | Required | Description |
-|:------------------|:----------------|:---------|:----------------------------------------------------------------------------------------------------------------|
-| `id` | integer or string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user. |
-| `title` | string | yes | Title of a snippet. |
-| `file_name` | string | no | Deprecated: Use `files` instead. Name of a snippet file. |
-| `content` | string | no | Deprecated: Use `files` instead. Content of a snippet. |
-| `description` | string | no | Description of a snippet. |
-| `visibility` | string | no | Snippet's [visibility](#snippet-visibility-level) |
-| `files` | array of hashes | no | An array of snippet files. |
-| `files:file_path` | string | yes | File path of the snippet file. |
-| `files:content` | string | yes | Content of the snippet file. |
+| Attribute | Type | Required | Description |
+|:------------------|:----------------|:---------|:------------|
+| `id` | integer or string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user.
+| `files:content` | string | yes | Content of the snippet file.
+| `files:file_path` | string | yes | File path of the snippet file.
+| `title` | string | yes | Title of a snippet.
+| `content` | string | no | Deprecated: Use `files` instead. Content of a snippet.
+| `description` | string | no | Description of a snippet.
+| `file_name` | string | no | Deprecated: Use `files` instead. Name of a snippet file.
+| `files` | array of hashes | no | An array of snippet files.
+| `visibility` | string | no | Snippet's [visibility](#snippet-visibility-level).
Example request:
@@ -127,7 +125,7 @@ curl --request POST "https://gitlab.com/api/v4/projects/:id/snippets" \
Updates an existing project snippet. The user must have permission to change an existing snippet.
-Updates to snippets with multiple files *must* use the `files` attribute.
+Updates to snippets with multiple files must use the `files` attribute.
```plaintext
PUT /projects/:id/snippets/:snippet_id
@@ -135,20 +133,20 @@ PUT /projects/:id/snippets/:snippet_id
Parameters:
-| Attribute | Type | Required | Description |
-|:----------------------|:----------------|:---------|:----------------------------------------------------------------------------------------------------------------|
-| `id` | integer or string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user. |
-| `snippet_id` | integer | yes | The ID of a project's snippet. |
-| `title` | string | no | Title of a snippet. |
-| `file_name` | string | no | Deprecated: Use `files` instead. Name of a snippet file. |
-| `content` | string | no | Deprecated: Use `files` instead. Content of a snippet. |
-| `description` | string | no | Description of a snippet. |
-| `visibility` | string | no | Snippet's [visibility](#snippet-visibility-level) |
-| `files` | array of hashes | no | An array of snippet files. |
-| `files:action` | string | yes | Type of action to perform on the file, one of: `create`, `update`, `delete`, `move` |
-| `files:file_path` | string | no | File path of the snippet file. |
-| `files:previous_path` | string | no | Previous path of the snippet file. |
-| `files:content` | string | no | Content of the snippet file. |
+| Attribute | Type | Required | Description |
+|:----------------------|:----------------|:---------|:------------|
+| `id` | integer or string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user.
+| `files:action` | string | yes | Type of action to perform on the file. One of: `create`, `update`, `delete`, `move`.
+| `snippet_id` | integer | yes | The ID of a project's snippet.
+| `content` | string | no | Deprecated: Use `files` instead. Content of a snippet.
+| `description` | string | no | Description of a snippet.
+| `files` | array of hashes | no | An array of snippet files.
+| `files:content` | string | no | Content of the snippet file.
+| `files:file_path` | string | no | File path of the snippet file.
+| `file_name` | string | no | Deprecated: Use `files` instead. Name of a snippet file.
+| `files:previous_path` | string | no | Previous path of the snippet file.
+| `title` | string | no | Title of a snippet.
+| `visibility` | string | no | Snippet's [visibility](#snippet-visibility-level).
Example request:
@@ -186,10 +184,10 @@ DELETE /projects/:id/snippets/:snippet_id
Parameters:
-| Attribute | Type | Required | Description |
-|:-------------|:---------------|:---------|:----------------------------------------------------------------------------------------------------------------|
-| `id` | integer or string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user. |
-| `snippet_id` | integer | yes | The ID of a project's snippet. |
+| Attribute | Type | Required | Description |
+|:-------------|:---------------|:---------|:------------|
+| `id` | integer or string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user.
+| `snippet_id` | integer | yes | The ID of a project's snippet.
Example request:
@@ -208,10 +206,10 @@ GET /projects/:id/snippets/:snippet_id/raw
Parameters:
-| Attribute | Type | Required | Description |
+| Attribute | Type | Required | Description |
|:-------------|:---------------|:---------|:----------------------------------------------------------------------------------------------------------------|
-| `id` | integer or string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user. |
-| `snippet_id` | integer | yes | The ID of a project's snippet. |
+| `id` | integer or string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user.
+| `snippet_id` | integer | yes | The ID of a project's snippet.
Example request:
@@ -230,12 +228,12 @@ GET /projects/:id/snippets/:snippet_id/files/:ref/:file_path/raw
Parameters:
-| Attribute | Type | Required | Description |
-|:-------------|:---------------|:---------|:----------------------------------------------------------------------------------------------------------------|
-| `id` | integer or string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user |
-| `snippet_id` | integer | yes | The ID of a project's snippet. |
-| `ref` | string | yes | The name of a branch, tag or commit, for example, main. |
-| `file_path` | string | yes | The URL-encoded path to the file, for example, snippet%2Erb. |
+| Attribute | Type | Required | Description |
+|:-------------|:---------------|:---------|:------------|
+| `id` | integer or string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user.
+| `file_path` | string | yes | The URL-encoded path to the file, for example, `snippet%2Erb`.
+| `ref` | string | yes | The name of a branch, tag or commit, for example, `main`.
+| `snippet_id` | integer | yes | The ID of a project's snippet.
Example request:
@@ -252,10 +250,10 @@ Available only for users with administrator access.
GET /projects/:id/snippets/:snippet_id/user_agent_detail
```
-| Attribute | Type | Required | Description |
-|--------------|----------------|----------|-----------------------------------------------------------------------------------------------------------------|
-| `id` | integer or string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user. |
-| `snippet_id` | Integer | yes | The ID of a snippet. |
+| Attribute | Type | Required | Description |
+|--------------|----------------|----------|-------------|
+| `id` | integer or string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) owned by the authenticated user.
+| `snippet_id` | Integer | yes | The ID of a snippet.
Example request:
diff --git a/doc/install/docker.md b/doc/install/docker.md
index e9cc8098f0b..d387a4d0abb 100644
--- a/doc/install/docker.md
+++ b/doc/install/docker.md
@@ -55,6 +55,12 @@ For macOS users, use the user's `$HOME/gitlab` directory:
export GITLAB_HOME=$HOME/gitlab
```
+The `GITLAB_HOME` environment variable should be appended to your shell's profile so it is
+applied on all future terminal sessions:
+
+- Bash: `~/.bash_profile`
+- ZSH: `~/.zshrc`
+
The GitLab container uses host mounted volumes to store persistent data:
| Local location | Container location | Usage |
@@ -511,6 +517,12 @@ To upgrade GitLab that was [installed using Docker Engine](#install-gitlab-using
sudo docker pull gitlab/gitlab-ee:latest
```
+1. Ensure that the `GITLAB_HOME` environment variable is [defined](#set-up-the-volumes-location):
+
+ ```shell
+ echo $GITLAB_HOME
+ ```
+
1. Create the container once again with the
[previously specified](#install-gitlab-using-docker-engine) options:
diff --git a/doc/raketasks/restore_gitlab.md b/doc/raketasks/restore_gitlab.md
index 2f38cbe2545..c0e62187e9b 100644
--- a/doc/raketasks/restore_gitlab.md
+++ b/doc/raketasks/restore_gitlab.md
@@ -66,6 +66,9 @@ restoring the new data, which causes an error.
Read more about [configuring NFS mounts](../administration/nfs.md)
+Restoring a backup from an instance using local storage restores to local storage even if the target instance uses object storage.
+Migrations to object storage must be done before or after restoration.
+
## Restore for Omnibus GitLab installations
This procedure assumes that:
diff --git a/doc/update/removals.md b/doc/update/removals.md
index 64bbaef0f9e..5e5203c634c 100644
--- a/doc/update/removals.md
+++ b/doc/update/removals.md
@@ -136,6 +136,40 @@ In GitLab 13.9, we updated the Omnibus GitLab package and GitLab Helm chart 4.9
GitLab 16.0, we have removed support for Redis 5. If you are using your own Redis 5.0 instance, you must upgrade it to Redis 6.0 or later before upgrading to GitLab 16.0
or later.
+### Remove legacy configuration fields in GitLab Runner Helm Chart
+
+In GitLab 13.6 and later, users can [specify any runner configuration in the GitLab Runner Helm chart](https://docs.gitlab.com/runner/install/kubernetes.html). When this features was released, we deprecated the fields in the GitLab Helm Chart configuration specific to the runner. As of v1.0 of the GitLab Runner Helm chart (GitLab 16.0), the following fields have been removed and are no longer supported:
+
+- `image`
+- `rbac.resources`
+- `rbac.verbs`
+- `runners.image`
+- `runners.imagePullSecrets`
+- `runners.imagePullPolicy`
+- `runners.requestConcurrency`
+- `runners.privileged`
+- `runners.namespace`
+- `runners.pollTimeout`
+- `runners.outputLimit`
+- `runners.cache.cacheType`
+- `runners.cache.cachePath`
+- `runners.cache.cacheShared`
+- `runners.cache.s3ServerAddress`
+- `runners.cache.s3BucketLocation`
+- `runners.cache.s3CacheInsecure`
+- `runners.cache.gcsBucketName`
+- `runners.builds`
+- `runners.services`
+- `runners.helpers`
+- `runners.pod_security_context`
+- `runners.serviceAccountName`
+- `runners.cloneUrl`
+- `runners.nodeSelector`
+- `runners.nodeTolerations`
+- `runners.podLabels`
+- `runners.podAnnotations`
+- `runners.env`
+
### Remove the deprecated `environment_tier` parameter from the DORA API
WARNING:
@@ -162,6 +196,10 @@ Review the details carefully before upgrading.
From GitLab 15.9, all Release links are external. The `external` field in the Releases and Release link APIs was deprecated in 15.9, and removed in GitLab 16.0.
+### Stop publishing GitLab Runner images based on Windows Server 2004 and 20H2
+
+As of GitLab 16.0, GitLab Runner images based on Windows Server 2004 and 20H2 will not be provided as these operating systems are end-of-life.
+
### Use of `id` field in vulnerabilityFindingDismiss mutation
WARNING:
diff --git a/doc/user/analytics/value_streams_dashboard.md b/doc/user/analytics/value_streams_dashboard.md
index bd9f14f8c64..9e4b828f4c2 100644
--- a/doc/user/analytics/value_streams_dashboard.md
+++ b/doc/user/analytics/value_streams_dashboard.md
@@ -88,5 +88,5 @@ For example, the parameter `query=gitlab-org/gitlab-foss,gitlab-org/gitlab,gitla
| Cycle time | Median time from the earliest commit of a linked issue's merge request to when that issue is closed. | [VSA overview](https://gitlab.com/groups/gitlab-org/-/analytics/value_stream_analytics) | [View the lead time and cycle time for issues](../group/value_stream_analytics/index.md#key-metrics) |
| New issues | Number of new issues created. | [Issue Analytics](https://gitlab.com/groups/gitlab-org/-/issues_analytics) | Issue analytics [for projects](issue_analytics.md) and [for groups](../../user/group/issues_analytics/index.md) |
| Number of deploys | Total number of deploys to production. | [Merge Request Analytics](https://gitlab.com/gitlab-org/gitlab/-/analytics/merge_request_analytics) | [Merge request analytics](merge_request_analytics.md) |
-| Critical vulnerabilities | Total critical vulnerabilities in project or group | [Vulnerability report](https://gitlab.com/gitlab-org/gitlab/-/security/vulnerability_report) | [Vulnerability report](../application_security/vulnerability_report/index.md) |
-| High vulnerabilities | Total high vulnerabilities in project or group | [Vulnerability report](https://gitlab.com/gitlab-org/gitlab/-/security/vulnerability_report) | [Vulnerability report](../application_security/vulnerability_report/index.md) |
+| Critical vulnerabilities over time | Critical vulnerabilities over time in project or group | [Vulnerability report](https://gitlab.com/gitlab-org/gitlab/-/security/vulnerability_report) | [Vulnerability report](../application_security/vulnerability_report/index.md) |
+| High vulnerabilities over time | High vulnerabilities over time in project or group | [Vulnerability report](https://gitlab.com/gitlab-org/gitlab/-/security/vulnerability_report) | [Vulnerability report](../application_security/vulnerability_report/index.md) |
diff --git a/doc/user/project/remote_development/index.md b/doc/user/project/remote_development/index.md
index 66fde8b7b0e..d4156de2ebe 100644
--- a/doc/user/project/remote_development/index.md
+++ b/doc/user/project/remote_development/index.md
@@ -32,12 +32,11 @@ With remote development, you can use:
- The Web IDE as a frontend
- A separate machine as a backend runtime environment
-For a complete IDE experience, connect the Web IDE to a [development environment](#workspace) that's configured to run as a remote host.
-For more information, see [connect a remote machine to the Web IDE](connect_machine.md).
+For a complete IDE experience, connect the Web IDE to a development environment configured to run as a remote host. You can create this environment [inside](../../workspace/index.md) or [outside](connect_machine.md) of GitLab.
## Workspace
-A workspace is a virtual sandbox environment for your code that includes:
+A [workspace](../../workspace/index.md) is a virtual sandbox environment for your code in GitLab that includes:
- A runtime environment
- Dependencies
diff --git a/doc/user/workspace/index.md b/doc/user/workspace/index.md
index 39b0b9849d7..0ec351edfff 100644
--- a/doc/user/workspace/index.md
+++ b/doc/user/workspace/index.md
@@ -14,9 +14,9 @@ On self-managed GitLab, by default this feature is not available. To make it ava
WARNING:
This feature is in [Beta](../../policy/alpha-beta-support.md#beta) and subject to change without notice. To leave your feedback, see the [feedback issue](https://gitlab.com/gitlab-org/gitlab/-/issues/410031).
-You can use workspaces to create and manage isolated development environments for your projects. These environments ensure that different projects don't interfere with each other. Each workspace includes its own set of dependencies, libraries, and tools, which you can customize to meet the specific needs of each project.
+A workspace is a virtual sandbox environment for your code in GitLab. You can use workspaces to create and manage isolated development environments for your GitLab projects. These environments ensure that different projects don't interfere with each other.
-With workspaces, you can switch between different development environments and manage your code more effectively.
+You can create a workspace on its own or as part of a project. Each workspace includes its own set of dependencies, libraries, and tools, which you can customize to meet the specific needs of each project.
## Run a workspace
@@ -112,7 +112,7 @@ To create a workspace in GitLab:
1. From the **Select project** dropdown list, select a project with a `.devfile.yaml` file. You can only create workspaces for public projects.
1. From the **Select cluster agent** dropdown list, select a cluster agent owned by the group the project belongs to.
1. In **Time before automatic termination**, enter the number of hours until the workspace automatically terminates. This timeout is a safety measure to prevent a workspace from consuming excessive resources or running indefinitely.
-1. Select **Create Workspace**.
+1. Select **Create workspace**.
The workspace might take a few minutes to start. When the workspace is ready, use the [Web IDE](../project/web_ide/index.md) to access your development environment.
You also have access to the terminal and can install any necessary dependencies.
@@ -121,7 +121,7 @@ You also have access to the terminal and can install any necessary dependencies.
Workspaces are bundled with the Web IDE by default. The Web IDE is the only code editor available for workspaces.
-The Web IDE is powered by the [GitLab VS Code fork](https://gitlab.com/gitlab-org/gitlab-web-ide-vscode-fork). For more information, see the [Web IDE](../project/web_ide/index.md).
+The Web IDE is powered by the [GitLab VS Code fork](https://gitlab.com/gitlab-org/gitlab-web-ide-vscode-fork). For more information, see [Web IDE](../project/web_ide/index.md).
## Private repositories