Commit af1240c8 authored by GitLab Bot's avatar GitLab Bot

Automatic merge of gitlab-org/gitlab-ce master

parents d2119b6d c1d314ea
...@@ -8,7 +8,6 @@ ...@@ -8,7 +8,6 @@
"style": "dash" "style": "dash"
}, },
"line-length": false, "line-length": false,
"commands-show-output": false,
"no-duplicate-header": { "no-duplicate-header": {
"allow_different_nesting": true "allow_different_nesting": true
}, },
......
...@@ -99,7 +99,7 @@ automatically. ...@@ -99,7 +99,7 @@ automatically.
Its simplest usage is to provide the value for `title`: Its simplest usage is to provide the value for `title`:
```text ```text
$ bin/changelog 'Hey DZ, I added a feature to GitLab!' bin/changelog 'Hey DZ, I added a feature to GitLab!'
``` ```
At this point the script would ask you to select the category of the change (mapped to the `type` field in the entry): At this point the script would ask you to select the category of the change (mapped to the `type` field in the entry):
......
...@@ -27,7 +27,7 @@ no overhead at all. ...@@ -27,7 +27,7 @@ no overhead at all.
To enable `GITLAB_TRACING`, a valid _"configuration-string"_ value should be set, with a URL-like To enable `GITLAB_TRACING`, a valid _"configuration-string"_ value should be set, with a URL-like
form: form:
```console ```sh
GITLAB_TRACING=opentracing://<driver>?<param_name>=<param_value>&<param_name_2>=<param_value_2> GITLAB_TRACING=opentracing://<driver>?<param_name>=<param_value>&<param_name_2>=<param_value_2>
``` ```
...@@ -90,7 +90,7 @@ documentation](https://www.jaegertracing.io/docs/1.9/getting-started/). ...@@ -90,7 +90,7 @@ documentation](https://www.jaegertracing.io/docs/1.9/getting-started/).
If you have Docker available, the easier approach to running the Jaeger all-in-one is through If you have Docker available, the easier approach to running the Jaeger all-in-one is through
Docker, using the following command: Docker, using the following command:
```console ```sh
$ docker run \ $ docker run \
--rm \ --rm \
-e COLLECTOR_ZIPKIN_HTTP_PORT=9411 \ -e COLLECTOR_ZIPKIN_HTTP_PORT=9411 \
...@@ -121,8 +121,8 @@ appropriate configuration string. ...@@ -121,8 +121,8 @@ appropriate configuration string.
**TL;DR:** If you are running everything on the same host, use the following value: **TL;DR:** If you are running everything on the same host, use the following value:
```console ```sh
$ export GITLAB_TRACING="opentracing://jaeger?http_endpoint=http%3A%2F%2Flocalhost%3A14268%2Fapi%2Ftraces&sampler=const&sampler_param=1" export GITLAB_TRACING="opentracing://jaeger?http_endpoint=http%3A%2F%2Flocalhost%3A14268%2Fapi%2Ftraces&sampler=const&sampler_param=1"
``` ```
This configuration string uses the Jaeger driver `opentracing://jaeger` with the following options: This configuration string uses the Jaeger driver `opentracing://jaeger` with the following options:
...@@ -152,7 +152,7 @@ application. ...@@ -152,7 +152,7 @@ application.
When `GITLAB_TRACING` is configured properly, the application will log this on startup: When `GITLAB_TRACING` is configured properly, the application will log this on startup:
```console ```sh
13:41:53 gitlab-workhorse.1 | 2019/02/12 13:41:53 Tracing enabled 13:41:53 gitlab-workhorse.1 | 2019/02/12 13:41:53 Tracing enabled
... ...
13:41:54 gitaly.1 | 2019/02/12 13:41:54 Tracing enabled 13:41:54 gitaly.1 | 2019/02/12 13:41:54 Tracing enabled
...@@ -161,7 +161,7 @@ When `GITLAB_TRACING` is configured properly, the application will log this on s ...@@ -161,7 +161,7 @@ When `GITLAB_TRACING` is configured properly, the application will log this on s
If `GITLAB_TRACING` is not configured correctly, this will also be logged: If `GITLAB_TRACING` is not configured correctly, this will also be logged:
```console ```sh
13:43:45 gitaly.1 | 2019/02/12 13:43:45 skipping tracing configuration step: tracer: unable to load driver mytracer 13:43:45 gitaly.1 | 2019/02/12 13:43:45 skipping tracing configuration step: tracer: unable to load driver mytracer
``` ```
......
...@@ -81,9 +81,7 @@ If you're using Pry you can use the `$` command to display the source code of a ...@@ -81,9 +81,7 @@ If you're using Pry you can use the `$` command to display the source code of a
method (along with its source location), this is easier than running the above method (along with its source location), this is easier than running the above
Ruby code. In case of the above snippet you'd run the following: Ruby code. In case of the above snippet you'd run the following:
``` - `$ Banzai::Renderer.render`
$ Banzai::Renderer.render
```
This will print out something along the lines of: This will print out something along the lines of:
......
...@@ -123,7 +123,7 @@ Keeping that in mind, to create a profile, identify (or create) a spec that ...@@ -123,7 +123,7 @@ Keeping that in mind, to create a profile, identify (or create) a spec that
exercises the troublesome code path, then run it using the `bin/rspec-stackprof` exercises the troublesome code path, then run it using the `bin/rspec-stackprof`
helper, e.g.: helper, e.g.:
``` ```sh
$ LIMIT=10 bin/rspec-stackprof spec/policies/project_policy_spec.rb $ LIMIT=10 bin/rspec-stackprof spec/policies/project_policy_spec.rb
8/8 |====== 100 ======>| Time: 00:00:18 8/8 |====== 100 ======>| Time: 00:00:18
...@@ -157,22 +157,22 @@ it calls, were being executed. ...@@ -157,22 +157,22 @@ it calls, were being executed.
To create a graphical view of the call stack: To create a graphical view of the call stack:
```shell ```sh
$ stackprof tmp/project_policy_spec.rb.dump --graphviz > project_policy_spec.dot stackprof tmp/project_policy_spec.rb.dump --graphviz > project_policy_spec.dot
$ dot -Tsvg project_policy_spec.dot > project_policy_spec.svg dot -Tsvg project_policy_spec.dot > project_policy_spec.svg
``` ```
To load the profile in [kcachegrind](https://kcachegrind.github.io/): To load the profile in [kcachegrind](https://kcachegrind.github.io/):
``` ```sh
$ stackprof tmp/project_policy_spec.dump --callgrind > project_policy_spec.callgrind stackprof tmp/project_policy_spec.dump --callgrind > project_policy_spec.callgrind
$ kcachegrind project_policy_spec.callgrind # Linux kcachegrind project_policy_spec.callgrind # Linux
$ qcachegrind project_policy_spec.callgrind # Mac qcachegrind project_policy_spec.callgrind # Mac
``` ```
It may be useful to zoom in on a specific method, e.g.: It may be useful to zoom in on a specific method, e.g.:
``` ```sh
$ stackprof tmp/project_policy_spec.rb.dump --method warm_asset_cache $ stackprof tmp/project_policy_spec.rb.dump --method warm_asset_cache
TestEnv#warm_asset_cache (/Users/lupine/dev/gitlab.com/gitlab-org/gitlab-development-kit/gitlab/spec/support/test_env.rb:164) TestEnv#warm_asset_cache (/Users/lupine/dev/gitlab.com/gitlab-org/gitlab-development-kit/gitlab/spec/support/test_env.rb:164)
samples: 0 self (0.0%) / 6288 total (36.9%) samples: 0 self (0.0%) / 6288 total (36.9%)
...@@ -225,9 +225,9 @@ may have changed over time. ...@@ -225,9 +225,9 @@ may have changed over time.
To activate profiling in your local environment, run the following: To activate profiling in your local environment, run the following:
``` ```sh
$ export RSPEC_PROFILING=yes export RSPEC_PROFILING=yes
$ rake rspec_profiling:install rake rspec_profiling:install
``` ```
This creates an SQLite3 database in `tmp/rspec_profiling`, into which statistics This creates an SQLite3 database in `tmp/rspec_profiling`, into which statistics
...@@ -237,7 +237,7 @@ variable set. ...@@ -237,7 +237,7 @@ variable set.
Ad-hoc investigation of the collected results can be performed in an interactive Ad-hoc investigation of the collected results can be performed in an interactive
shell: shell:
``` ```sh
$ rake rspec_profiling:console $ rake rspec_profiling:console
irb(main):001:0> results.count irb(main):001:0> results.count
=> 231 => 231
......
...@@ -47,14 +47,14 @@ to avoid getting this error, you need to remove all instances of the ...@@ -47,14 +47,14 @@ to avoid getting this error, you need to remove all instances of the
**Omnibus Installation** **Omnibus Installation**
``` ```sh
$ sudo gitlab-rails runner "Service.where(type: ['JenkinsService', 'JenkinsDeprecatedService', 'GithubService']).delete_all" sudo gitlab-rails runner "Service.where(type: ['JenkinsService', 'JenkinsDeprecatedService', 'GithubService']).delete_all"
``` ```
**Source Installation** **Source Installation**
``` ```sh
$ bundle exec rails runner "Service.where(type: ['JenkinsService', 'JenkinsDeprecatedService', 'GithubService']).delete_all" production bundle exec rails runner "Service.where(type: ['JenkinsService', 'JenkinsDeprecatedService', 'GithubService']).delete_all" production
``` ```
### Variables environment scopes ### Variables environment scopes
...@@ -89,10 +89,10 @@ To downgrade a source installation, you need to replace the current remote of ...@@ -89,10 +89,10 @@ To downgrade a source installation, you need to replace the current remote of
your GitLab installation with the Community Edition's remote, fetch the latest your GitLab installation with the Community Edition's remote, fetch the latest
changes, and checkout the latest stable branch: changes, and checkout the latest stable branch:
``` ```sh
$ git remote set-url origin git@gitlab.com:gitlab-org/gitlab-ce.git git remote set-url origin git@gitlab.com:gitlab-org/gitlab-ce.git
$ git fetch --all git fetch --all
$ git checkout 8-x-stable git checkout 8-x-stable
``` ```
Remember to follow the correct [update guides](../update/README.md) to make Remember to follow the correct [update guides](../update/README.md) to make
......
...@@ -225,7 +225,7 @@ First, we will create a new project to host our application. You can do this ...@@ -225,7 +225,7 @@ First, we will create a new project to host our application. You can do this
either by running the CLI client: either by running the CLI client:
```bash ```bash
$ oc new-project gitlab oc new-project gitlab
``` ```
or by using the web interface: or by using the web interface:
......
...@@ -158,7 +158,7 @@ For installation from source: ...@@ -158,7 +158,7 @@ For installation from source:
You will also need to disable Git SSL verification on the server hosting GitLab. You will also need to disable Git SSL verification on the server hosting GitLab.
``` ```
$ git config --global http.sslVerify false git config --global http.sslVerify false
``` ```
For the changes to take effect, [reconfigure GitLab] if you installed For the changes to take effect, [reconfigure GitLab] if you installed
......
...@@ -42,17 +42,17 @@ If you are using an installation from source, replace `/var/opt/gitlab/` with `/ ...@@ -42,17 +42,17 @@ If you are using an installation from source, replace `/var/opt/gitlab/` with `/
#### Omnibus Installation #### Omnibus Installation
``` ```sh
$ sudo gitlab-rake gitlab:import:repos['/var/opt/gitlab/git-data/repository-import-<date>'] sudo gitlab-rake gitlab:import:repos['/var/opt/gitlab/git-data/repository-import-<date>']
``` ```
#### Installation from source #### Installation from source
Before running this command you need to change the directory to where your GitLab installation is located: Before running this command you need to change the directory to where your GitLab installation is located:
``` ```sh
$ cd /home/git/gitlab cd /home/git/gitlab
$ sudo -u git -H bundle exec rake gitlab:import:repos['/var/opt/gitlab/git-data/repository-import-<date>'] RAILS_ENV=production sudo -u git -H bundle exec rake gitlab:import:repos['/var/opt/gitlab/git-data/repository-import-<date>'] RAILS_ENV=production
``` ```
#### Example output #### Example output
......
...@@ -4,8 +4,11 @@ type: reference, howto ...@@ -4,8 +4,11 @@ type: reference, howto
# Dependency Scanning **(ULTIMATE)** # Dependency Scanning **(ULTIMATE)**
> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/5105) > [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/5105) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 10.7.
in [GitLab Ultimate](https://about.gitlab.com/pricing/) 10.7.
Dependency Scanning helps to automatically find security vulnerabilities in your dependencies
while you are developing and testing your applications, for example when your
application is using an external (open source) library which is known to be vulnerable.
## Overview ## Overview
...@@ -18,7 +21,7 @@ in your existing `.gitlab-ci.yml` file or by implicitly using ...@@ -18,7 +21,7 @@ in your existing `.gitlab-ci.yml` file or by implicitly using
that is provided by [Auto DevOps](../../../topics/autodevops/index.md). that is provided by [Auto DevOps](../../../topics/autodevops/index.md).
GitLab checks the Dependency Scanning report, compares the found vulnerabilities GitLab checks the Dependency Scanning report, compares the found vulnerabilities
between the source and target branches, and shows the information right on the between the source and target branches, and shows the information on the
merge request. merge request.
![Dependency Scanning Widget](img/dependency_scanning.png) ![Dependency Scanning Widget](img/dependency_scanning.png)
...@@ -32,12 +35,6 @@ The results are sorted by the severity of the vulnerability: ...@@ -32,12 +35,6 @@ The results are sorted by the severity of the vulnerability:
1. Unknown 1. Unknown
1. Everything else 1. Everything else
## Use cases
It helps to automatically find security vulnerabilities in your dependencies
while you are developing and testing your applications. For example when your
application is using an external (open source) library which is known to be vulnerable.
## Requirements ## Requirements
To run a Dependency Scanning job, you need GitLab Runner with the To run a Dependency Scanning job, you need GitLab Runner with the
...@@ -162,10 +159,39 @@ using environment variables. ...@@ -162,10 +159,39 @@ using environment variables.
| `PIP_INDEX_URL` | Base URL of Python Package Index (default `https://pypi.org/simple`). | | | `PIP_INDEX_URL` | Base URL of Python Package Index (default `https://pypi.org/simple`). | |
| `PIP_EXTRA_INDEX_URL` | Array of [extra URLs](https://pip.pypa.io/en/stable/reference/pip_install/#cmdoption-extra-index-url) of package indexes to use in addition to `PIP_INDEX_URL`. Comma separated. | | | `PIP_EXTRA_INDEX_URL` | Array of [extra URLs](https://pip.pypa.io/en/stable/reference/pip_install/#cmdoption-extra-index-url) of package indexes to use in addition to `PIP_INDEX_URL`. Comma separated. | |
## Interacting with the vulnerabilities
Once a vulnerability is found, you can interact with it. Read more on how to
[interact with the vulnerabilities](../index.md#interacting-with-the-vulnerabilities).
## Solutions for vulnerabilities (auto-remediation)
Some vulnerabilities can be fixed by applying the solution that GitLab
automatically generates.
Read more about the [solutions for vulnerabilities](../index.md#solutions-for-vulnerabilities-auto-remediation).
## Security Dashboard
The Security Dashboard is a good place to get an overview of all the security
vulnerabilities in your groups, projects and pipelines. Read more about the
[Security Dashboard](../security_dashboard/index.md).
## Vulnerabilities database update
For more information about the vulnerabilities database update, check the
[maintenance table](../index.md#maintenance-and-update-of-the-vulnerabilities-database).
## Dependency List
An additional benefit of Dependency Scanning is the ability to view your
project's dependencies and their known vulnerabilities. Read more about
the [Dependency List](../dependency_list/index.md).
## Reports JSON format ## Reports JSON format
CAUTION: **Caution:** CAUTION: **Caution:**
The JSON report artifacts are not a public API of Dependency Scanning and their format may change in future. The JSON report artifacts are not a public API of Dependency Scanning and their format may change in the future.
The Dependency Scanning tool emits a JSON report file. Here is an example of the report structure with all important parts of The Dependency Scanning tool emits a JSON report file. Here is an example of the report structure with all important parts of
it highlighted: it highlighted:
...@@ -315,28 +341,6 @@ the report JSON unless stated otherwise. Presence of optional fields depends on ...@@ -315,28 +341,6 @@ the report JSON unless stated otherwise. Presence of optional fields depends on
| `remediations[].summary` | Overview of how the vulnerabilities have been fixed. | | `remediations[].summary` | Overview of how the vulnerabilities have been fixed. |
| `remediations[].diff` | base64-encoded remediation code diff, compatible with [`git apply`](https://git-scm.com/docs/git-format-patch#_discussion). | | `remediations[].diff` | base64-encoded remediation code diff, compatible with [`git apply`](https://git-scm.com/docs/git-format-patch#_discussion). |
## Security Dashboard
The Security Dashboard is a good place to get an overview of all the security
vulnerabilities in your groups, projects and pipelines. Read more about the
[Security Dashboard](../security_dashboard/index.md).
## Interacting with the vulnerabilities
Once a vulnerability is found, you can interact with it. Read more on how to
[interact with the vulnerabilities](../index.md#interacting-with-the-vulnerabilities).
## Vulnerabilities database update
For more information about the vulnerabilities database update, check the
[maintenance table](../index.md#maintenance-and-update-of-the-vulnerabilities-database).
## Dependency List **(ULTIMATE)**
An additional benefit of Dependency Scanning is the ability to view your
project's dependencies and their known vulnerabilities. Read more about
the [Dependency List](../dependency_list/index.md).
## Versioning and release process ## Versioning and release process
Please check the [Release Process documentation](https://gitlab.com/gitlab-org/security-products/release/blob/master/docs/release_process.md). Please check the [Release Process documentation](https://gitlab.com/gitlab-org/security-products/release/blob/master/docs/release_process.md).
......
...@@ -71,8 +71,7 @@ entry, a detailed information will pop up with different possible options: ...@@ -71,8 +71,7 @@ entry, a detailed information will pop up with different possible options:
- [Create issue](#creating-an-issue-for-a-vulnerability): The new issue will - [Create issue](#creating-an-issue-for-a-vulnerability): The new issue will
have the title and description pre-populated with the information from the have the title and description pre-populated with the information from the
vulnerability report and will be created as [confidential](../project/issues/confidential_issues.md) by default. vulnerability report and will be created as [confidential](../project/issues/confidential_issues.md) by default.
- [Solution](#solutions-for-vulnerabilities): For some vulnerabilities - [Solution](#solutions-for-vulnerabilities-auto-remediation): For some vulnerabilities,
([Dependency Scanning](dependency_scanning/index.md) and [Container Scanning](container_scanning/index.md))
a solution is provided for how to fix the vulnerability. a solution is provided for how to fix the vulnerability.
![Interacting with security reports](img/interactive_reports.png) ![Interacting with security reports](img/interactive_reports.png)
...@@ -109,17 +108,16 @@ the vulnerability will now have an associated issue next to the name. ...@@ -109,17 +108,16 @@ the vulnerability will now have an associated issue next to the name.
![Linked issue in the group security dashboard](img/issue.png) ![Linked issue in the group security dashboard](img/issue.png)
### Solutions for vulnerabilities ### Solutions for vulnerabilities (auto-remediation)
> Introduced in [GitLab Ultimate](https://about.gitlab.com/pricing) 11.7. > [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/5656) in [GitLab Ultimate](https://about.gitlab.com/pricing) 11.7.
CAUTION: **Warning:**
Automatic Patch creation is only available for a subset of
[Dependency Scanning](dependency_scanning/index.md). At the moment only Node.JS
projects managed with yarn are supported.
Some vulnerabilities can be fixed by applying the solution that GitLab Some vulnerabilities can be fixed by applying the solution that GitLab
automatically generates. automatically generates. The following scanners are supported:
- [Dependency Scanning](dependency_scanning/index.md):
Automatic Patch creation is only available for Node.JS projects managed with
`yarn`.
#### Manually applying the suggested patch #### Manually applying the suggested patch
...@@ -136,13 +134,12 @@ generated by GitLab. To apply the fix: ...@@ -136,13 +134,12 @@ generated by GitLab. To apply the fix:
#### Creating a merge request from a vulnerability #### Creating a merge request from a vulnerability
> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/9224) in > [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/9224) in [GitLab Ultimate](https://about.gitlab.com/pricing) 11.9.
> [GitLab Ultimate](https://about.gitlab.com/pricing) 11.9.
In certain cases, GitLab will allow you to create a merge request that will In certain cases, GitLab will allow you to create a merge request that will
automatically remediate the vulnerability. Any vulnerability that has a automatically remediate the vulnerability. Any vulnerability that has a
[solution](#solutions-for-vulnerabilities) can have a merge request created to [solution](#solutions-for-vulnerabilities-auto-remediation) can have a merge
automatically solve the issue. request created to automatically solve the issue.
If this action is available there will be a **Create merge request** button in the vulnerability modal. If this action is available there will be a **Create merge request** button in the vulnerability modal.
Clicking on this button will create a merge request to apply the solution onto the source branch. Clicking on this button will create a merge request to apply the solution onto the source branch.
......
...@@ -53,9 +53,9 @@ write in the `.gitlab-ci.yml` the script you want to run so ...@@ -53,9 +53,9 @@ write in the `.gitlab-ci.yml` the script you want to run so
GitLab Runner will do it for you. It looks more complicated than it GitLab Runner will do it for you. It looks more complicated than it
is. What you need to tell the Runner: is. What you need to tell the Runner:
``` ```sh
$ gem install jekyll gem install jekyll
$ jekyll build jekyll build
``` ```
### Script ### Script
......
...@@ -134,13 +134,13 @@ There are two ways to manually do the same thing as automatic uploading (describ ...@@ -134,13 +134,13 @@ There are two ways to manually do the same thing as automatic uploading (describ
**Option 1: rake task** **Option 1: rake task**
``` ```sh
$ rake gitlab:lfs:migrate rake gitlab:lfs:migrate
``` ```
**Option 2: rails console** **Option 2: rails console**
``` ```sh
$ sudo gitlab-rails console # Login to rails console $ sudo gitlab-rails console # Login to rails console
> # Upload LFS files manually > # Upload LFS files manually
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment