Add latest changes from gitlab-org/gitlab@master

This commit is contained in:
GitLab Bot 2024-06-21 18:17:59 +00:00
parent 8bcdc9b991
commit 9a5556277a
21 changed files with 214 additions and 173 deletions

View File

@ -257,7 +257,7 @@ export default {
no-caret
icon="ellipsis_v"
category="secondary"
placement="right"
placement="bottom-end"
:toggle-text="__('More actions')"
>
<rollback
@ -320,9 +320,8 @@ export default {
>
<template #approval>
<environment-approval
:deployment-iid="upcomingDeploymentIid"
:environment="environment"
@change="$emit('change')"
:required-approval-count="environment.requiredApprovalCount"
:deployment-web-path="upcomingDeployment.webPath"
/>
</template>
</deployment>

View File

@ -65,6 +65,10 @@ export default {
isApprovalActionAvailable: false,
}),
},
deploymentWebPath: {
type: String,
required: true,
},
},
computed: {
isRollbackAvailable() {
@ -114,8 +118,8 @@ export default {
/>
<environment-approval
v-if="approvalEnvironment.isApprovalActionAvailable"
:environment="environment"
:deployment-iid="deploymentIid"
:required-approval-count="environment.requiredApprovalCount"
:deployment-web-path="deploymentWebPath"
:show-text="false"
/>
</div>

View File

@ -67,6 +67,7 @@ export default {
:actions="item.actions"
:rollback="item.rollback"
:approval-environment="item.deploymentApproval"
:deployment-web-path="item.webPath"
/>
</template>
</gl-table-lite>

View File

@ -115,12 +115,17 @@ export default {
addBlob() {
const blob = createBlob();
this.$set(this.blobs, blob.id, blob);
this.blobs = {
...this.blobs,
[blob.id]: blob,
};
this.blobIds.push(blob.id);
},
deleteBlob(id) {
this.blobIds = this.blobIds.filter((x) => x !== id);
this.$delete(this.blobs, id);
const copy = { ...this.blobs };
delete copy[id];
this.blobs = copy;
},
updateBlob(id, args) {
if ('content' in args) {

View File

@ -161,6 +161,22 @@ To prepare the new server:
sudo scp /var/opt/gitlab/backups/your-backup.tar <your-linux-username>@new-server:/var/opt/gitlab/backups
```
### For instances with a large volume of Git and object data
If your GitLab instance has a large amount of data on local volumes, for example greater than 1 TB,
backups may take a long time. In that case, you may find it easier to transfer the data to the appropriate volumes on the new instance.
The main volumes that you might need to migrate manually are:
- The `/var/opt/gitlab/git-data` directory which contains all the Git data.
- The `/var/opt/gitlab/gitlab-rails/shared` directory which contains object data, like artifacts.
- If you are using the bundled PostgreSQL included with the Linux package,
you also need to migrate the [PostgreSQL data directory](https://docs.gitlab.com/omnibus/settings/database.html#store-postgresql-data-in-a-different-directory)
under `/var/opt/gitlab/postgresql/data`.
After all GitLab services have been stopped, you can use tools like `rsync` or mounting volume snapshots to move the data
to the new environment.
## Restore data on the new server
1. Restore appropriate file system permissions:

View File

@ -301,7 +301,10 @@ An invitation to use Switchboard is sent to the user.
#### Manage notification preferences
You can specify whether or not you want to receive email notifications from Switchboard.
You can specify whether you want to receive email notifications from Switchboard. You will only receive notifications after you:
- Receive an email invitation and first sign in to Switchboard.
- Set up a password and two-factor authentication (2FA) for your user account.
To manage your own email notification preferences:

View File

@ -447,6 +447,38 @@ For example, to create a component with `stage` configuration that can be define
stage: verify
```
#### Define job names with inputs
Similar to the values for the `stage` keyword, you should avoid hard-coding job names
in CI/CD components. When your component's users can customize job names, they can prevent conflicts
with the existing names in their pipelines. Users could also include a component
multiple times with different input options by using different names.
Use `inputs` to allow your component's users to define a specific job name, or a prefix for the
job name. For example:
```yaml
spec:
inputs:
job-prefix:
description: "Define a prefix for the job name"
job-name:
description: "Alternatively, define the job's name"
job-stage:
default: test
---
"$[[ inputs.job-prefix ]]-scan-website":
stage: $[[ inputs.job-stage ]]
script:
- scan-website-1
"$[[ inputs.job-name ]]":
stage: $[[ inputs.job-stage ]]
script:
- scan-website-2
```
### Replace custom CI/CD variables with inputs
When using CI/CD variables in a component, evaluate if the `inputs` keyword

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

View File

@ -20,7 +20,7 @@ Use the Dashboard for Kubernetes to understand the status of your clusters with
The dashboard works with every connected Kubernetes cluster, whether you deployed them
with CI/CD or GitOps.
![Kubernetes summary UI](img/kubernetes_summary_ui_v16_10.png)
![Kubernetes summary UI](img/kubernetes_summary_ui_v17_2.png)
## Configure a dashboard
@ -103,6 +103,27 @@ A dashboard displays one of the following status badges:
| **Unknown** | The sync status of the deployment couldn't be retrieved. |
| **Unavailable** | The `Kustomization` or `HelmRelease` resource couldn't be retrieved. |
## View pod logs
> - [Introduced](https://gitlab.com/groups/gitlab-org/-/epics/13793) in GitLab 17.2.
View pod logs when you want to quickly understand and troubleshoot issues across your environments from a configured dashboard. You can view logs for each container in a pod.
To view your pod logs:
::Tabs
:::TabTitle From the pods list
- Select **View logs**, then select the container you want to view logs for.
:::TabTitle From the pods details view
1. Select a pod from the pod list to view its details.
1. Select the container you want to view logs for, then select **View logs**.
::EndTabs
## Detailed dashboard
> - [Introduced](https://gitlab.com/groups/gitlab-org/-/epics/11351) in GitLab 16.4, [with a flag](../../administration/feature_flags.md) named `k8s_dashboard`. Disabled by default.

View File

@ -226,6 +226,10 @@ syntax for the OS running GitLab. If GitLab is running on Linux but using a Wind
runner for testing, the path separator for the trigger job is `/`. Other CI/CD
configuration for jobs that use the Windows runner, like scripts, use <code>&#92;</code>.
You cannot use CI/CD variables in an `include` section in a dynamic child pipeline's configuration.
[Issue 378717](https://gitlab.com/gitlab-org/gitlab/-/issues/378717) proposes fixing
this issue.
### Run child pipelines with merge request pipelines
Pipelines, including child pipelines, run as branch pipelines by default when not using

View File

@ -390,6 +390,10 @@ so these variables cannot be used with `include`.
For an example of how you can include predefined variables, and the variables' impact on CI/CD jobs,
see this [CI/CD variable demo](https://youtu.be/4XR8gw3Pkos).
You cannot use CI/CD variables in an `include` section in a dynamic child pipeline's configuration.
[Issue 378717](https://gitlab.com/gitlab-org/gitlab/-/issues/378717) proposes fixing
this issue.
## Use `rules` with `include`
> - Support for `needs` job dependency [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/345377) in GitLab 15.11.

View File

@ -1815,6 +1815,12 @@ while **click** is more specific to a mouse.
However, you can make an exception for **right-click** and **click-through demo**.
## self-hosted model
Use **self-hosted model** (lowercase) to refer to a language model that's hosted by a customer, rather than GitLab.
The language model might be an LLM (large language model), but it might not be.
## self-managed
Use **self-managed** to refer to a customer's installation of GitLab. Do not use **self-hosted**.

View File

@ -9,17 +9,75 @@ info: Any user with at least the Maintainer role can merge updates to this conte
NOTE:
To track user interactions in the browser, Do-Not-Track (“DNT”) needs to be disabled. DNT is disabled by default for most browsers.
Internal events are using a tool called Snowplow under the hood. To develop and test internal events, there are several tools to test frontend and backend events:
Internal events are using a tool called Snowplow under the hood. To develop and test internal events, there are several tools related to Snowplow to test frontend and backend events:
| Testing Tool | Frontend Tracking | Backend Tracking | Local Development Environment | Production Environment | Shows individual events |
| Testing Tool | Frontend Tracking | Backend Tracking | Local Development Environment | Production Environment | Production Environment |
|----------------------------------------------|--------------------|---------------------|-------------------------------|------------------------|------------------------|
| [Internal Events Monitor](#internal-events-monitor) | Yes | Yes | Yes | Yes | Yes, if running [Snowplow Micro](#snowplow-micro) |
| [Snowplow Micro](#snowplow-micro) | Yes | Yes | Yes | No | Yes |
| [Manual check in GDK](#manual-check-in-gdk) | Yes | Yes | Yes | Yes | No |
| [Snowplow Analytics Debugger Chrome Extension](#snowplow-analytics-debugger-chrome-extension) | Yes | No | Yes | Yes | Yes |
| [Remote event collector](#remote-event-collector) | Yes | No | Yes | No | Yes |
| Snowplow Analytics Debugger Chrome Extension | Yes | No | Yes | Yes | Yes |
| Snowplow Micro | Yes | Yes | Yes | No | No |
For local development we recommend using the [internal events monitor](#internal-events-monitor) when actively developing new events.
For local development you will have to either [setup a local event collector](#setup-local-event-collector) or [configure a remote event collector](#configure-a-remote-event-collector).
We recommend using the local setup together with the [internal events monitor](#internal-events-monitor) when actively developing new events.
## Setup local event collector
By default, self-managed instances do not collect event data via Snowplow. We can use [Snowplow Micro](https://docs.snowplow.io/docs/testing-debugging/snowplow-micro/what-is-micro/), a Docker based Snowplow collector, to test events locally:
1. Ensure [Docker is installed and working](https://www.docker.com/get-started/).
1. Enable Snowplow Micro:
```shell
gdk config set snowplow_micro.enabled true
```
1. Optional. Snowplow Micro runs on port `9091` by default, you can change to `9092` by running:
```shell
gdk config set snowplow_micro.port 9092
```
1. Regenerate your Procfile and YAML config by reconfiguring GDK:
```shell
gdk reconfigure
```
1. Restart the GDK:
```shell
gdk restart
```
1. You can now see all events being sent by your local instance in the [Snowplow Micro UI](http://localhost:9091/micro/ui) and can filter for specific events.
### Introduction to Snowplow Micro UI and API
<div class="video-fallback">
Watch the video about <a href="https://www.youtube.com/watch?v=netZ0TogNcA">Snowplow Micro</a>
</div>
<figure class="video-container">
<iframe src="https://www.youtube-nocookie.com/embed/netZ0TogNcA" frameborder="0" allowfullscreen> </iframe>
</figure>
## Configure a remote event collector
On GitLab.com events are sent to a collector configured by GitLab. By default, self-managed instances do not have a collector configured and do not collect data with Snowplow.
You can configure your self-managed GitLab instance to use a custom Snowplow collector.
1. On the left sidebar, at the bottom, select **Admin Area**.
1. Select **Settings > General**.
1. Expand **Snowplow**.
1. Select **Enable Snowplow tracking** and enter your Snowplow configuration information. For example:
| Name | Value |
|--------------------|-------------------------------|
| Collector hostname | `your-snowplow-collector.net` |
| App ID | `gitlab` |
| Cookie domain | `.your-gitlab-instance.com` |
1. Select **Save changes**.
## Internal Events Monitor
@ -30,7 +88,7 @@ For local development we recommend using the [internal events monitor](#internal
<iframe src="https://www.youtube-nocookie.com/embed/R7vT-VEzZOI" frameborder="0" allowfullscreen> </iframe>
</figure>
To understand how events are triggered and metrics are updated while you use the GitLab application locally or `rails console`,
To understand how events are triggered and metrics are updated while you use the Rails app locally or `rails console`,
you can use the monitor.
Start the monitor and list one or more events that you would like to monitor. In this example we would like to monitor `i_code_review_user_create_mr`.
@ -39,14 +97,11 @@ Start the monitor and list one or more events that you would like to monitor. In
rails runner scripts/internal_events/monitor.rb i_code_review_user_create_mr
```
The monitor can show two tables:
The monitor shows two tables. The top table lists all the metrics that are defined on the `i_code_review_user_create_mr` event.
The second right-most column shows the value of each metric when the monitor was started and the right most column shows the current value of each metric.
The bottom table has a list selected properties of all Snowplow events that matches the event name.
- The `RELEVANT METRICS` table lists all the metrics that are defined on the `i_code_review_user_create_mr` event.
The second right-most column shows the value of each metric when the monitor was started and the right most column shows the current value of each metric.
- The `SNOWPLOW EVENTS` table lists a selection of properties from all Snowplow events that match the event name. This table is only visible if you also set up [Snowplow Micro](#snowplow-micro).
If a new `i_code_review_user_create_mr` event is fired, the metrics values get updated and a new event appears in the `SNOWPLOW EVENTS` table.
If a new `i_code_review_user_create_mr` event is fired, the metrics values will get updated and a new event will appear in the `SNOWPLOW EVENTS` table.
The monitor looks like below.
@ -75,48 +130,7 @@ Monitored events: i_code_review_user_create_mr
+------------------------------+--------------------------+---------+--------------+------------+---------+
```
## Snowplow Micro
By default, self-managed instances do not collect event data through Snowplow. We can use [Snowplow Micro](https://docs.snowplow.io/docs/testing-debugging/snowplow-micro/what-is-micro/), a Docker based Snowplow collector, to test events locally:
1. Ensure [Docker is installed and working](https://www.docker.com/get-started/).
1. Enable Snowplow Micro:
```shell
gdk config set snowplow_micro.enabled true
```
1. Optional. Snowplow Micro runs on port `9091` by default, you can change to `9092` by running:
```shell
gdk config set snowplow_micro.port 9092
```
1. Regenerate your Procfile and YAML configuration by reconfiguring GDK:
```shell
gdk reconfigure
```
1. Restart the GDK:
```shell
gdk restart
```
1. You can now see all events being sent by your local instance in the [Snowplow Micro UI](http://localhost:9091/micro/ui) and can filter for specific events.
### Introduction to Snowplow Micro UI and API
<div class="video-fallback">
Watch the video about <a href="https://www.youtube.com/watch?v=netZ0TogNcA">Snowplow Micro</a>
</div>
<figure class="video-container">
<iframe src="https://www.youtube-nocookie.com/embed/netZ0TogNcA" frameborder="0" allowfullscreen> </iframe>
</figure>
## Manual check in GDK
## Manually check the relevant metric values in GDK
As a quick test of whether an event is getting triggered & metric is updated, you can check the latest values in the rails console.
Make sure to load the helpers below so that the most recent events & records are included in the output.
@ -143,22 +157,3 @@ It works in production, staging, and local development environments. It is espec
1. Install the [Snowplow Analytics Debugger](https://chromewebstore.google.com/detail/snowplow-analytics-debugg/jbnlcgeengmijcghameodeaenefieedm) Chrome browser extension.
1. Open Chrome DevTools to the Snowplow Debugger tab.
1. Any event triggered on a GitLab page should appear in the Snowplow Debugger tab.
## Remote event collector
On GitLab.com events are sent to a collector configured by GitLab. By default, self-managed instances do not have a collector configured and do not collect data with Snowplow.
You can configure your self-managed GitLab instance to use a custom Snowplow collector.
1. On the left sidebar, at the bottom, select **Admin Area**.
1. Select **Settings > General**.
1. Expand **Snowplow**.
1. Select **Enable Snowplow tracking** and enter your Snowplow configuration information. For example if your custom snowplow collector is available at `your-snowplow-collector.net`:
| Name | Value |
|--------------------|-------------------------------|
| Collector hostname | `your-snowplow-collector.net` |
| App ID | `gitlab` |
| Cookie domain | `.your-gitlab-instance.com` |
1. Select **Save changes**.

View File

@ -1538,6 +1538,8 @@ Feature tests live in `spec/features` folder. You should look for existing files
You can also prefix this command with `WEBDRIVER_HEADLESS=0` which will run the test by opening an actual browser on your computer that you can see, which is very useful for debugging.
To use Firefox, instead of Chrome, prefix the command with `WEBDRIVER=firefox`.
### How to write a test
#### Basic file structure

View File

@ -19,7 +19,7 @@ With GitLab Ultimate, SAST results are also processed so you can:
- Use them in approval workflows.
- Review them in the security dashboard.
For more details, see the [Summary of features per tier](#summary-of-features-per-tier).
For more information, see [Features](#features).
![SAST results shown in the MR widget](img/sast_results_in_mr_v14_0.png)
@ -28,24 +28,23 @@ for any reason, the security dashboard does not show SAST scanner output. For ex
job finishes but the DAST job fails, the security dashboard does not show SAST results. On failure,
the analyzer outputs an [exit code](../../../development/integrations/secure.md#exit-code).
## Summary of features per tier
## Features
Different features are available in different [GitLab tiers](https://about.gitlab.com/pricing/),
as shown in the following table:
The following table lists the GitLab tiers in which each feature is available.
| Capability | In Free & Premium | In Ultimate |
|:---------------------------------------------------------------- -|:--------------------|:-------------------|
| Automatically scan code with [appropriate analyzers](#supported-languages-and-frameworks) | **{check-circle}** | **{check-circle}** |
| [Configure SAST scanners](#configuration) | **{check-circle}** | **{check-circle}** |
| [Customize SAST settings](#available-cicd-variables) | **{check-circle}** | **{check-circle}** |
| Download [SAST output](#output) | **{check-circle}** | **{check-circle}** |
| See new findings in merge request widget | **{dotted-circle}** | **{check-circle}** |
| See new findings in merge request changes | **{dotted-circle}** | **{check-circle}** |
| [Manage vulnerabilities](../vulnerabilities/index.md) | **{dotted-circle}** | **{check-circle}** |
| [Access the Security Dashboard](../security_dashboard/index.md) | **{dotted-circle}** | **{check-circle}** |
| [Configure SAST by using the UI](#configure-sast-by-using-the-ui) | **{dotted-circle}** | **{check-circle}** |
| [Customize SAST rulesets](customize_rulesets.md) | **{dotted-circle}** | **{check-circle}** |
| [Track moved vulnerabilities](#advanced-vulnerability-tracking) | **{dotted-circle}** | **{check-circle}** |
| Feature | In Free & Premium | In Ultimate |
|:------------------------------------------------------------------------------------------|:-----------------------|:-----------------------|
| Automatically scan code with [appropriate analyzers](#supported-languages-and-frameworks) | **{check-circle}** Yes | **{check-circle}** Yes |
| [Configure SAST scanners](#configuration) | **{check-circle}** Yes | **{check-circle}** Yes |
| [Customize SAST settings](#available-cicd-variables) | **{check-circle}** Yes | **{check-circle}** Yes |
| Download [SAST output](#output) | **{check-circle}** Yes | **{check-circle}** Yes |
| See new findings in merge request widget | **{dotted-circle}** No | **{check-circle}** Yes |
| See new findings in merge request changes | **{dotted-circle}** No | **{check-circle}** Yes |
| [Manage vulnerabilities](../vulnerabilities/index.md) | **{dotted-circle}** No | **{check-circle}** Yes |
| [Access the Security Dashboard](../security_dashboard/index.md) | **{dotted-circle}** No | **{check-circle}** Yes |
| [Configure SAST by using the UI](#configure-sast-by-using-the-ui) | **{dotted-circle}** No | **{check-circle}** Yes |
| [Customize SAST rulesets](customize_rulesets.md) | **{dotted-circle}** No | **{check-circle}** Yes |
| [Track moved vulnerabilities](#advanced-vulnerability-tracking) | **{dotted-circle}** No | **{check-circle}** Yes |
## Requirements
@ -62,7 +61,7 @@ GitLab SAST analyzers only run in a Docker on Linux amd64 environment, which is
## Supported languages and frameworks
GitLab SAST supports scanning a variety of programming languages and frameworks.
Once you [enable SAST](#configuration), the right set of analyzers runs automatically even if your project uses more than one language.
After you [enable SAST](#configuration), the right set of analyzers runs automatically even if your project uses more than one language.
For more information about our plans for language support in SAST, see the [category direction page](https://about.gitlab.com/direction/secure/static-analysis/sast/#language-support).

View File

@ -3144,9 +3144,6 @@ msgstr ""
msgid "Add comment to review"
msgstr ""
msgid "Add comment..."
msgstr ""
msgid "Add commit messages as comments to Asana tasks. %{docs_link}"
msgstr ""
@ -18169,45 +18166,9 @@ msgstr ""
msgid "DeploymentApprovals|Set how approval rules are applied to deployments in protected environments."
msgstr ""
msgid "DeploymentApproval| Current approvals: %{current}"
msgstr ""
msgid "DeploymentApproval|After deployment #%{deploymentIid} has the required approvals, you can run the manual job. Rejecting will fail the manual job."
msgstr ""
msgid "DeploymentApproval|Approval options"
msgstr ""
msgid "DeploymentApproval|Approve or reject deployment #%{deploymentIid}"
msgstr ""
msgid "DeploymentApproval|Approved %{time}"
msgstr ""
msgid "DeploymentApproval|Approved by you %{time}"
msgstr ""
msgid "DeploymentApproval|Deployment approved"
msgstr ""
msgid "DeploymentApproval|Deployment rejected"
msgstr ""
msgid "DeploymentApproval|Deployment tier: %{tier}"
msgstr ""
msgid "DeploymentApproval|Environment: %{environment}"
msgstr ""
msgid "DeploymentApproval|Manual job: %{jobName}"
msgstr ""
msgid "DeploymentApproval|Rejected %{time}"
msgstr ""
msgid "DeploymentApproval|Rejected by you %{time}"
msgstr ""
msgid "DeploymentTarget|Edge Computing (e.g. Cloudflare Workers)"
msgstr ""
@ -39992,6 +39953,9 @@ msgstr ""
msgid "ProductAnalytics|Current month to date"
msgstr ""
msgid "ProductAnalytics|Custom event name"
msgstr ""
msgid "ProductAnalytics|Details on how to configure product analytics to collect data."
msgstr ""
@ -43519,9 +43483,6 @@ msgstr ""
msgid "Reindexing Status: %{status} (Slice multiplier: %{multiplier}, Maximum running slices: %{max_slices})"
msgstr ""
msgid "Reject"
msgstr ""
msgid "Rejected (closed)"
msgstr ""

View File

@ -57,7 +57,7 @@
<body>
<h1>
<img src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEwIiBoZWlnaHQ9IjIxMCIgdmlld0JveD0iMCAwIDIxMCAyMTAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgPHBhdGggZD0iTTEwNS4wNjE0IDIwMy42NTVsMzguNjQtMTE4LjkyMWgtNzcuMjhsMzguNjQgMTE4LjkyMXoiIGZpbGw9IiNlMjQzMjkiLz4KICA8cGF0aCBkPSJNMTA1LjA2MTQgMjAzLjY1NDhsLTM4LjY0LTExOC45MjFoLTU0LjE1M2w5Mi43OTMgMTE4LjkyMXoiIGZpbGw9IiNmYzZkMjYiLz4KICA8cGF0aCBkPSJNMTIuMjY4NSA4NC43MzQxbC0xMS43NDIgMzYuMTM5Yy0xLjA3MSAzLjI5Ni4xMDIgNi45MDcgMi45MDYgOC45NDRsMTAxLjYyOSA3My44MzgtOTIuNzkzLTExOC45MjF6IiBmaWxsPSIjZmNhMzI2Ii8+CiAgPHBhdGggZD0iTTEyLjI2ODUgODQuNzM0Mmg1NC4xNTNsLTIzLjI3My03MS42MjVjLTEuMTk3LTMuNjg2LTYuNDExLTMuNjg1LTcuNjA4IDBsLTIzLjI3MiA3MS42MjV6IiBmaWxsPSIjZTI0MzI5Ii8+CiAgPHBhdGggZD0iTTEwNS4wNjE0IDIwMy42NTQ4bDM4LjY0LTExOC45MjFoNTQuMTUzbC05Mi43OTMgMTE4LjkyMXoiIGZpbGw9IiNmYzZkMjYiLz4KICA8cGF0aCBkPSJNMTk3Ljg1NDQgODQuNzM0MWwxMS43NDIgMzYuMTM5YzEuMDcxIDMuMjk2LS4xMDIgNi45MDctMi45MDYgOC45NDRsLTEwMS42MjkgNzMuODM4IDkyLjc5My0xMTguOTIxeiIgZmlsbD0iI2ZjYTMyNiIvPgogIDxwYXRoIGQ9Ik0xOTcuODU0NCA4NC43MzQyaC01NC4xNTNsMjMuMjczLTcxLjYyNWMxLjE5Ny0zLjY4NiA2LjQxMS0zLjY4NSA3LjYwOCAwbDIzLjI3MiA3MS42MjV6IiBmaWxsPSIjZTI0MzI5Ii8+Cjwvc3ZnPgo=" alt="GitLab Logo" /><br />
<img src='data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjE5MiIgdmlld0JveD0iMCAwIDI1IDI0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxwYXRoIGQ9Im0yNC41MDcgOS41LS4wMzQtLjA5TDIxLjA4Mi41NjJhLjg5Ni44OTYgMCAwIDAtMS42OTQuMDkxbC0yLjI5IDcuMDFINy44MjVMNS41MzUuNjUzYS44OTguODk4IDAgMCAwLTEuNjk0LS4wOUwuNDUxIDkuNDExLjQxNiA5LjVhNi4yOTcgNi4yOTcgMCAwIDAgMi4wOSA3LjI3OGwuMDEyLjAxLjAzLjAyMiA1LjE2IDMuODY3IDIuNTYgMS45MzUgMS41NTQgMS4xNzZhMS4wNTEgMS4wNTEgMCAwIDAgMS4yNjggMGwxLjU1NS0xLjE3NiAyLjU2LTEuOTM1IDUuMTk3LTMuODkuMDE0LS4wMUE2LjI5NyA2LjI5NyAwIDAgMCAyNC41MDcgOS41WiIKICAgICAgICBmaWxsPSIjRTI0MzI5Ii8+CiAgPHBhdGggZD0ibTI0LjUwNyA5LjUtLjAzNC0uMDlhMTEuNDQgMTEuNDQgMCAwIDAtNC41NiAyLjA1MWwtNy40NDcgNS42MzIgNC43NDIgMy41ODQgNS4xOTctMy44OS4wMTQtLjAxQTYuMjk3IDYuMjk3IDAgMCAwIDI0LjUwNyA5LjVaIgogICAgICAgIGZpbGw9IiNGQzZEMjYiLz4KICA8cGF0aCBkPSJtNy43MDcgMjAuNjc3IDIuNTYgMS45MzUgMS41NTUgMS4xNzZhMS4wNTEgMS4wNTEgMCAwIDAgMS4yNjggMGwxLjU1NS0xLjE3NiAyLjU2LTEuOTM1LTQuNzQzLTMuNTg0LTQuNzU1IDMuNTg0WiIKICAgICAgICBmaWxsPSIjRkNBMzI2Ii8+CiAgPHBhdGggZD0iTTUuMDEgMTEuNDYxYTExLjQzIDExLjQzIDAgMCAwLTQuNTYtMi4wNUwuNDE2IDkuNWE2LjI5NyA2LjI5NyAwIDAgMCAyLjA5IDcuMjc4bC4wMTIuMDEuMDMuMDIyIDUuMTYgMy44NjcgNC43NDUtMy41ODQtNy40NDQtNS42MzJaIgogICAgICAgIGZpbGw9IiNGQzZEMjYiLz4KPC9zdmc+Cg==' alt="GitLab Logo" /><br />
Deploy in progress
</h1>
<div class="container">

View File

@ -349,16 +349,14 @@ module InternalEventsCli
cli.say <<~TEXT
#{divider}
#{format_help('# TERMINAL -- monitor events & changes to service ping metrics as they occur')}
#{format_help('# TERMINAL -- monitor events sent to snowplow & changes to service ping metrics as they occur')}
1. From `gitlab/` directory, run the monitor script:
1. Configure gdk with snowplow micro https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/doc/howto/snowplow_micro.md
2. From `gitlab/` directory, run the monitor script:
#{format_warning("bin/rails runner scripts/internal_events/monitor.rb #{event.action}")}
2. View metric updates within the terminal
3. [Optional] Configure gdk with snowplow micro to see individual events: https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/doc/howto/snowplow_micro.md
3. View all snowplow events in the browser at http://localhost:9091/micro/all (or whichever hostname & port you configured)
#{divider}
#{format_help('# RAILS CONSOLE -- generate service ping payload, including most recent usage data')}

View File

@ -107,17 +107,6 @@ def generate_snowplow_table
)
end
def generate_snowplow_placeholder
Terminal::Table.new(
title: 'SNOWPLOW EVENTS',
rows: [
["Could not connect to Snowplow Micro."],
["Please follow these instruction to set up Snowplow Micro:"],
["https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/doc/howto/snowplow_micro.md"]
]
)
end
def relevant_events_from_args(metric_definition)
metric_definition.events.keys.intersection(ARGV).sort
end
@ -154,9 +143,9 @@ def generate_metrics_table
)
end
def render_screen(paused, snowplow_available)
def render_screen(paused)
metrics_table = generate_metrics_table
events_table = snowplow_available ? generate_snowplow_table : generate_snowplow_placeholder
events_table = generate_snowplow_table
print TTY::Cursor.clear_screen
print TTY::Cursor.move_to(0, 0)
@ -166,6 +155,7 @@ def render_screen(paused, snowplow_available)
puts
puts metrics_table
puts events_table
puts
@ -173,12 +163,13 @@ def render_screen(paused, snowplow_available)
puts "Press \"q\" to quit"
end
snowplow_available = true
begin
snowplow_data
rescue Errno::ECONNREFUSED
snowplow_available = false
puts "Could not connect to Snowplow Micro."
puts "Please follow these instruction to set up Snowplow Micro:"
puts "https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/doc/howto/snowplow_micro.md"
exit 1
end
reader = TTY::Reader.new
@ -189,12 +180,12 @@ begin
case reader.read_keypress(nonblock: true)
when 'p'
paused = !paused
render_screen(paused, snowplow_available)
render_screen(paused)
when 'q'
break
end
render_screen(paused, snowplow_available) unless paused
render_screen(paused) unless paused
sleep 1
end

View File

@ -44,7 +44,7 @@ describe('~/environments/environment_details/index.vue', () => {
${'job'} | ${DeploymentJob} | ${{ job: deployment.job }}
${'created date'} | ${'[data-testid="deployment-created-at"]'} | ${{ time: deployment.created }}
${'deployed date'} | ${'[data-testid="deployment-deployed-at"]'} | ${{ time: deployment.deployed }}
${'deployment actions'} | ${DeploymentActions} | ${{ actions: deployment.actions, rollback: deployment.rollback, approvalEnvironment: deployment.deploymentApproval }}
${'deployment actions'} | ${DeploymentActions} | ${{ actions: deployment.actions, rollback: deployment.rollback, approvalEnvironment: deployment.deploymentApproval, deploymentWebPath: deployment.webPath }}
`('should show the correct component for $cell', ({ component, props }) => {
expect(row.findComponent(component).props()).toMatchObject(props);
});