Add latest changes from gitlab-org/gitlab@master

This commit is contained in:
GitLab Bot 2020-06-12 03:08:22 +00:00
parent ee936c190e
commit 1b5db0f4a6
48 changed files with 283 additions and 122 deletions

View File

@ -0,0 +1,60 @@
<script>
import { s__ } from '~/locale';
import { mapState, mapActions } from 'vuex';
import { GlFormGroup, GlFormSelect } from '@gitlab/ui';
import { timezones } from '~/monitoring/format_date';
export default {
components: {
GlFormGroup,
GlFormSelect,
},
computed: {
...mapState(['dashboardTimezone']),
dashboardTimezoneModel: {
get() {
return this.dashboardTimezone.selected;
},
set(selected) {
this.setDashboardTimezone(selected);
},
},
options() {
return [
{
value: timezones.LOCAL,
text: s__("MetricsSettings|User's local timezone"),
},
{
value: timezones.UTC,
text: s__('MetricsSettings|UTC (Coordinated Universal Time)'),
},
];
},
},
methods: {
...mapActions(['setDashboardTimezone']),
},
};
</script>
<template>
<gl-form-group
:label="s__('MetricsSettings|Dashboard timezone')"
label-for="dashboard-timezone-setting"
>
<template #description>
{{
s__(
"MetricsSettings|Choose whether to display dashboard metrics in UTC or the user's local timezone.",
)
}}
</template>
<gl-form-select
id="dashboard-timezone-setting"
v-model="dashboardTimezoneModel"
:options="options"
/>
</gl-form-group>
</template>

View File

@ -2,12 +2,14 @@
import { mapState, mapActions } from 'vuex';
import { GlDeprecatedButton, GlLink } from '@gitlab/ui';
import ExternalDashboard from './form_group/external_dashboard.vue';
import DashboardTimezone from './form_group/dashboard_timezone.vue';
export default {
components: {
GlDeprecatedButton,
GlLink,
ExternalDashboard,
DashboardTimezone,
},
computed: {
...mapState(['helpPage']),
@ -40,6 +42,7 @@ export default {
</div>
<div class="settings-content">
<form>
<dashboard-timezone />
<external-dashboard />
<gl-deprecated-button variant="success" @click="saveChanges">
{{ __('Save Changes') }}

View File

@ -7,11 +7,15 @@ import * as mutationTypes from './mutation_types';
export const setExternalDashboardUrl = ({ commit }, url) =>
commit(mutationTypes.SET_EXTERNAL_DASHBOARD_URL, url);
export const setDashboardTimezone = ({ commit }, selected) =>
commit(mutationTypes.SET_DASHBOARD_TIMEZONE, selected);
export const saveChanges = ({ state, dispatch }) =>
axios
.patch(state.operationsSettingsEndpoint, {
project: {
metrics_setting_attributes: {
dashboard_timezone: state.dashboardTimezone.selected,
external_dashboard_url: state.externalDashboard.url,
},
},

View File

@ -1,3 +1,2 @@
/* eslint-disable import/prefer-default-export */
export const SET_EXTERNAL_DASHBOARD_URL = 'SET_EXTERNAL_DASHBOARD_URL';
export const SET_DASHBOARD_TIMEZONE = 'SET_DASHBOARD_TIMEZONE';

View File

@ -4,4 +4,7 @@ export default {
[types.SET_EXTERNAL_DASHBOARD_URL](state, url) {
state.externalDashboard.url = url;
},
[types.SET_DASHBOARD_TIMEZONE](state, selected) {
state.dashboardTimezone.selected = selected;
},
};

View File

@ -5,4 +5,8 @@ export default (initialState = {}) => ({
url: initialState.externalDashboardUrl,
helpPage: initialState.externalDashboardHelpPage,
},
dashboardTimezone: {
selected: initialState.dashboardTimezoneSetting,
helpPage: initialState.dashboardTimezoneHelpPage,
},
});

View File

@ -9,4 +9,8 @@ class ProjectMetricsSetting < ApplicationRecord
addressable_url: { enforce_sanitization: true, ascii_only: true }
enum dashboard_timezone: { local: 0, utc: 1 }
def dashboard_timezone=(val)
super(val&.downcase)
end
end

View File

@ -1,5 +1,5 @@
.js-operation-settings{ data: { operations_settings_endpoint: project_settings_operations_path(@project),
help_page: help_page_path('user/project/integrations/prometheus'),
external_dashboard: { url: metrics_external_dashboard_url,
help_page: help_page_path('user/project/operations/linking_to_an_external_dashboard'),
} } }
help_page: help_page_path('user/project/operations/linking_to_an_external_dashboard') },
dashboard_timezone: { setting: metrics_dashboard_timezone.upcase } } }

View File

@ -0,0 +1,5 @@
---
title: Display dates on metrics dashboards in UTC time zone
merge_request: 32746
author:
type: added

View File

@ -35,6 +35,7 @@ awardable
Axios
Azure
B-tree
backfilling
backport
backported
backporting
@ -233,6 +234,7 @@ lookups
loopback
Lucene
Maildir
Mailgun
Makefile
Makefiles
Markdown
@ -348,6 +350,8 @@ redirections
refactorings
referer
referers
reflog
reflogs
reindex
reindexed
reindexes

View File

@ -227,7 +227,7 @@ Consul is a tool for service discovery and configuration. Consul is distributed,
- Configuration:
- [Omnibus](https://docs.gitlab.com/omnibus/settings/database.html#disabling-automatic-database-migration)
- [Charts](https://docs.gitlab.com/charts/charts/gitlab/migrations/)
- [Source](../update/upgrading_from_source.md#13-install-libs-migrations-etc)
- [Source](../update/upgrading_from_source.md#13-install-libraries-migrations-etc)
- Layer: Core Service (Data)
#### Elasticsearch
@ -523,7 +523,7 @@ Redis is packaged to provide a place to store:
- [Project page](https://github.com/docker/distribution/blob/master/README.md)
- Configuration:
- [Omnibus](../update/upgrading_from_source.md#13-install-libs-migrations-etc)
- [Omnibus](../update/upgrading_from_source.md#13-install-libraries-migrations-etc)
- [Charts](https://docs.gitlab.com/charts/charts/registry/)
- [Source](../administration/packages/container_registry.md#enable-the-container-registry)
- [GDK](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/master/doc/howto/registry.md)

View File

@ -89,9 +89,9 @@ If your GitLab instance has any GitLab Runners associated with it, it is very
important to upgrade the GitLab Runners to match the GitLab minor version that was
upgraded to. This is to ensure [compatibility with GitLab versions](https://docs.gitlab.com/runner/#compatibility-with-gitlab-versions).
### Version 12 onwards: Extra step for major upgrades
### Version 12 onward: Extra step for major upgrades
From version 12 onwards, an additional step is required. More significant migrations
From version 12 onward, an additional step is required. More significant migrations
may occur during major release upgrades.
To ensure these are successful:

View File

@ -35,7 +35,7 @@ bundle exec rake gitlab:snippets:migrate SNIPPET_IDS=1,2,3,4
```
There is a default limit (100) to the number of ids supported in the migration
process. You can modify this limit by using the env variable `LIMIT`.
process. You can modify this limit by using the environment variable `LIMIT`.
```shell
sudo gitlab-rake gitlab:snippets:migrate SNIPPET_IDS=1,2,3,4 LIMIT=50
@ -83,7 +83,7 @@ bundle exec rake gitlab:snippets:list_non_migrated RAILS_ENV=production
As the number of non-migrated snippets can be large, we limit
by default the size of the number of ids returned to 100. You can
modify this limit by using the env variable `LIMIT`.
modify this limit by using the environment variable `LIMIT`.
```shell
sudo gitlab-rake gitlab:snippets:list_non_migrated LIMIT=200

View File

@ -65,7 +65,7 @@ and expand **Outbound requests**:
The allowed entries can be separated by semicolons, commas or whitespaces
(including newlines) and be in different formats like hostnames, IP addresses and/or
IP ranges. IPv6 is supported. Hostnames that contain unicode characters should
IP ranges. IPv6 is supported. Hostnames that contain Unicode characters should
use IDNA encoding.
The allowlist can hold a maximum of 1000 entries. Each entry can be a maximum of

View File

@ -344,7 +344,7 @@ NOTE: **Note:**
The example `Host` aliases are defined as `user_1.gitlab.com` and
`user_2.gitlab.com` for efficiency and transparency. Advanced configurations
are more difficult to maintain; using this type of alias makes it easier to
understand when using other tools such as `git remote` subcommands. SSH
understand when using other tools such as `git remote` sub-commands. SSH
would understand any string as a `Host` alias thus `Tanuki1` and `Tanuki2`,
despite giving very little context as to where they point, would also work.
@ -385,7 +385,7 @@ GitLab integrates with the system-installed SSH daemon, designating a user
connecting to the GitLab server over SSH are identified by their SSH key instead
of their username.
SSH *client* operations performed on the GitLab server wil be executed as this
SSH *client* operations performed on the GitLab server will be executed as this
user. Although it is possible to modify the SSH configuration for this user to,
e.g., provide a private SSH key to authenticate these requests by, this practice
is **not supported** and is strongly discouraged as it presents significant

View File

@ -27,7 +27,7 @@ Your GitLab instance can perform HTTP POST requests on the following events:
- `user_remove_from_group`
- `user_update_for_group`
The triggers for most of these are self-explanatory, but `project_update` and `project_rename` deserve some clarification: `project_update` is fired any time an attribute of a project is changed (name, description, tags, etc.) *unless* the `path` attribute is also changed. In that case, a `project_rename` is triggered instead (so that, for instance, if all you care about is the repo URL, you can just listen for `project_rename`).
The triggers for most of these are self-explanatory, but `project_update` and `project_rename` deserve some clarification: `project_update` is fired any time an attribute of a project is changed (name, description, tags, etc.) *unless* the `path` attribute is also changed. In that case, a `project_rename` is triggered instead (so that, for instance, if all you care about is the repository URL, you can just listen for `project_rename`).
`user_failed_login` is sent whenever a **blocked** user attempts to login and denied access.
@ -313,7 +313,7 @@ If the user is blocked via LDAP, `state` will be `ldap_blocked`.
}
```
`owner_name` and `owner_email` are always `null`. Please see <https://gitlab.com/gitlab-org/gitlab/-/issues/20011>.
`owner_name` and `owner_email` are always `null`. Please see [issue #20011](https://gitlab.com/gitlab-org/gitlab/-/issues/20011).
**Group renamed:**

View File

@ -92,7 +92,7 @@ Git-related queries from GitLab.
The following relate to Git Large File Storage:
- [Getting Started with Git LFS](https://about.gitlab.com/blog/2017/01/30/getting-started-with-git-lfs-tutorial/)
- [Migrate an existing Git repo with Git LFS](lfs/migrate_to_git_lfs.md)
- [Migrate an existing Git repository with Git LFS](lfs/migrate_to_git_lfs.md)
- [Removing objects from LFS](lfs/index.md#removing-objects-from-lfs)
- [GitLab Git LFS user documentation](lfs/index.md)
- [GitLab Git LFS admin documentation](../../administration/lfs/index.md)

View File

@ -37,7 +37,7 @@ Documentation for GitLab instance administrators is under [LFS administration do
- Any Git LFS request will ask for HTTPS credentials to be provided so a good Git
credentials store is recommended
- Git LFS always assumes HTTPS so if you have GitLab server on HTTP you will have
to add the URL to Git config manually (see [troubleshooting](#troubleshooting))
to add the URL to Git configuration manually (see [troubleshooting](#troubleshooting))
NOTE: **Note:**
With 8.12 GitLab added LFS support to SSH. The Git LFS communication
@ -83,7 +83,7 @@ git clone git@gitlab.example.com:group/project.git
```
If you already cloned the repository and you want to get the latest LFS object
that are on the remote repository, eg. for a branch from origin:
that are on the remote repository, such as for a branch from origin:
```shell
git lfs fetch origin master
@ -91,7 +91,7 @@ git lfs fetch origin master
### Migrate an existing repo to Git LFS
Read the documentation on how to [migrate an existing Git repo with Git LFS](migrate_to_git_lfs.md).
Read the documentation on how to [migrate an existing Git repository with Git LFS](migrate_to_git_lfs.md).
### Removing objects from LFS
@ -128,7 +128,7 @@ in order to do that you can edit the `.gitattributes` file manually:
```
After a file type has been registered as lockable, Git LFS will make
them readonly on the file system automatically. This means you will
them read-only on the file system automatically. This means you will
need to lock the file before editing it.
### Managing Locked Files
@ -205,8 +205,8 @@ If the status `error 501` is shown, it is because:
on how to enable LFS support.
- Git LFS client version is not supported by GitLab server. Check your Git LFS
version with `git lfs version`. Check the Git config of the project for traces
of deprecated API with `git lfs -l`. If `batch = false` is set in the config,
version with `git lfs version`. Check the Git configuration of the project for traces
of deprecated API with `git lfs -l`. If `batch = false` is set in the configuration,
remove the line and try to update your Git LFS client. Only version 1.0.1 and
newer are supported.
@ -218,9 +218,9 @@ the LFS client is trying to reach GitLab through HTTPS. However, your GitLab
instance is being served on HTTP.
This behavior is caused by Git LFS using HTTPS connections by default when a
`lfsurl` is not set in the Git config.
`lfsurl` is not set in the Git configuration.
To prevent this from happening, set the lfs URL in project Git config:
To prevent this from happening, set the LFS URL in project Git configuration:
```shell
git config --add lfs.url "http://gitlab.example.com/group/project.git/info/lfs"

View File

@ -172,7 +172,7 @@ GitLab.com), therefore, you don't need to do anything server-side.
If the terminal doesn't prompt you with a full response on `git-lfs` commands,
[install the Git LFS client](https://git-lfs.github.com/) first.
1. Inside the repo, run the following command to initiate LFS:
1. Inside the repository, run the following command to initiate LFS:
```shell
git lfs install
@ -189,7 +189,7 @@ GitLab.com), therefore, you don't need to do anything server-side.
```
Once you do that, run `git status` and you'll see `.gitattributes` added
to your repo. It collects all file patterns that you chose to track via
to your repository. It collects all file patterns that you chose to track via
`git-lfs`.
1. Add the files, commit and push them to GitLab:

View File

@ -16,18 +16,18 @@ the files are still referenced by previous commits.
Through the method described on this document, first migrate
to Git LFS with a tool such as the open source community-maintained [BFG](https://rtyley.github.io/bfg-repo-cleaner/)
through a mirror repo, then clean up the repository's history,
through a mirror repository, then clean up the repository's history,
and lastly create LFS tracking rules to prevent new binary files
from being added.
This tutorial was inspired by the guide
[Use BFG to migrate a repo to Git LFS](https://confluence.atlassian.com/bitbucket/use-bfg-to-migrate-a-repo-to-git-lfs-834233484.html).
[Use BFG to migrate a repository to Git LFS](https://confluence.atlassian.com/bitbucket/use-bfg-to-migrate-a-repo-to-git-lfs-834233484.html).
For more information on Git LFS, see the [references](#references)
below.
CAUTION: **Warning:**
The method described on this guide rewrites Git history. Make
sure to back up your repo before beginning and use it at your
sure to back up your repository before beginning and use it at your
own risk.
## Requirements
@ -71,7 +71,7 @@ Consider an example upstream project, `git@gitlab.com:gitlab-tests/test-git-lfs-
Create a copy of your repository so that you can
recover it in case something goes wrong.
1. Clone `--mirror` the repo:
1. Clone `--mirror` the repository:
Cloning with the mirror flag will create a bare repository.
This ensures you get all the branches within the repo.
@ -102,7 +102,7 @@ Consider an example upstream project, `git@gitlab.com:gitlab-tests/test-git-lfs-
git reflog expire --expire=now --all && git gc --prune=now --aggressive
```
You can also take a look on how to further [clean the repo](../../../user/project/repository/reducing_the_repo_size_using_git.md),
You can also take a look on how to further [clean the repository](../../../user/project/repository/reducing_the_repo_size_using_git.md),
but it's not necessary for the purposes of this guide.
1. Install Git LFS in the mirror repository:
@ -166,7 +166,7 @@ but commented out to help encourage others to add to it in the future. -->
- [Migrate from Git Annex to Git LFS](migrate_from_git_annex_to_git_lfs.md)
- [GitLab's Git LFS user documentation](index.md)
- [GitLab's Git LFS administrator documentation](../../../administration/lfs/index.md)
- Alternative method to [migrate an existing repo to Git LFS](https://github.com/git-lfs/git-lfs/wiki/Tutorial#migrating-existing-repository-data-to-lfs)
- Alternative method to [migrate an existing repository to Git LFS](https://github.com/git-lfs/git-lfs/wiki/Tutorial#migrating-existing-repository-data-to-lfs)
<!--
Test project:

View File

@ -15,7 +15,7 @@ Organizations coming to Git from other version control systems frequently find i
This article describes GitLab flow, which integrates the Git workflow with an issue tracking system.
It offers a simple, transparent, and effective way to work with Git.
![Four stages (working copy, index, local repo, remote repo) and three steps between them](img/gitlab_flow_four_stages.png)
![Four stages (working copy, index, local repository, remote repository) and three steps between them](img/gitlab_flow_four_stages.png)
When converting to Git, you have to get used to the fact that it takes three steps to share a commit with colleagues.
Most version control systems have only one step: committing from the working copy to a shared server.

View File

@ -314,7 +314,7 @@ Squash the commits on the same branch we used for the merge conflicts step.
git rebase -i master
```
In the editor, leave the first commit as 'pick' and set others to 'fixup'.
In the editor, leave the first commit as `pick` and set others to `fixup`.
## Questions?

View File

@ -7,7 +7,7 @@ comments: false
## Select Version to Install
Make sure you view [this update guide](https://gitlab.com/gitlab-org/gitlab/blob/master/doc/update/patch_versions.md) from the tag (version) of GitLab you would like to install.
In most cases this should be the highest numbered production tag (without rc in it).
In most cases this should be the highest numbered production tag (without `rc` in it).
You can select the tag in the version dropdown in the top left corner of GitLab (below the menu bar).
### 0. Backup
@ -35,7 +35,7 @@ sudo -u git -H git checkout -- Gemfile.lock db/structure.sql locale
sudo -u git -H git checkout LATEST_TAG -b LATEST_TAG
```
### 3. Install libs, migrations, etc
### 3. Install libraries, migrations, etc
```shell
cd /home/git/gitlab

View File

@ -54,7 +54,7 @@ sudo -u git -H git remote add -f ee https://gitlab.com/gitlab-org/gitlab.git
sudo -u git -H git checkout EE_BRANCH
```
### 3. Install libs, migrations, etc
### 3. Install libraries, migrations, etc
```shell
cd /home/git/gitlab

View File

@ -12,7 +12,7 @@ Make sure you view this update guide from the branch (version) of GitLab you
would like to install (e.g., `11.8`. You can select the version in the version
dropdown at the top left corner of GitLab (below the menu bar).
In all examples, replace `BRANCH` with the branch for the version you uprading
In all examples, replace `BRANCH` with the branch for the version you upgrading
to (e.g. `11-8-stable` for `11.8`), and replace `PREVIOUS_BRANCH` with the
branch for the version you are upgrading from (e.g. `11-7-stable` for `11.7`).
@ -290,7 +290,7 @@ add the following line to `config/initializers/smtp_settings.rb`:
ActionMailer::Base.delivery_method = :smtp
```
See [smtp_settings.rb.sample](https://gitlab.com/gitlab-org/gitlab/blob/master/config/initializers/smtp_settings.rb.sample#L13) as an example.
See [`smtp_settings.rb.sample`](https://gitlab.com/gitlab-org/gitlab/blob/master/config/initializers/smtp_settings.rb.sample#L13) as an example.
#### Init script
@ -318,7 +318,7 @@ For Ubuntu 16.04.1 LTS:
sudo systemctl daemon-reload
```
### 13. Install libs, migrations, etc
### 13. Install libraries, migrations, etc
```shell
cd /home/git/gitlab

View File

@ -56,7 +56,7 @@ server.
## Installing Slony
Slony will be used to upgrade the database without requiring long downtimes.
Slony will be used to upgrade the database without requiring a long downtime.
Slony can be downloaded from <https://www.slony.info/>. If you have installed
PostgreSQL using your operating system's package manager you may also be able to
install Slony using said package manager.
@ -88,7 +88,7 @@ test -f /opt/gitlab/embedded/bin/slonik_init_cluster && echo 'Slony Perl tools a
```
This assumes Slony was installed to `/opt/gitlab/embedded`. If Slony was
installed properly the output of these commands will be (the mentioned "slonik"
installed properly the output of these commands will be (the mentioned `slonik`
version may be different):
```plaintext

View File

@ -15,7 +15,7 @@ By default, the navigation bar has the GitLab logo, but this can be customized w
any image desired. It is optimized for images 28px high (any width), but any image can be
used (less than 1MB) and it will automatically be resized.
![navbar header logo screenshot](img/appearance_header_logo_v12_3.png)
![Navigation bar header logo screenshot](img/appearance_header_logo_v12_3.png)
Once you select and upload an image, click **Update appearance settings** at the bottom
of the page to activate it in the GitLab instance.

View File

@ -72,7 +72,7 @@ gitlab_rails['initial_license_file'] = "/path/to/license/file"
CAUTION: **Caution:**
These methods will only add a license at the time of installation. Use the
Admin Area in the web ui to renew or upgrade licenses.
Admin Area in the web user interface to renew or upgrade licenses.
---

View File

@ -31,7 +31,7 @@ functionality that render cross-project data. That includes:
This is to prevent performing to many requests at once to the external
authorization service.
Whenever access is granted or denied this is logged in a logfile called
Whenever access is granted or denied this is logged in a log file called
`external-policy-access-control.log`.
Read more about logs GitLab keeps in the [omnibus documentation](https://docs.gitlab.com/omnibus/settings/logs.html).
@ -60,7 +60,7 @@ The available required properties are:
requesting authorization if no specific label is defined on the project
When using TLS Authentication with a self signed certificate, the CA certificate
needs to be trusted by the openssl installation. When using GitLab installed using
needs to be trusted by the OpenSSL installation. When using GitLab installed using
Omnibus, learn to install a custom CA in the
[omnibus documentation](https://docs.gitlab.com/omnibus/settings/ssl.html). Alternatively learn where to install
custom certificates using `openssl version -d`.

View File

@ -4,7 +4,7 @@ type: reference
# Gitaly timeouts
![gitaly timeouts](img/gitaly_timeouts.png)
![Gitaly timeouts](img/gitaly_timeouts.png)
3 timeout types can be configured to make sure that long running
Gitaly calls don't needlessly take up resources.

View File

@ -32,7 +32,7 @@ Access the default page for admin area settings by navigating to
| Option | Description |
| ------ | ----------- |
| [Elasticsearch](../../../integration/elasticsearch.md#enabling-elasticsearch) | Elasticsearch integration. Elasticsearch AWS IAM. |
| [PlantUML](../../../administration/integration/plantuml.md#gitlab) | Allow rendering of PlantUML diagrams in Asciidoc documents. |
| [PlantUML](../../../administration/integration/plantuml.md#gitlab) | Allow rendering of PlantUML diagrams in AsciiDoc documents. |
| [Slack application](../../../user/project/integrations/gitlab_slack_application.md#configuration) **(FREE ONLY)** | Slack integration allows you to interact with GitLab via slash commands in a chat window. This option is only available on GitLab.com, though it may be [available for self-managed instances in the future](https://gitlab.com/gitlab-org/gitlab/-/issues/28164). |
| [Third party offers](third_party_offers.md) | Control the display of third party offers. |
| [Snowplow](../../../development/telemetry/snowplow.md) | Configure the Snowplow integration. |

View File

@ -10,7 +10,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
Track development velocity with Productivity Analytics.
For many companies, the development cycle is a blackbox and getting an estimate of how
For many companies, the development cycle is a black box and getting an estimate of how
long, on average, it takes to deliver features is an enormous endeavor.
While [Value Stream Analytics](../project/cycle_analytics.md) focuses on the entire

View File

@ -471,9 +471,9 @@ DAST can be [configured](#customizing-the-dast-settings) using environment varia
| `DAST_INCLUDE_ALPHA_VULNERABILITIES` | no | Include alpha passive and active scan rules. Boolean. `true`, `True`, or `1` are considered as true value, otherwise false. Defaults to `false`. |
| `DAST_USE_AJAX_SPIDER` | no | Use the AJAX spider in addition to the traditional spider, useful for crawling sites that require JavaScript. Boolean. `true`, `True`, or `1` are considered as true value, otherwise false. Defaults to `false`. |
| `DAST_ZAP_CLI_OPTIONS` | no | ZAP server command-line options. For example, `-Xmx3072m` would set the Java maximum memory allocation pool size. |
| `DAST_ZAP_GENERATE_CONFIG` | no | The file name of the generated sample ZAP config file for use with `DAST_ZAP_CONFIG_FILE`. |
| `DAST_ZAP_CONFIG_FILE` | no | Name of config file used to determine thresholds of vulnerability rules. |
| `DAST_ZAP_CONFIG_URL` | no | URL of config file used to determine thresholds of vulnerability rules. |
| `DAST_ZAP_GENERATE_CONFIG` | no | The file name of the generated sample ZAP configuration file for use with `DAST_ZAP_CONFIG_FILE`. |
| `DAST_ZAP_CONFIG_FILE` | no | Name of configuration file used to determine thresholds of vulnerability rules. |
| `DAST_ZAP_CONFIG_URL` | no | URL of configuration file used to determine thresholds of vulnerability rules. |
| `DAST_ZAP_LOG_CONFIGURATION` | no | Set to a semicolon-separated list of additional log4j properties for the ZAP Server. For example, `log4j.logger.org.parosproxy.paros.network.HttpSender=DEBUG` |
### DAST command-line options

View File

@ -31,8 +31,8 @@ Dependencies are displayed with the following information:
| Field | Description |
| --------- | ----------- |
| Component | The dependency's name and version |
| Packager | The packager used to install the depedency |
| Location | A link to the packager-specific lockfile in your project that declared the dependency |
| Packager | The packager used to install the dependency |
| Location | A link to the packager-specific lock file in your project that declared the dependency |
| License | Links to dependency's software licenses |
Dependencies shown are initially sorted by the severity of their known vulnerabilities, if any. They

View File

@ -71,7 +71,7 @@ The scanning tools and vulnerabilities database are updated regularly.
| Secure scanning tool | Vulnerabilities database updates |
|:-------------------------------------------------------------|-------------------------------------------|
| [Container Scanning](container_scanning/index.md) | Uses `clair`. The latest `clair-db` version is used for each job by running the [`latest` Docker image tag](https://gitlab.com/gitlab-org/gitlab/blob/438a0a56dc0882f22bdd82e700554525f552d91b/lib/gitlab/ci/templates/Security/Container-Scanning.gitlab-ci.yml#L37). The `clair-db` database [is updated daily according to the author](https://github.com/arminc/clair-local-scan#clair-server-or-local). |
| [Dependency Scanning](dependency_scanning/index.md) | Relies on `bundler-audit` (for Rubygems), `retire.js` (for NPM packages), and `gemnasium` (GitLab's own tool for all libraries). Both `bundler-audit` and `retire.js` fetch their vulnerabilities data from GitHub repositories, so vulnerabilities added to `ruby-advisory-db` and `retire.js` are immediately available. The tools themselves are updated once per month if there's a new version. The [Gemnasium DB](https://gitlab.com/gitlab-org/security-products/gemnasium-db) is updated at least once a week. See our [current measurement of time from CVE being issued to our product being updated](https://about.gitlab.com/handbook/engineering/development/performance-indicators/#cve-issue-to-update). |
| [Dependency Scanning](dependency_scanning/index.md) | Relies on `bundler-audit` (for Ruby gems), `retire.js` (for NPM packages), and `gemnasium` (GitLab's own tool for all libraries). Both `bundler-audit` and `retire.js` fetch their vulnerabilities data from GitHub repositories, so vulnerabilities added to `ruby-advisory-db` and `retire.js` are immediately available. The tools themselves are updated once per month if there's a new version. The [Gemnasium DB](https://gitlab.com/gitlab-org/security-products/gemnasium-db) is updated at least once a week. See our [current measurement of time from CVE being issued to our product being updated](https://about.gitlab.com/handbook/engineering/development/performance-indicators/#cve-issue-to-update). |
| [Dynamic Application Security Testing (DAST)](dast/index.md) | The scanning engine is updated on a periodic basis. See the [version of the underlying tool `zaproxy`](https://gitlab.com/gitlab-org/security-products/dast/blob/master/Dockerfile#L1). The scanning rules are downloaded at scan runtime. |
| [Static Application Security Testing (SAST)](sast/index.md) | Relies exclusively on [the tools GitLab wraps](sast/index.md#supported-languages-and-frameworks). The underlying analyzers are updated at least once per month if a relevant update is available. The vulnerabilities database is updated by the upstream tools. |
@ -95,7 +95,7 @@ information with several options:
- [Dismiss vulnerability](#dismissing-a-vulnerability): Dismissing a vulnerability styles it in
strikethrough.
- [Create issue](#creating-an-issue-for-a-vulnerability): Create a new issue with the title and
description prepopulated with information from the vulnerability report. By default, such issues
description pre-populated with information from the vulnerability report. By default, such issues
are [confidential](../project/issues/confidential_issues.md).
- [Solution](#solutions-for-vulnerabilities-auto-remediation): For some vulnerabilities,
a solution is provided for how to fix the vulnerability.
@ -142,7 +142,7 @@ button from within the vulnerability modal, or by using the action buttons to th
a vulnerability row in the group security dashboard.
This creates a [confidential issue](../project/issues/confidential_issues.md) in the project the
vulnerability came from, and prepopulates it with some useful information taken from the vulnerability
vulnerability came from, and pre-populates it with some useful information taken from the vulnerability
report. Once the issue is created, you are redirected to it so you can edit, assign, or comment on
it.

View File

@ -52,7 +52,7 @@ you must update each of the scanners to either reference a different,
internally-hosted registry or provide access to the individual scanner images.
You must also ensure that your app has access to common package repositories
that are not hosted on GitLab.com, such as npm, yarn, or rubygems. Packages
that are not hosted on GitLab.com, such as npm, yarn, or Ruby gems. Packages
from these repos can be obtained by temporarily connecting to a network or by
mirroring the packages inside your own offline network.

View File

@ -145,7 +145,7 @@ The [Security Scanner Integration](../../../development/integrations/secure.md)
## Analyzers Data
| Property \ Tool | Apex | Bandit | Brakeman | ESLint security | Find Sec Bugs | Flawfinder | Gosec | Kubesec Scanner | NodeJsScan | Php CS Security Audit | Security code Scan (.NET) | Sobelow | TSLint Security |
| Property \ Tool | Apex | Bandit | Brakeman | ESLint security | Find Sec Bugs | Flawfinder | Gosec | Kubesec Scanner | NodeJsScan | PHP CS Security Audit | Security code Scan (.NET) | Sobelow | TSLint Security |
| --------------------------------------- | :------------------: | :------------------: | :------------------: | :------------------: | :------------------: | :------------------: | :------------------: | :------------------: | :------------------: | :---------------------: | :-------------------------: | :----------------: | :-------------: |
| Severity | ✓ | ✓ | 𐄂 | 𐄂 | ✓ | 𐄂 | ✓ | ✓ | 𐄂 | ✓ | 𐄂 | 𐄂 | ✓ |
| Title | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |

View File

@ -52,11 +52,11 @@ detected, whereas `https://username:password@example.com/path/to/repo` would be
## Full History Secret Scan
GitLab 12.11 introduced support for scanning the full history of a reposity. This new functionality
GitLab 12.11 introduced support for scanning the full history of a repository. This new functionality
is particularly useful when you are enabling Secret Detection in a repository for the first time and you
want to perform a full secret scan. Running a secret scan on the full history can take a long time,
especially for larger repositories with lengthy Git histories. We recommend not setting this variable
as part of your normal job defintion.
as part of your normal job definition.
A new configuration variable ([`SAST_GITLEAKS_HISTORIC_SCAN`](../sast/#vulnerability-filters))
can be set to change the behavior of the GitLab Secret Detection scan to run on the entire Git history of a repository.

View File

@ -20,7 +20,7 @@ several different ways:
- [Change the Vulnerability Status](#changing-vulnerability-status) - You can change the
status of a vulnerability to **Detected**, **Confirmed**, **Dismissed**, or **Resolved**.
- [Create issue](#creating-an-issue-for-a-vulnerability) - Create a new issue with the
title and description prepopulated with information from the vulnerability report.
title and description pre-populated with information from the vulnerability report.
By default, such issues are [confidential](../../project/issues/confidential_issues.md).
- [Solution](#automatic-remediation-solutions-for-vulnerabilities) - For some vulnerabilities,
a solution is provided for how to fix the vulnerability.
@ -42,7 +42,7 @@ the following values:
You can create an issue for a vulnerability by selecting the **Create issue** button.
This creates a [confidential issue](../../project/issues/confidential_issues.md) in the
project the vulnerability came from, and prepopulates it with useful information from
project the vulnerability came from, and pre-populates it with useful information from
the vulnerability report. After the issue is created, GitLab redirects you to the
issue page so you can edit, assign, or comment on the issue.

View File

@ -151,7 +151,7 @@ kubectl describe globaladdress.compute.gcp.crossplane.io gitlab-ad-globaladdress
Resource classes are a way of defining a configuration for the required managed service. We will define the PostgreSQL Resource class
- Define a `gcp-postgres-standard.yaml` resourceclass which contains
- Define a `gcp-postgres-standard.yaml` resource class which contains
1. A default CloudSQLInstanceClass.
1. A CloudSQLInstanceClass with labels.

View File

@ -3,11 +3,11 @@
> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/16379) in GitLab 10.5
Feature highlights are represented by a pulsing blue dot. Hovering over the dot
will open up callout with more information.
will display more information.
They are used to emphasize a certain feature and make something more visible to the user.
You can dismiss any feature highlight permanently by clicking the "Got it" link
at the bottom of the callout. There isn't a way to restore the feature highlight
at the bottom of the modal window. There isn't a way to restore the feature highlight
after it has been dismissed.
![Clusters feature highlight](img/feature_highlight_example.png)

View File

@ -157,7 +157,7 @@ Below are the shared Runners settings.
Linux Shared Runners on GitLab.com provide a way to run commands in a CI
job before the Runner attempts to run `git init` and `git fetch` to
download a GitLab repository. The
[pre_clone_script](https://docs.gitlab.com/runner/configuration/advanced-configuration.html#the-runners-section)
[`pre_clone_script`](https://docs.gitlab.com/runner/configuration/advanced-configuration.html#the-runners-section)
can be used for:
- Seeding the build directory with repository data
@ -420,37 +420,37 @@ different database servers.
The list of GitLab.com specific settings (and their defaults) is as follows:
| Setting | GitLab.com | Default |
|:------------------------------------|:--------------------------------------------------------------------|:--------------------------------------|
| archive_command | `/usr/bin/envdir /etc/wal-e.d/env /opt/wal-e/bin/wal-e wal-push %p` | empty |
| archive_mode | on | off |
| autovacuum_analyze_scale_factor | 0.01 | 0.01 |
| autovacuum_max_workers | 6 | 3 |
| autovacuum_vacuum_cost_limit | 1000 | -1 |
| autovacuum_vacuum_scale_factor | 0.01 | 0.02 |
| checkpoint_completion_target | 0.7 | 0.9 |
| checkpoint_segments | 32 | 10 |
| effective_cache_size | 338688MB | Based on how much memory is available |
| hot_standby | on | off |
| hot_standby_feedback | on | off |
| log_autovacuum_min_duration | 0 | -1 |
| log_checkpoints | on | off |
| log_line_prefix | `%t [%p]: [%l-1]` | empty |
| log_min_duration_statement | 1000 | -1 |
| log_temp_files | 0 | -1 |
| maintenance_work_mem | 2048MB | 16 MB |
| max_replication_slots | 5 | 0 |
| max_wal_senders | 32 | 0 |
| max_wal_size | 5GB | 1GB |
| shared_buffers | 112896MB | Based on how much memory is available |
| shared_preload_libraries | pg_stat_statements | empty |
| shmall | 30146560 | Based on the server's capabilities |
| shmmax | 123480309760 | Based on the server's capabilities |
| wal_buffers | 16MB | -1 |
| wal_keep_segments | 512 | 10 |
| wal_level | replica | minimal |
| statement_timeout | 15s | 60s |
| idle_in_transaction_session_timeout | 60s | 60s |
| Setting | GitLab.com | Default |
|:--------------------------------------|:--------------------------------------------------------------------|:--------------------------------------|
| `archive_command` | `/usr/bin/envdir /etc/wal-e.d/env /opt/wal-e/bin/wal-e wal-push %p` | empty |
| `archive_mode` | on | off |
| `autovacuum_analyze_scale_factor` | 0.01 | 0.01 |
| `autovacuum_max_workers` | 6 | 3 |
| `autovacuum_vacuum_cost_limit` | 1000 | -1 |
| `autovacuum_vacuum_scale_factor` | 0.01 | 0.02 |
| `checkpoint_completion_target` | 0.7 | 0.9 |
| `checkpoint_segments` | 32 | 10 |
| `effective_cache_size` | 338688MB | Based on how much memory is available |
| `hot_standby` | on | off |
| `hot_standby_feedback` | on | off |
| `log_autovacuum_min_duration` | 0 | -1 |
| `log_checkpoints` | on | off |
| `log_line_prefix` | `%t [%p]: [%l-1]` | empty |
| `log_min_duration_statement` | 1000 | -1 |
| `log_temp_files` | 0 | -1 |
| `maintenance_work_mem` | 2048MB | 16 MB |
| `max_replication_slots` | 5 | 0 |
| `max_wal_senders` | 32 | 0 |
| `max_wal_size` | 5GB | 1GB |
| `shared_buffers` | 112896MB | Based on how much memory is available |
| `shared_preload_libraries` | pg_stat_statements | empty |
| `shmall` | 30146560 | Based on the server's capabilities |
| `shmmax` | 123480309760 | Based on the server's capabilities |
| `wal_buffers` | 16MB | -1 |
| `wal_keep_segments` | 512 | 10 |
| `wal_level` | replica | minimal |
| `statement_timeout` | 15s | 60s |
| `idle_in_transaction_session_timeout` | 60s | 60s |
Some of these settings are in the process being adjusted. For example, the value
for `shared_buffers` is quite high and as such we are looking into adjusting it.

View File

@ -28,7 +28,7 @@ immediate update, unless:
- The mirror is already being updated.
- 5 minutes haven't elapsed since its last update.
For security reasons, from [GitLab 12.10 onwards](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/27166),
For security reasons, in [GitLab 12.10 and later](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/27166),
the URL to the original repository is only displayed to users with
Maintainer or Owner permissions to the mirrored project.

View File

@ -8,7 +8,7 @@ disqus_identifier: 'https://docs.gitlab.com/ee/workflow/shortcuts.html'
GitLab has many useful keyboard shortcuts to make it easier to access different features.
You can see a modal listing keyboard shortcuts within GitLab itself by pressing <kbd>?</kbd>,
or clicking **Keyboard shortcuts** in the Help menu at the top right.
From [GitLab 12.8 onwards](https://gitlab.com/gitlab-org/gitlab/-/issues/22113),
In [GitLab 12.8 and later](https://gitlab.com/gitlab-org/gitlab/-/issues/22113),
keyboard shortcuts can be disabled using the **Enable**/**Disable** toggle in this modal window.
The [Global Shortcuts](#global-shortcuts) work from any area of GitLab, but you must

View File

@ -13967,6 +13967,12 @@ msgstr ""
msgid "MetricsSettings|Add a button to the metrics dashboard linking directly to your existing external dashboard."
msgstr ""
msgid "MetricsSettings|Choose whether to display dashboard metrics in UTC or the user's local timezone."
msgstr ""
msgid "MetricsSettings|Dashboard timezone"
msgstr ""
msgid "MetricsSettings|External dashboard URL"
msgstr ""
@ -13976,6 +13982,12 @@ msgstr ""
msgid "MetricsSettings|Metrics Dashboard"
msgstr ""
msgid "MetricsSettings|UTC (Coordinated Universal Time)"
msgstr ""
msgid "MetricsSettings|User's local timezone"
msgstr ""
msgid "Metrics|Add metric"
msgstr ""

View File

@ -1,8 +1,11 @@
import { mount, shallowMount } from '@vue/test-utils';
import { GlDeprecatedButton, GlLink, GlFormGroup, GlFormInput } from '@gitlab/ui';
import { GlDeprecatedButton, GlLink, GlFormGroup, GlFormInput, GlFormSelect } from '@gitlab/ui';
import { TEST_HOST } from 'helpers/test_constants';
import MetricsSettings from '~/operation_settings/components/metrics_settings.vue';
import ExternalDashboard from '~/operation_settings/components/form_group/external_dashboard.vue';
import DashboardTimezone from '~/operation_settings/components/form_group/dashboard_timezone.vue';
import { timezones } from '~/monitoring/format_date';
import store from '~/operation_settings/store';
import axios from '~/lib/utils/axios_utils';
import { refreshCurrentPage } from '~/lib/utils/url_utility';
@ -18,6 +21,8 @@ describe('operation settings external dashboard component', () => {
const helpPage = `${TEST_HOST}/help/metrics/page/path`;
const externalDashboardUrl = `http://mock-external-domain.com/external/dashboard/url`;
const externalDashboardHelpPage = `${TEST_HOST}/help/external/page/path`;
const dashboardTimezoneSetting = timezones.LOCAL;
const dashboardTimezoneHelpPage = `${TEST_HOST}/help/timezone/page/path`;
const mountComponent = (shallow = true) => {
const config = [
@ -28,9 +33,12 @@ describe('operation settings external dashboard component', () => {
helpPage,
externalDashboardUrl,
externalDashboardHelpPage,
dashboardTimezoneSetting,
dashboardTimezoneHelpPage,
}),
stubs: {
ExternalDashboard,
DashboardTimezone,
},
},
];
@ -84,38 +92,74 @@ describe('operation settings external dashboard component', () => {
});
describe('form', () => {
describe('input label', () => {
let formGroup;
describe('dashboard timezone', () => {
describe('field label', () => {
let formGroup;
beforeEach(() => {
mountComponent(false);
formGroup = wrapper.find(ExternalDashboard).find(GlFormGroup);
beforeEach(() => {
mountComponent(false);
formGroup = wrapper.find(DashboardTimezone).find(GlFormGroup);
});
it('uses label text', () => {
expect(formGroup.find('label').text()).toBe('Dashboard timezone');
});
it('uses description text', () => {
const description = formGroup.find('small');
expect(description.text()).not.toBeFalsy();
});
});
it('uses label text', () => {
expect(formGroup.find('label').text()).toBe('External dashboard URL');
});
describe('select field', () => {
let select;
it('uses description text', () => {
const description = formGroup.find('small');
expect(description.find('a').attributes('href')).toBe(externalDashboardHelpPage);
beforeEach(() => {
mountComponent();
select = wrapper.find(DashboardTimezone).find(GlFormSelect);
});
it('defaults to externalDashboardUrl', () => {
expect(select.attributes('value')).toBe(dashboardTimezoneSetting);
});
});
});
describe('input field', () => {
let input;
describe('external dashboard', () => {
describe('input label', () => {
let formGroup;
beforeEach(() => {
mountComponent();
input = wrapper.find(GlFormInput);
beforeEach(() => {
mountComponent(false);
formGroup = wrapper.find(ExternalDashboard).find(GlFormGroup);
});
it('uses label text', () => {
expect(formGroup.find('label').text()).toBe('External dashboard URL');
});
it('uses description text', () => {
const description = formGroup.find('small');
expect(description.find('a').attributes('href')).toBe(externalDashboardHelpPage);
});
});
it('defaults to externalDashboardUrl', () => {
expect(input.attributes().value).toBe(externalDashboardUrl);
});
describe('input field', () => {
let input;
it('uses a placeholder', () => {
expect(input.attributes().placeholder).toBe('https://my-org.gitlab.io/my-dashboards');
beforeEach(() => {
mountComponent();
input = wrapper.find(ExternalDashboard).find(GlFormInput);
});
it('defaults to externalDashboardUrl', () => {
expect(input.attributes().value).toBeTruthy();
expect(input.attributes().value).toBe(externalDashboardUrl);
});
it('uses a placeholder', () => {
expect(input.attributes().placeholder).toBe('https://my-org.gitlab.io/my-dashboards');
});
});
});
@ -128,6 +172,7 @@ describe('operation settings external dashboard component', () => {
{
project: {
metrics_setting_attributes: {
dashboard_timezone: dashboardTimezoneSetting,
external_dashboard_url: externalDashboardUrl,
},
},

View File

@ -1,5 +1,6 @@
import mutations from '~/operation_settings/store/mutations';
import createState from '~/operation_settings/store/state';
import { timezones } from '~/monitoring/format_date';
describe('operation settings mutations', () => {
let localState;
@ -16,4 +17,13 @@ describe('operation settings mutations', () => {
expect(localState.externalDashboard.url).toBe(mockUrl);
});
});
describe('SET_DASHBOARD_TIMEZONE', () => {
it('sets dashboardTimezoneSetting', () => {
mutations.SET_DASHBOARD_TIMEZONE(localState, timezones.LOCAL);
expect(localState.dashboardTimezone.selected).not.toBeUndefined();
expect(localState.dashboardTimezone.selected).toBe(timezones.LOCAL);
});
});
});

View File

@ -52,4 +52,12 @@ describe ProjectMetricsSetting do
end
end
end
describe '#dashboard_timezone=' do
it 'downcases string' do
subject.dashboard_timezone = 'UTC'
expect(subject.dashboard_timezone).to eq('utc')
end
end
end