diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-06-14 18:09:43 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-06-14 18:09:43 +0300 |
commit | 7a33080fff9a735cbe77968d67b13ffa92c0ffae (patch) | |
tree | 71a880649c8d3e551ec6bd94e93d08a9a9b5bde7 /doc | |
parent | 9223573b85bcfdd21953f52e0d2c5cb587e366a1 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'doc')
-rw-r--r-- | doc/administration/audit_event_streaming.md | 36 | ||||
-rw-r--r-- | doc/administration/instance_limits.md | 2 | ||||
-rw-r--r-- | doc/api/graphql/reference/index.md | 62 | ||||
-rw-r--r-- | doc/api/packages.md | 68 | ||||
-rw-r--r-- | doc/api/rest/index.md | 1 | ||||
-rw-r--r-- | doc/ci/introduction/index.md | 3 | ||||
-rw-r--r-- | doc/user/infrastructure/clusters/connect/index.md | 11 | ||||
-rw-r--r-- | doc/user/infrastructure/clusters/connect/new_civo_cluster.md | 3 | ||||
-rw-r--r-- | doc/user/infrastructure/clusters/connect/new_eks_cluster.md | 3 | ||||
-rw-r--r-- | doc/user/infrastructure/clusters/connect/new_gke_cluster.md | 3 | ||||
-rw-r--r-- | doc/user/infrastructure/iac/index.md | 6 | ||||
-rw-r--r-- | doc/user/infrastructure/iac/terraform_state.md | 8 |
12 files changed, 172 insertions, 34 deletions
diff --git a/doc/administration/audit_event_streaming.md b/doc/administration/audit_event_streaming.md index 351febad33c..f4d0d7d780f 100644 --- a/doc/administration/audit_event_streaming.md +++ b/doc/administration/audit_event_streaming.md @@ -44,8 +44,8 @@ Streaming destinations receive **all** audit event data, which could include sen Users with the Owner role for a group can add streaming destinations for it: -1. On the top bar, select **Main menu > Groups** and find your group. -1. On the left sidebar, select **Security and Compliance > Audit events**. +1. On the left sidebar, at the top, select **Search GitLab** (**{search}**) to find your group. +1. Select **Secure > Audit events**. 1. On the main area, select **Streams** tab. 1. Select **Add streaming destination** to show the section for adding destinations. 1. Enter the destination URL to add. @@ -70,7 +70,8 @@ Prerequisites: To add a streaming destination for an instance: -1. On the top bar, select **Main menu > Admin**. +1. On the left sidebar, expand the top-most chevron (**{chevron-down}**). +1. Select **Admin Area**. 1. On the left sidebar, select **Monitoring > Audit events**. 1. On the main area, select **Streams** tab. 1. Select **Add streaming destination** to show the section for adding destinations. @@ -180,8 +181,8 @@ Users with the Owner role for a group can list streaming destinations. To list the streaming destinations for a top-level group: -1. On the top bar, select **Main menu > Groups** and find your group. -1. On the left sidebar, select **Security and Compliance > Audit events**. +1. On the left sidebar, at the top, select **Search GitLab** (**{search}**) to find your group. +1. Select **Secure > Audit events**. 1. On the main area, select **Streams** tab. 1. To the right of the item, select **Edit** (**{pencil}**) to see all the custom HTTP headers. @@ -199,7 +200,8 @@ Prerequisites: To list the streaming destinations for an instance: -1. On the top bar, select **Main menu > Admin**. +1. On the left sidebar, expand the top-most chevron (**{chevron-down}**). +1. Select **Admin Area**. 1. On the left sidebar, select **Monitoring > Audit events**. 1. On the main area, select **Streams** tab. @@ -276,8 +278,8 @@ Users with the Owner role for a group and instance administrators can update str To update a streaming destinations custom HTTP headers: -1. On the top bar, select **Main menu > Groups** and find your group. -1. On the left sidebar, select **Security and Compliance > Audit events**. +1. On the left sidebar, at the top, select **Search GitLab** (**{search}**) to find your group. +1. Select **Secure > Audit events**. 1. On the main area, select **Streams** tab. 1. To the right of the item, select **Edit** (**{pencil}**). 1. Locate the **Custom HTTP headers** table. @@ -368,15 +370,15 @@ When the last destination is successfully deleted, streaming is disabled for the To delete a streaming destination: -1. On the top bar, select **Main menu > Groups** and find your group. -1. On the left sidebar, select **Security and Compliance > Audit events**. +1. On the left sidebar, at the top, select **Search GitLab** (**{search}**) to find your group. +1. Select **Secure > Audit events**. 1. On the main area, select the **Streams** tab. 1. To the right of the item, select **Delete** (**{remove}**). To delete only the custom HTTP headers for a streaming destination: -1. On the top bar, select **Main menu > Groups** and find your group. -1. On the left sidebar, select **Security and Compliance > Audit events**. +1. On the left sidebar, at the top, select **Search GitLab** (**{search}**) to find your group. +1. Select **Secure > Audit events**. 1. On the main area, select the **Streams** tab. 1. To the right of the item, **Edit** (**{pencil}**). 1. Locate the **Custom HTTP headers** table. @@ -398,7 +400,8 @@ Prerequisites: To delete the streaming destinations for an instance: -1. On the top bar, select **Main menu > Admin**. +1. On the left sidebar, expand the top-most chevron (**{chevron-down}**). +1. Select **Admin Area**. 1. On the left sidebar, select **Monitoring > Audit events**. 1. On the main area, select the **Streams** tab. 1. To the right of the item, select **Delete** (**{remove}**). @@ -484,8 +487,8 @@ the destination's value when [listing streaming destinations](#list-streaming-de Users with the Owner role for a group can list streaming destinations and see the verification tokens: -1. On the top bar, select **Main menu > Groups** and find your group. -1. On the left sidebar, select **Security and Compliance > Audit events**. +1. On the left sidebar, at the top, select **Search GitLab** (**{search}**) to find your group. +1. Select **Secure > Audit events**. 1. On the main area, select the **Streams**. 1. View the verification token on the right side of each item. @@ -503,7 +506,8 @@ Prerequisites: To list streaming destinations for an instance and see the verification tokens: -1. On the top bar, select **Main menu > Admin**. +1. On the left sidebar, expand the top-most chevron (**{chevron-down}**). +1. Select **Admin Area**. 1. On the left sidebar, select **Monitoring > Audit events**. 1. On the main area, select the **Streams**. 1. View the verification token on the right side of each item. diff --git a/doc/administration/instance_limits.md b/doc/administration/instance_limits.md index 03c7c51251b..df364a3f737 100644 --- a/doc/administration/instance_limits.md +++ b/doc/administration/instance_limits.md @@ -781,7 +781,7 @@ Plan.default.actual_limits.update!(dast_profile_schedules: 50) ### Maximum size and depth of CI/CD configuration YAML files -The default maximum size of a CI/CD configuration YAML file is 1 megabyte and the +The default maximum size of a single CI/CD configuration YAML file is 1 megabyte and the default depth is 100. You can change these limits in the [GitLab Rails console](operations/rails_console.md#starting-a-rails-console-session): diff --git a/doc/api/graphql/reference/index.md b/doc/api/graphql/reference/index.md index cb451eaab82..f15247d986f 100644 --- a/doc/api/graphql/reference/index.md +++ b/doc/api/graphql/reference/index.md @@ -6817,6 +6817,26 @@ Input type: `UserPreferencesUpdateInput` | <a id="mutationuserpreferencesupdateerrors"></a>`errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | | <a id="mutationuserpreferencesupdateuserpreferences"></a>`userPreferences` | [`UserPreferences`](#userpreferences) | User preferences after mutation. | +### `Mutation.userSetNamespaceCommitEmail` + +Input type: `UserSetNamespaceCommitEmailInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| <a id="mutationusersetnamespacecommitemailclientmutationid"></a>`clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| <a id="mutationusersetnamespacecommitemailemailid"></a>`emailId` | [`EmailID`](#emailid) | ID of the email to set. | +| <a id="mutationusersetnamespacecommitemailnamespaceid"></a>`namespaceId` | [`NamespaceID!`](#namespaceid) | ID of the namespace to set the namespace commit email for. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| <a id="mutationusersetnamespacecommitemailclientmutationid"></a>`clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| <a id="mutationusersetnamespacecommitemailerrors"></a>`errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| <a id="mutationusersetnamespacecommitemailnamespacecommitemail"></a>`namespaceCommitEmail` | [`NamespaceCommitEmail`](#namespacecommitemail) | User namespace commit email after mutation. | + ### `Mutation.vulnerabilityConfirm` Input type: `VulnerabilityConfirmInput` @@ -7548,6 +7568,29 @@ The edge type for [`AuditEventStreamingHeader`](#auditeventstreamingheader). | <a id="auditeventstreamingheaderedgecursor"></a>`cursor` | [`String!`](#string) | A cursor for use in pagination. | | <a id="auditeventstreamingheaderedgenode"></a>`node` | [`AuditEventStreamingHeader`](#auditeventstreamingheader) | The item at the end of the edge. | +#### `AuditEventsStreamingInstanceHeaderConnection` + +The connection type for [`AuditEventsStreamingInstanceHeader`](#auditeventsstreaminginstanceheader). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| <a id="auditeventsstreaminginstanceheaderconnectionedges"></a>`edges` | [`[AuditEventsStreamingInstanceHeaderEdge]`](#auditeventsstreaminginstanceheaderedge) | A list of edges. | +| <a id="auditeventsstreaminginstanceheaderconnectionnodes"></a>`nodes` | [`[AuditEventsStreamingInstanceHeader]`](#auditeventsstreaminginstanceheader) | A list of nodes. | +| <a id="auditeventsstreaminginstanceheaderconnectionpageinfo"></a>`pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `AuditEventsStreamingInstanceHeaderEdge` + +The edge type for [`AuditEventsStreamingInstanceHeader`](#auditeventsstreaminginstanceheader). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| <a id="auditeventsstreaminginstanceheaderedgecursor"></a>`cursor` | [`String!`](#string) | A cursor for use in pagination. | +| <a id="auditeventsstreaminginstanceheaderedgenode"></a>`node` | [`AuditEventsStreamingInstanceHeader`](#auditeventsstreaminginstanceheader) | The item at the end of the edge. | + #### `AwardEmojiConnection` The connection type for [`AwardEmoji`](#awardemoji). @@ -16838,6 +16881,7 @@ Represents an external resource to send instance audit events to. | Name | Type | Description | | ---- | ---- | ----------- | | <a id="instanceexternalauditeventdestinationdestinationurl"></a>`destinationUrl` | [`String!`](#string) | External destination to send audit events to. | +| <a id="instanceexternalauditeventdestinationheaders"></a>`headers` | [`AuditEventsStreamingInstanceHeaderConnection!`](#auditeventsstreaminginstanceheaderconnection) | List of additional HTTP headers sent with each event. (see [Connections](#connections)) | | <a id="instanceexternalauditeventdestinationid"></a>`id` | [`ID!`](#id) | ID of the destination. | | <a id="instanceexternalauditeventdestinationverificationtoken"></a>`verificationToken` | [`String!`](#string) | Verification token to validate source of event. | @@ -21712,6 +21756,7 @@ four standard [pagination arguments](#connection-pagination-arguments): | ---- | ---- | ----------- | | <a id="repositoryblobspaths"></a>`paths` | [`[String!]!`](#string) | Array of desired blob paths. | | <a id="repositoryblobsref"></a>`ref` | [`String`](#string) | Commit ref to get the blobs from. Default value is HEAD. | +| <a id="repositoryblobsreftype"></a>`refType` | [`RefType`](#reftype) | Type of ref. | ##### `Repository.branchNames` @@ -21756,6 +21801,7 @@ four standard [pagination arguments](#connection-pagination-arguments): | <a id="repositorypaginatedtreepath"></a>`path` | [`String`](#string) | Path to get the tree for. Default value is the root of the repository. | | <a id="repositorypaginatedtreerecursive"></a>`recursive` | [`Boolean`](#boolean) | Used to get a recursive tree. Default is false. | | <a id="repositorypaginatedtreeref"></a>`ref` | [`String`](#string) | Commit ref to get the tree for. Default value is HEAD. | +| <a id="repositorypaginatedtreereftype"></a>`refType` | [`RefType`](#reftype) | Type of ref. | ##### `Repository.tree` @@ -21770,6 +21816,7 @@ Returns [`Tree`](#tree). | <a id="repositorytreepath"></a>`path` | [`String`](#string) | Path to get the tree for. Default value is the root of the repository. | | <a id="repositorytreerecursive"></a>`recursive` | [`Boolean`](#boolean) | Used to get a recursive tree. Default is false. | | <a id="repositorytreeref"></a>`ref` | [`String`](#string) | Commit ref to get the tree for. Default value is HEAD. | +| <a id="repositorytreereftype"></a>`refType` | [`RefType`](#reftype) | Type of ref. | ### `RepositoryBlob` @@ -26023,6 +26070,15 @@ Project member relation. | <a id="projectmemberrelationinvited_groups"></a>`INVITED_GROUPS` | Invited Groups members. | | <a id="projectmemberrelationshared_into_ancestors"></a>`SHARED_INTO_ANCESTORS` | Shared Into Ancestors members. | +### `RefType` + +Type of ref. + +| Value | Description | +| ----- | ----------- | +| <a id="reftypeheads"></a>`HEADS` | Ref type for branches. | +| <a id="reftypetags"></a>`TAGS` | Ref type for tags. | + ### `RegistryState` State of a Geo registry. @@ -27026,6 +27082,12 @@ Duration between two instants, represented as a fractional number of seconds. For example: 12.3334. +### `EmailID` + +A `EmailID` is a global ID. It is encoded as a string. + +An example `EmailID` is: `"gid://gitlab/Email/1"`. + ### `EnvironmentID` A `EnvironmentID` is a global ID. It is encoded as a string. diff --git a/doc/api/packages.md b/doc/api/packages.md index 86eaf3028cf..efb27a29e0f 100644 --- a/doc/api/packages.md +++ b/doc/api/packages.md @@ -330,6 +330,74 @@ Example response: By default, the `GET` request returns 20 results, because the API is [paginated](rest/index.md#pagination). +## List package pipelines + +> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/341950) in GitLab 16.1. + +Get a list of pipelines for a single package. The results are sorted by `id` in descending order. + +The results are [paginated](rest/index.md#keyset-based-pagination) and return up to 20 records per page. + +```plaintext +GET /projects/:id/packages/:package_id/pipelines +``` + +| Attribute | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `id` | integer/string | yes | ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding) | +| `package_id` | integer | yes | ID of a package. | + +```shell +curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/:id/packages/:package_id/pipelines" +``` + +Example response: + +```json +[ + { + "id": 1, + "iid": 1, + "project_id": 9, + "sha": "2b6127f6bb6f475c4e81afcc2251e3f941e554f9", + "ref": "mytag", + "status": "failed", + "source": "push", + "created_at": "2023-02-01T12:19:21.895Z", + "updated_at": "2023-02-01T14:00:05.922Z", + "web_url": "http://gdk.test:3001/feature-testing/composer-repository/-/pipelines/1", + "user": { + "id": 1, + "username": "root", + "name": "Administrator", + "state": "active", + "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80\u0026d=identicon", + "web_url": "http://gdk.test:3001/root" + } + }, + { + "id": 2, + "iid": 2, + "project_id": 9, + "sha": "e564015ac6cb3d8617647802c875b27d392f72a6", + "ref": "master", + "status": "canceled", + "source": "push", + "created_at": "2023-02-01T12:23:23.694Z", + "updated_at": "2023-02-01T12:26:28.635Z", + "web_url": "http://gdk.test:3001/feature-testing/composer-repository/-/pipelines/2", + "user": { + "id": 1, + "username": "root", + "name": "Administrator", + "state": "active", + "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80\u0026d=identicon", + "web_url": "http://gdk.test:3001/root" + } + } +] +``` + ## Delete a project package Deletes a project package. diff --git a/doc/api/rest/index.md b/doc/api/rest/index.md index 3a2e49cdcf9..947142e3a50 100644 --- a/doc/api/rest/index.md +++ b/doc/api/rest/index.md @@ -491,6 +491,7 @@ options: | [Group audit events](../audit_events.md#retrieve-all-group-audit-events) | `order_by=id`, `sort=desc` only | Authenticated users only. | | [Groups](../groups.md#list-groups) | `order_by=name`, `sort=asc` only | Unauthenticated users only. | | [Instance audit events](../audit_events.md#retrieve-all-instance-audit-events) | `order_by=id`, `sort=desc` only | Authenticated users only. | +| [Package pipelines](../packages.md#list-package-pipelines) | `order_by=id`, `sort=desc` only | Authenticated users only. | | [Project jobs](../jobs.md#list-project-jobs) | `order_by=id`, `sort=desc` only | Authenticated users only. | | [Project audit events](../audit_events.md#retrieve-all-project-audit-events) | `order_by=id`, `sort=desc` only | Authenticated users only. | | [Projects](../projects.md) | `order_by=id` only | Authenticated and unauthenticated users. | diff --git a/doc/ci/introduction/index.md b/doc/ci/introduction/index.md index bf07af5e761..895aa8551d7 100644 --- a/doc/ci/introduction/index.md +++ b/doc/ci/introduction/index.md @@ -61,8 +61,7 @@ of the changes. ## Continuous Deployment -[Continuous Deployment](https://www.airpair.com/continuous-deployment/posts/continuous-deployment-for-practical-people) -is another step beyond Continuous Integration, similar to +Continuous Deployment is another step beyond Continuous Integration, similar to Continuous Delivery. The difference is that instead of deploying your application manually, you set it to be deployed automatically. Human intervention is not required. diff --git a/doc/user/infrastructure/clusters/connect/index.md b/doc/user/infrastructure/clusters/connect/index.md index b571a65b50a..01911f2b889 100644 --- a/doc/user/infrastructure/clusters/connect/index.md +++ b/doc/user/infrastructure/clusters/connect/index.md @@ -34,17 +34,18 @@ your cluster's level. **Project-level clusters:** -1. On the top bar, select **Main menu > Projects** and find your project. -1. On the left sidebar, select **Infrastructure > Kubernetes clusters**. +1. On the left sidebar, at the top, select **Search GitLab** (**{search}**) to find your project. +1. Select **Operate > Kubernetes clusters**. **Group-level clusters:** -1. On the top bar, select **Main menu > Groups** and find your group. -1. On the left sidebar, select **Kubernetes**. +1. On the left sidebar, at the top, select **Search GitLab** (**{search}**) to find your group. +1. Select **Operate > Kubernetes clusters**. **Instance-level clusters:** -1. On the top bar, select **Main menu > Admin**. +1. On the left sidebar, expand the top-most chevron (**{chevron-down}**). +1. Select **Admin Area**. 1. On the left sidebar, select **Kubernetes**. ## Security implications for clusters connected with certificates diff --git a/doc/user/infrastructure/clusters/connect/new_civo_cluster.md b/doc/user/infrastructure/clusters/connect/new_civo_cluster.md index 45445c0a0f5..7c8065b6143 100644 --- a/doc/user/infrastructure/clusters/connect/new_civo_cluster.md +++ b/doc/user/infrastructure/clusters/connect/new_civo_cluster.md @@ -35,7 +35,8 @@ Start by [importing the example project by URL](../../../project/import/repo_by_ To import the project: -1. In GitLab, on the top bar, select **Main menu > Projects > View all projects**. +1. In GitLab, on the left sidebar, expand the top-most chevron (**{chevron-down}**). +1. Select **View all your projects**.. 1. On the right of the page, select **New project**. 1. Select **Import project**. 1. Select **Repository by URL**. diff --git a/doc/user/infrastructure/clusters/connect/new_eks_cluster.md b/doc/user/infrastructure/clusters/connect/new_eks_cluster.md index 4516ea538a9..19bcce581e9 100644 --- a/doc/user/infrastructure/clusters/connect/new_eks_cluster.md +++ b/doc/user/infrastructure/clusters/connect/new_eks_cluster.md @@ -34,7 +34,8 @@ Start by [importing the example project by URL](../../../project/import/repo_by_ To import the project: -1. In GitLab, on the top bar, select **Main menu > Projects > View all projects**. +1. In GitLab, on the left sidebar, expand the top-most chevron (**{chevron-down}**). +1. Select **View all your projects**. 1. On the right of the page, select **New project**. 1. Select **Import project**. 1. Select **Repository by URL**. diff --git a/doc/user/infrastructure/clusters/connect/new_gke_cluster.md b/doc/user/infrastructure/clusters/connect/new_gke_cluster.md index c8d2fb674b2..25a0a7149e0 100644 --- a/doc/user/infrastructure/clusters/connect/new_gke_cluster.md +++ b/doc/user/infrastructure/clusters/connect/new_gke_cluster.md @@ -41,7 +41,8 @@ Start by [importing the example project by URL](../../../project/import/repo_by_ To import the project: -1. In GitLab, on the top bar, select **Main menu > Projects > View all projects**. +1. In GitLab, on the left sidebar, expand the top-most chevron (**{chevron-down}**). +1. Select **View all your projects**. 1. On the right of the page, select **New project**. 1. Select **Import project**. 1. Select **Repository by URL**. diff --git a/doc/user/infrastructure/iac/index.md b/doc/user/infrastructure/iac/index.md index d4fc345f494..12ad207e4f8 100644 --- a/doc/user/infrastructure/iac/index.md +++ b/doc/user/infrastructure/iac/index.md @@ -64,8 +64,8 @@ In each GitLab major release (for example, 15.0), the latest templates replace t To use a Terraform template: -1. On the top bar, select **Main menu > Projects** and find the project you want to integrate with Terraform. -1. On the left sidebar, select **Repository > Files**. +1. On the left sidebar, at the top, select **Search GitLab** (**{search}**) to find your project you want to integrate with Terraform. +1. Select **Code > Repository**. 1. Edit your `.gitlab-ci.yml` file, use the `include` attribute to fetch the Terraform template: ```yaml @@ -73,7 +73,7 @@ To use a Terraform template: # To fetch the latest template, use: - template: Terraform.latest.gitlab-ci.yml # To fetch the advanced latest template, use: - - template: Terraform/Base.latest.gitlab-ci.yml + - template: Terraform/Base.latest.gitlab-ci.yml # To fetch the stable template, use: - template: Terraform.gitlab-ci.yml # To fetch the advanced stable template, use: diff --git a/doc/user/infrastructure/iac/terraform_state.md b/doc/user/infrastructure/iac/terraform_state.md index 1b0065fd165..455f2ce19e8 100644 --- a/doc/user/infrastructure/iac/terraform_state.md +++ b/doc/user/infrastructure/iac/terraform_state.md @@ -116,8 +116,8 @@ inconsistent. Instead, use a remote storage resource. [initialized for CI/CD](#initialize-a-terraform-state-as-a-backend-by-using-gitlab-cicd). 1. Copy a pre-populated Terraform `init` command: - 1. On the top bar, select **Main menu > Projects** and find your project. - 1. On the left sidebar, select **Infrastructure > Terraform states**. + 1. On the left sidebar, at the top, select **Search GitLab** (**{search}**) to find your project. + 1. Select **Operate > Terraform states**. 1. Next to the environment you want to use, select **Actions** (**{ellipsis_v}**) and select **Copy Terraform init command**. @@ -294,8 +294,8 @@ To read the Terraform state in the target project, you need at least the Develop To view Terraform state files: -1. On the top bar, select **Main menu > Projects** and find your project. -1. On the left sidebar, select **Infrastructure > Terraform states**. +1. On the left sidebar, at the top, select **Search GitLab** (**{search}**) to find your project. +1. Select **Operate > Terraform states**. [An epic exists](https://gitlab.com/groups/gitlab-org/-/epics/4563) to track improvements to this UI. |