Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
8bcdc9b991
commit
9a5556277a
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
||||
|
|
|
|||
|
|
@ -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 |
|
|
@ -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.
|
||||
|
||||

|
||||

|
||||
|
||||
## 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.
|
||||
|
|
|
|||
|
|
@ -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>\</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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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**.
|
||||
|
|
|
|||
|
|
@ -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**.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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).
|
||||
|
||||

|
||||
|
||||
|
|
@ -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).
|
||||
|
||||
|
|
|
|||
|
|
@ -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 ""
|
||||
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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')}
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in New Issue