Add latest changes from gitlab-org/gitlab@master

This commit is contained in:
GitLab Bot 2020-01-23 06:08:32 +00:00
parent ccaa944882
commit 0f8c2334f0
52 changed files with 195 additions and 153 deletions

View File

@ -18,7 +18,6 @@ export function startPollingDetails({ commit }, endpoint) {
data: { endpoint }, data: { endpoint },
successCallback: ({ data }) => { successCallback: ({ data }) => {
if (!data) { if (!data) {
detailPoll.restart();
return; return;
} }
@ -43,7 +42,6 @@ export function startPollingStacktrace({ commit }, endpoint) {
data: { endpoint }, data: { endpoint },
successCallback: ({ data }) => { successCallback: ({ data }) => {
if (!data) { if (!data) {
stackTracePoll.restart();
return; return;
} }
commit(types.SET_STACKTRACE_DATA, data.error); commit(types.SET_STACKTRACE_DATA, data.error);

View File

@ -6,7 +6,7 @@
Mattermost Mattermost
.col-sm-10 .col-sm-10
.form-check.js-toggle-container .form-check.js-toggle-container
.js-toggle-button.form-check-input= f.check_box(:create_chat_team, { checked: true }, true, false) .js-toggle-button.form-check-input= f.check_box(:create_chat_team, { checked: false }, true, false)
= f.label :create_chat_team, class: 'form-check-label' do = f.label :create_chat_team, class: 'form-check-label' do
= _('Create a Mattermost team for this group') = _('Create a Mattermost team for this group')
%br %br

View File

@ -0,0 +1,5 @@
---
title: Default the `creation of a Mattermost team` checkbox to false
merge_request: 23329
author: briankabiro
type: changed

View File

@ -0,0 +1,5 @@
---
title: Make rake -T output more consistent
merge_request: 23550
author:
type: other

View File

@ -0,0 +1,5 @@
---
title: Ensure that error tracking frontend only polls when required
merge_request: 23305
author:
type: fixed

View File

@ -105,7 +105,7 @@ bundle exec rake file_hooks:validate RAILS_ENV=production
Example of output: Example of output:
``` ```plaintext
Validating file hooks from /plugins directory Validating file hooks from /plugins directory
* /home/git/gitlab/plugins/save_to_file.clj succeed (zero exit code) * /home/git/gitlab/plugins/save_to_file.clj succeed (zero exit code)
* /home/git/gitlab/plugins/save_to_file.rb failure (non-zero exit code) * /home/git/gitlab/plugins/save_to_file.rb failure (non-zero exit code)

View File

@ -45,7 +45,7 @@ query.
## Can I `git push` to a **secondary** node? ## Can I `git push` to a **secondary** node?
Yes! Pushing directly to a **secondary** node (for both HTTP and SSH, including Git LFS) was [introduced](https://about.gitlab.com/blog/2018/09/22/gitlab-11-3-released/) in [GitLab Premium](https://about.gitlab.com/pricing/#self-managed) 11.3. Yes! Pushing directly to a **secondary** node (for both HTTP and SSH, including Git LFS) was [introduced](https://about.gitlab.com/releases/2018/09/22/gitlab-11-3-released/) in [GitLab Premium](https://about.gitlab.com/pricing/#self-managed) 11.3.
## How long does it take to have a commit replicated to a **secondary** node? ## How long does it take to have a commit replicated to a **secondary** node?

View File

@ -63,7 +63,7 @@ Keep in mind that:
- Get user data for logins (API). - Get user data for logins (API).
- Replicate repositories, LFS Objects, and Attachments (HTTPS + JWT). - Replicate repositories, LFS Objects, and Attachments (HTTPS + JWT).
- Since GitLab Premium 10.0, the **primary** node no longer talks to **secondary** nodes to notify for changes (API). - Since GitLab Premium 10.0, the **primary** node no longer talks to **secondary** nodes to notify for changes (API).
- Pushing directly to a **secondary** node (for both HTTP and SSH, including Git LFS) was [introduced](https://about.gitlab.com/blog/2018/09/22/gitlab-11-3-released/) in [GitLab Premium](https://about.gitlab.com/pricing/#self-managed) 11.3. - Pushing directly to a **secondary** node (for both HTTP and SSH, including Git LFS) was [introduced](https://about.gitlab.com/releases/2018/09/22/gitlab-11-3-released/) in [GitLab Premium](https://about.gitlab.com/pricing/#self-managed) 11.3.
- There are [limitations](#current-limitations) in the current implementation. - There are [limitations](#current-limitations) in the current implementation.
### Architecture ### Architecture

View File

@ -2,8 +2,8 @@
The following security review of the Geo feature set focuses on security aspects of The following security review of the Geo feature set focuses on security aspects of
the feature as they apply to customers running their own GitLab instances. The review the feature as they apply to customers running their own GitLab instances. The review
questions are based in part on the [OWASP Application Security Verification Standard Project](https://www.owasp.org/index.php/Category:OWASP_Application_Security_Verification_Standard_Project) questions are based in part on the [OWASP Application Security Verification Standard Project](https://owasp.org/www-project-application-security-verification-standard/)
from [owasp.org](https://www.owasp.org/index.php/Main_Page). from [owasp.org](https://www.owasp.org/).
## Business Model ## Business Model

View File

@ -4,7 +4,7 @@
After you set up the [database replication and configure the Geo nodes][req], use your closest GitLab node as you would a normal standalone GitLab instance. After you set up the [database replication and configure the Geo nodes][req], use your closest GitLab node as you would a normal standalone GitLab instance.
Pushing directly to a **secondary** node (for both HTTP, SSH including Git LFS) was [introduced](https://about.gitlab.com/blog/2018/09/22/gitlab-11-3-released/) in [GitLab Premium](https://about.gitlab.com/pricing/#self-managed) 11.3. Pushing directly to a **secondary** node (for both HTTP, SSH including Git LFS) was [introduced](https://about.gitlab.com/releases/2018/09/22/gitlab-11-3-released/) in [GitLab Premium](https://about.gitlab.com/pricing/#self-managed) 11.3.
Example of the output you will see when pushing to a **secondary** node: Example of the output you will see when pushing to a **secondary** node:

View File

@ -98,7 +98,7 @@ The Pages daemon doesn't listen to the outside world.
1. Install the Pages daemon: 1. Install the Pages daemon:
``` ```bash
cd /home/git cd /home/git
sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-pages.git sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-pages.git
cd gitlab-pages cd gitlab-pages
@ -160,7 +160,7 @@ outside world.
1. Install the Pages daemon: 1. Install the Pages daemon:
``` ```bash
cd /home/git cd /home/git
sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-pages.git sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-pages.git
cd gitlab-pages cd gitlab-pages
@ -225,7 +225,7 @@ world. Custom domains are supported, but no TLS.
1. Install the Pages daemon: 1. Install the Pages daemon:
``` ```bash
cd /home/git cd /home/git
sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-pages.git sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-pages.git
cd gitlab-pages cd gitlab-pages
@ -290,7 +290,7 @@ world. Custom domains and TLS are supported.
1. Install the Pages daemon: 1. Install the Pages daemon:
``` ```bash
cd /home/git cd /home/git
sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-pages.git sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-pages.git
cd gitlab-pages cd gitlab-pages
@ -353,20 +353,20 @@ not remove the backslashes.
If your GitLab Pages domain is `example.io`, replace: If your GitLab Pages domain is `example.io`, replace:
```bash ```nginx
server_name ~^.*\.YOUR_GITLAB_PAGES\.DOMAIN$; server_name ~^.*\.YOUR_GITLAB_PAGES\.DOMAIN$;
``` ```
with: with:
``` ```nginx
server_name ~^.*\.example\.io$; server_name ~^.*\.example\.io$;
``` ```
If you are using a subdomain, make sure to escape all dots (`.`) except from If you are using a subdomain, make sure to escape all dots (`.`) except from
the first one with a backslash (\). For example `pages.example.io` would be: the first one with a backslash (\). For example `pages.example.io` would be:
``` ```nginx
server_name ~^.*\.pages\.example\.io$; server_name ~^.*\.pages\.example\.io$;
``` ```

View File

@ -33,7 +33,7 @@ integrity check described previously.
**Omnibus Installation** **Omnibus Installation**
``` ```bash
sudo gitlab-rake gitlab:git:fsck sudo gitlab-rake gitlab:git:fsck
``` ```
@ -58,7 +58,7 @@ Currently, integrity checks are supported for the following types of file:
**Omnibus Installation** **Omnibus Installation**
``` ```bash
sudo gitlab-rake gitlab:artifacts:check sudo gitlab-rake gitlab:artifacts:check
sudo gitlab-rake gitlab:lfs:check sudo gitlab-rake gitlab:lfs:check
sudo gitlab-rake gitlab:uploads:check sudo gitlab-rake gitlab:uploads:check
@ -90,7 +90,7 @@ sudo gitlab-rake gitlab:uploads:check BATCH=100 ID_FROM=50 ID_TO=250
Example output: Example output:
``` ```bash
$ sudo gitlab-rake gitlab:uploads:check $ sudo gitlab-rake gitlab:uploads:check
Checking integrity of Uploads Checking integrity of Uploads
- 1..1350: Failures: 0 - 1..1350: Failures: 0
@ -107,7 +107,7 @@ Done!
Example verbose output: Example verbose output:
``` ```bash
$ sudo gitlab-rake gitlab:uploads:check VERBOSE=1 $ sudo gitlab-rake gitlab:uploads:check VERBOSE=1
Checking integrity of Uploads Checking integrity of Uploads
- 1..1350: Failures: 0 - 1..1350: Failures: 0

View File

@ -11,7 +11,7 @@ This is equivalent of running `git repack -d` on a _bare_ repository.
**Omnibus Installation** **Omnibus Installation**
``` ```bash
sudo gitlab-rake geo:git:housekeeping:incremental_repack sudo gitlab-rake geo:git:housekeeping:incremental_repack
``` ```
@ -29,7 +29,7 @@ when this is enabled in GitLab.
**Omnibus Installation** **Omnibus Installation**
``` ```bash
sudo gitlab-rake geo:git:housekeeping:full_repack sudo gitlab-rake geo:git:housekeeping:full_repack
``` ```
@ -46,7 +46,7 @@ a reachability bitmap index when this is enabled in GitLab.
**Omnibus Installation** **Omnibus Installation**
``` ```bash
sudo gitlab-rake geo:git:housekeeping:gc sudo gitlab-rake geo:git:housekeeping:gc
``` ```
@ -63,7 +63,7 @@ can remove them using the rake task `geo:run_orphaned_project_registry_cleaner`:
**Omnibus Installation** **Omnibus Installation**
``` ```bash
sudo gitlab-rake geo:run_orphaned_project_registry_cleaner sudo gitlab-rake geo:run_orphaned_project_registry_cleaner
``` ```

View File

@ -9,7 +9,7 @@ using the command below.
**Omnibus Installation** **Omnibus Installation**
``` ```bash
sudo gitlab-rake gitlab:ldap:check sudo gitlab-rake gitlab:ldap:check
``` ```
@ -41,7 +41,7 @@ instead.
**Omnibus Installation** **Omnibus Installation**
``` ```bash
sudo gitlab-rake gitlab:ldap:group_sync sudo gitlab-rake gitlab:ldap:group_sync
``` ```
@ -101,7 +101,7 @@ sudo gitlab-rake gitlab:ldap:rename_provider[ldapmain,ldapmycompany]
Example output: Example output:
``` ```plaintext
100 users with provider 'ldapmain' will be updated to 'ldapmycompany'. 100 users with provider 'ldapmain' will be updated to 'ldapmycompany'.
If the new provider is incorrect, users will be unable to sign in. If the new provider is incorrect, users will be unable to sign in.
Do you want to continue (yes/no)? yes Do you want to continue (yes/no)? yes
@ -128,7 +128,7 @@ bundle exec rake gitlab:ldap:rename_provider RAILS_ENV=production
**Example output:** **Example output:**
``` ```plaintext
What is the old provider? Ex. 'ldapmain': ldapmain What is the old provider? Ex. 'ldapmain': ldapmain
What is the new provider? Ex. 'ldapcustom': ldapmycompany What is the new provider? Ex. 'ldapcustom': ldapmycompany
``` ```

View File

@ -6,19 +6,19 @@ This command gathers information about your GitLab installation and the System i
**Omnibus Installation** **Omnibus Installation**
``` ```bash
sudo gitlab-rake gitlab:env:info sudo gitlab-rake gitlab:env:info
``` ```
**Source Installation** **Source Installation**
``` ```bash
bundle exec rake gitlab:env:info RAILS_ENV=production bundle exec rake gitlab:env:info RAILS_ENV=production
``` ```
Example output: Example output:
``` ```plaintext
System information System information
System: Debian 7.8 System: Debian 7.8
Current User: git Current User: git
@ -66,13 +66,13 @@ You may also have a look at our Troubleshooting Guides:
**Omnibus Installation** **Omnibus Installation**
``` ```bash
sudo gitlab-rake gitlab:check sudo gitlab-rake gitlab:check
``` ```
**Source Installation** **Source Installation**
``` ```bash
bundle exec rake gitlab:check RAILS_ENV=production bundle exec rake gitlab:check RAILS_ENV=production
``` ```
@ -80,7 +80,7 @@ NOTE: Use `SANITIZE=true` for `gitlab:check` if you want to omit project names f
Example output: Example output:
``` ```plaintext
Checking Environment ... Checking Environment ...
Git configured for git user? ... yes Git configured for git user? ... yes
@ -129,18 +129,18 @@ In some case it is necessary to rebuild the `authorized_keys` file.
**Omnibus Installation** **Omnibus Installation**
``` ```bash
sudo gitlab-rake gitlab:shell:setup sudo gitlab-rake gitlab:shell:setup
``` ```
**Source Installation** **Source Installation**
``` ```bash
cd /home/git/gitlab cd /home/git/gitlab
sudo -u git -H bundle exec rake gitlab:shell:setup RAILS_ENV=production sudo -u git -H bundle exec rake gitlab:shell:setup RAILS_ENV=production
``` ```
``` ```plaintext
This will rebuild an authorized_keys file. This will rebuild an authorized_keys file.
You will lose any data stored in authorized_keys file. You will lose any data stored in authorized_keys file.
Do you want to continue (yes/no)? yes Do you want to continue (yes/no)? yes
@ -153,13 +153,13 @@ clear Redis' cache.
**Omnibus Installation** **Omnibus Installation**
``` ```bash
sudo gitlab-rake cache:clear sudo gitlab-rake cache:clear
``` ```
**Source Installation** **Source Installation**
``` ```bash
cd /home/git/gitlab cd /home/git/gitlab
sudo -u git -H bundle exec rake cache:clear RAILS_ENV=production sudo -u git -H bundle exec rake cache:clear RAILS_ENV=production
``` ```
@ -174,7 +174,7 @@ Omnibus packages.
**Source Installation** **Source Installation**
``` ```bash
cd /home/git/gitlab cd /home/git/gitlab
sudo -u git -H bundle exec rake gitlab:assets:compile RAILS_ENV=production sudo -u git -H bundle exec rake gitlab:assets:compile RAILS_ENV=production
``` ```
@ -194,13 +194,13 @@ in the GitLab Performance Monitoring database.
**Omnibus Installation** **Omnibus Installation**
``` ```bash
sudo gitlab-rake gitlab:track_deployment sudo gitlab-rake gitlab:track_deployment
``` ```
**Source Installation** **Source Installation**
``` ```bash
cd /home/git/gitlab cd /home/git/gitlab
sudo -u git -H bundle exec rake gitlab:track_deployment RAILS_ENV=production sudo -u git -H bundle exec rake gitlab:track_deployment RAILS_ENV=production
``` ```
@ -213,13 +213,13 @@ is included to help you with this:
**Omnibus Installation** **Omnibus Installation**
``` ```bash
sudo gitlab-rake gitlab:tcp_check[example.com,80] sudo gitlab-rake gitlab:tcp_check[example.com,80]
``` ```
**Source Installation** **Source Installation**
``` ```bash
cd /home/git/gitlab cd /home/git/gitlab
sudo -u git -H bundle exec rake gitlab:tcp_check[example.com,80] RAILS_ENV=production sudo -u git -H bundle exec rake gitlab:tcp_check[example.com,80] RAILS_ENV=production
``` ```
@ -279,6 +279,6 @@ This could be as a result of [updating existing metrics](../../development/prome
To re-import the metrics you can run: To re-import the metrics you can run:
```sh ```bash
sudo gitlab-rake metrics:setup_common_metrics sudo gitlab-rake metrics:setup_common_metrics
``` ```

View File

@ -659,8 +659,6 @@ procfile exec` to replicate the environment where your application will run.
#### Workers #### Workers
> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/30628) in GitLab 12.6, `.gitlab/auto-deploy-values.yaml` will be used by default for Helm upgrades.
Some web applications need to run extra deployments for "worker processes". For Some web applications need to run extra deployments for "worker processes". For
example, it is common in a Rails application to have a separate worker process example, it is common in a Rails application to have a separate worker process
to run background tasks like sending emails. to run background tasks like sending emails.
@ -683,17 +681,8 @@ need to:
ensure it's passed into your deployments. ensure it's passed into your deployments.
Once you have configured your worker to respond to health checks, run a Sidekiq Once you have configured your worker to respond to health checks, run a Sidekiq
worker for your Rails application. For: worker for your Rails application. You can enable workers by setting the
following in the [`.gitlab/auto-deploy-values.yaml` file](#customize-values-for-helm-chart):
- GitLab 12.6 and later, either:
- Add a file named `.gitlab/auto-deploy-values.yaml` to your repository. It will
be automatically used if found.
- Add a file with a different name or path to the repository, and override the value of the
`HELM_UPGRADE_VALUES_FILE` variable with the path and name.
- GitLab 12.5 and earlier, run the worker with the `--values` parameter that specifies
a file in the repository.
In any case, the file must contain the following:
```yml ```yml
workers: workers:
@ -927,8 +916,21 @@ repo or by specifying a project variable:
- **Project variable** - Create a [project variable](../../ci/variables/README.md#gitlab-cicd-environment-variables) - **Project variable** - Create a [project variable](../../ci/variables/README.md#gitlab-cicd-environment-variables)
`AUTO_DEVOPS_CHART` with the URL of a custom chart to use or create two project variables `AUTO_DEVOPS_CHART_REPOSITORY` with the URL of a custom chart repository and `AUTO_DEVOPS_CHART` with the path to the chart. `AUTO_DEVOPS_CHART` with the URL of a custom chart to use or create two project variables `AUTO_DEVOPS_CHART_REPOSITORY` with the URL of a custom chart repository and `AUTO_DEVOPS_CHART` with the path to the chart.
You can also make use of the `HELM_UPGRADE_EXTRA_ARGS` environment variable to override the default values in the `values.yaml` file in the [default Helm chart](https://gitlab.com/gitlab-org/charts/auto-deploy-app). ### Customize values for Helm Chart
To apply your own `values.yaml` file to all Helm upgrade commands in Auto Deploy set `HELM_UPGRADE_EXTRA_ARGS` to `--values my-values.yaml`.
> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/30628) in GitLab 12.6, `.gitlab/auto-deploy-values.yaml` will be used by default for Helm upgrades.
You can override the default values in the `values.yaml` file in the [default Helm chart](https://gitlab.com/gitlab-org/charts/auto-deploy-app).
This can be achieved by either:
- Adding a file named `.gitlab/auto-deploy-values.yaml` to your repository. It will
be automatically used if found.
- Adding a file with a different name or path to the repository, and set the
`HELM_UPGRADE_VALUES_FILE` [environment variable](#environment-variables) with the path and name.
NOTE: **Note:**
For GitLab 12.5 and earlier, the `HELM_UPGRADE_EXTRA_ARGS` environment variable can be used to override the default chart values.
To do so, set `HELM_UPGRADE_EXTRA_ARGS` to `--values my-values.yaml`.
### Custom Helm chart per environment ### Custom Helm chart per environment

View File

@ -78,7 +78,7 @@ service: gitlab-example
provider: provider:
name: aws name: aws
runtime: nodejs10.x runtime: nodejs10.x
functions: functions:
hello: hello:
handler: src/handler.hello handler: src/handler.hello
@ -222,7 +222,7 @@ From there, you can reference them in your functions as well.
Remember to add `A_VARIABLE` to your GitLab CI variables under **Settings > CI/CD > Variables**, and it will get picked up and deployed with your function. Remember to add `A_VARIABLE` to your GitLab CI variables under **Settings > CI/CD > Variables**, and it will get picked up and deployed with your function.
NOTE: **Note:** NOTE: **Note:**
Anyone with access to the AWS environemnt may be able to see the values of those Anyone with access to the AWS environment may be able to see the values of those
variables persisted in the lambda definition. variables persisted in the lambda definition.
### Setting up CORS ### Setting up CORS

View File

@ -12,9 +12,9 @@ The [Prometheus service](../prometheus.md) must be enabled.
| Name | Query | | Name | Query |
| ---- | ----- | | ---- | ----- |
| Throughput (req/sec) | sum(aws_elb_request_count_sum{%{environment_filter}}) / 60 | | Throughput (req/sec) | `sum(aws_elb_request_count_sum{%{environment_filter}}) / 60` |
| Latency (ms) | avg(aws_elb_latency_average{%{environment_filter}}) * 1000 | | Latency (ms) | `avg(aws_elb_latency_average{%{environment_filter}}) * 1000` |
| HTTP Error Rate (%) | sum(aws_elb_httpcode_backend_5_xx_sum{%{environment_filter}}) / sum(aws_elb_request_count_sum{%{environment_filter}}) | | HTTP Error Rate (%) | `sum(aws_elb_httpcode_backend_5_xx_sum{%{environment_filter}}) / sum(aws_elb_request_count_sum{%{environment_filter}})` |
## Configuring Prometheus to monitor for Cloudwatch metrics ## Configuring Prometheus to monitor for Cloudwatch metrics

View File

@ -62,8 +62,8 @@ Data will be encoded with a comma as the column delimiter, with `"` used to quot
| Confidential | `Yes` or `No` | | Confidential | `Yes` or `No` |
| Locked | `Yes` or `No` | | Locked | `Yes` or `No` |
| Due Date | Formated as `YYYY-MM-DD` | | Due Date | Formated as `YYYY-MM-DD` |
| Created At (UTC) | Formated as `YYYY-MM-DD HH:MM:SS` | | Created At (UTC) | Formatted as `YYYY-MM-DD HH:MM:SS` |
| Updated At (UTC) | Formated as `YYYY-MM-DD HH:MM:SS` | | Updated At (UTC) | Formatted as `YYYY-MM-DD HH:MM:SS` |
| Milestone | Title of the issue milestone | | Milestone | Title of the issue milestone |
| Weight | Issue weight | | Weight | Issue weight |
| Labels | Title of any labels joined with a `,` | | Labels | Title of any labels joined with a `,` |

View File

@ -17,7 +17,7 @@ or through the GitLab UI.
This document describes the several ways to create a merge request. This document describes the several ways to create a merge request.
When you start a new merge request, regarless of the method, When you start a new merge request, regardless of the method,
you'll be taken to the [**New Merge Request** page](#new-merge-request-page) you'll be taken to the [**New Merge Request** page](#new-merge-request-page)
to fill it with information about the merge request. to fill it with information about the merge request.
@ -29,9 +29,9 @@ button and start a merge request from there.
On the **New Merge Request** page, start by filling in the title On the **New Merge Request** page, start by filling in the title
and description for the merge request. If there are are already and description for the merge request. If there are are already
commits on the branch, the title will be pre-filled with the first commits on the branch, the title will be prefilled with the first
line of the first commit message, and the description will be line of the first commit message, and the description will be
pre-filled with any additional lines in the commit message. prefilled with any additional lines in the commit message.
The title is the only field that is mandatory in all cases. The title is the only field that is mandatory in all cases.
From there, you can fill it with information (title, description, From there, you can fill it with information (title, description,

View File

@ -63,7 +63,7 @@ merge request from the UI, until you make all relevant jobs pass.
When this setting is enabled, a merge request is prevented from being merged if there is no pipeline. This may conflict with some use cases where [`only/except`](../../../ci/yaml/README.md#onlyexcept-advanced) rules are used and they don't generate any pipelines. When this setting is enabled, a merge request is prevented from being merged if there is no pipeline. This may conflict with some use cases where [`only/except`](../../../ci/yaml/README.md#onlyexcept-advanced) rules are used and they don't generate any pipelines.
Users that expect to be able to merge a merge request in this scenario should ensure that [there is always a pipeline](https://gitlab.com/gitlab-org/gitlab-foss/issues/54226) and that it's succesful. Users that expect to be able to merge a merge request in this scenario should ensure that [there is always a pipeline](https://gitlab.com/gitlab-org/gitlab-foss/issues/54226) and that it's successful.
For example, to that on merge requests there is always a passing job even though `only/except` rules may not generate any other jobs: For example, to that on merge requests there is always a passing job even though `only/except` rules may not generate any other jobs:

View File

@ -38,7 +38,7 @@ repository. There, you will have full [Owner](../../permissions.md)
access, so you can set it up as you please. access, so you can set it up as you please.
CAUTION: **CAUTION:** CAUTION: **CAUTION:**
From GitLab 12.6 onwards, if the [visibility of an upstream project is reduced](../../../public_access/public_access.md#reducing-visibility) From GitLab 12.6 onward, if the [visibility of an upstream project is reduced](../../../public_access/public_access.md#reducing-visibility)
in any way, the fork relationship with all its forks will be removed. in any way, the fork relationship with all its forks will be removed.
CAUTION: **Caution:** CAUTION: **Caution:**

View File

@ -49,7 +49,7 @@ After making your changes, click the **Commit** button in the bottom left to
review the list of changed files. If you're using GitLab 12.6 or older versions, review the list of changed files. If you're using GitLab 12.6 or older versions,
click on each file to review the changes and tick the item to stage a file. click on each file to review the changes and tick the item to stage a file.
From [GitLab 12.7 onwards](https://gitlab.com/gitlab-org/gitlab/issues/33441), From [GitLab 12.7 onward](https://gitlab.com/gitlab-org/gitlab/issues/33441),
all your files will be automatically staged. You still have the option to unstage all your files will be automatically staged. You still have the option to unstage
changes in case you want to submit them in multiple smaller commits. To unstage changes in case you want to submit them in multiple smaller commits. To unstage
a change, simply click the **Unstage** button when a staged file is open, or click a change, simply click the **Unstage** button when a staged file is open, or click

View File

@ -3,7 +3,7 @@ namespace :cache do
REDIS_CLEAR_BATCH_SIZE = 1000 # There seems to be no speedup when pushing beyond 1,000 REDIS_CLEAR_BATCH_SIZE = 1000 # There seems to be no speedup when pushing beyond 1,000
REDIS_SCAN_START_STOP = '0'.freeze # Magic value, see http://redis.io/commands/scan REDIS_SCAN_START_STOP = '0'.freeze # Magic value, see http://redis.io/commands/scan
desc "GitLab | Clear redis cache" desc "GitLab | Cache | Clear redis cache"
task redis: :environment do task redis: :environment do
Gitlab::Redis::Cache.with do |redis| Gitlab::Redis::Cache.with do |redis|
cache_key_pattern = %W[#{Gitlab::Redis::Cache::CACHE_NAMESPACE}* cache_key_pattern = %W[#{Gitlab::Redis::Cache::CACHE_NAMESPACE}*

View File

@ -1,6 +1,6 @@
namespace :ci do namespace :ci do
namespace :cleanup do namespace :cleanup do
desc "GitLab CI | Clean running builds" desc "GitLab | CI | Clean running builds"
task builds: :environment do task builds: :environment do
Ci::Build.running.update_all(status: 'canceled') Ci::Build.running.update_all(status: 'canceled')
end end

View File

@ -1,7 +1,7 @@
task dev: ["dev:setup"] task dev: ["dev:setup"]
namespace :dev do namespace :dev do
desc "GitLab | Setup developer environment (db, fixtures)" desc "GitLab | Dev | Setup developer environment (db, fixtures)"
task setup: :environment do task setup: :environment do
ENV['force'] = 'yes' ENV['force'] = 'yes'
Rake::Task["gitlab:setup"].invoke Rake::Task["gitlab:setup"].invoke
@ -12,7 +12,7 @@ namespace :dev do
Rake::Task["gitlab:shell:setup"].invoke Rake::Task["gitlab:shell:setup"].invoke
end end
desc "GitLab | Eager load application" desc "GitLab | Dev | Eager load application"
task load: :environment do task load: :environment do
Rails.configuration.eager_load = true Rails.configuration.eager_load = true
Rails.application.eager_load! Rails.application.eager_load!

View File

@ -1,7 +1,7 @@
require 'logger' require 'logger'
require 'resolv-replace' require 'resolv-replace'
desc "GitLab | Migrate files for artifacts to comply with new storage format" desc 'GitLab | Artifacts | Migrate files for artifacts to comply with new storage format'
namespace :gitlab do namespace :gitlab do
namespace :artifacts do namespace :artifacts do
task migrate: :environment do task migrate: :environment do

View File

@ -3,18 +3,18 @@ require 'active_record/fixtures'
namespace :gitlab do namespace :gitlab do
namespace :backup do namespace :backup do
# Create backup of GitLab system # Create backup of GitLab system
desc "GitLab | Create a backup of the GitLab system" desc 'GitLab | Backup | Create a backup of the GitLab system'
task create: :gitlab_environment do task create: :gitlab_environment do
warn_user_is_not_gitlab warn_user_is_not_gitlab
Rake::Task["gitlab:backup:db:create"].invoke Rake::Task['gitlab:backup:db:create'].invoke
Rake::Task["gitlab:backup:repo:create"].invoke Rake::Task['gitlab:backup:repo:create'].invoke
Rake::Task["gitlab:backup:uploads:create"].invoke Rake::Task['gitlab:backup:uploads:create'].invoke
Rake::Task["gitlab:backup:builds:create"].invoke Rake::Task['gitlab:backup:builds:create'].invoke
Rake::Task["gitlab:backup:artifacts:create"].invoke Rake::Task['gitlab:backup:artifacts:create'].invoke
Rake::Task["gitlab:backup:pages:create"].invoke Rake::Task['gitlab:backup:pages:create'].invoke
Rake::Task["gitlab:backup:lfs:create"].invoke Rake::Task['gitlab:backup:lfs:create'].invoke
Rake::Task["gitlab:backup:registry:create"].invoke Rake::Task['gitlab:backup:registry:create'].invoke
backup = Backup::Manager.new(progress) backup = Backup::Manager.new(progress)
backup.pack backup.pack
@ -28,7 +28,7 @@ namespace :gitlab do
end end
# Restore backup of GitLab system # Restore backup of GitLab system
desc 'GitLab | Restore a previously created backup' desc 'GitLab | Backup | Restore a previously created backup'
task restore: :gitlab_environment do task restore: :gitlab_environment do
warn_user_is_not_gitlab warn_user_is_not_gitlab

View File

@ -1,6 +1,6 @@
namespace :gitlab do namespace :gitlab do
namespace :import do namespace :import do
desc "GitLab | Add all users to all projects (admin users are added as maintainers)" desc "GitLab | Import | Add all users to all projects (admin users are added as maintainers)"
task all_users_to_all_projects: :environment do |t, args| task all_users_to_all_projects: :environment do |t, args|
user_ids = User.where(admin: false).pluck(:id) user_ids = User.where(admin: false).pluck(:id)
admin_ids = User.where(admin: true).pluck(:id) admin_ids = User.where(admin: true).pluck(:id)
@ -13,7 +13,7 @@ namespace :gitlab do
ProjectMember.add_users_to_projects(project_ids, admin_ids, ProjectMember::MAINTAINER) ProjectMember.add_users_to_projects(project_ids, admin_ids, ProjectMember::MAINTAINER)
end end
desc "GitLab | Add a specific user to all projects (as a developer)" desc "GitLab | Import | Add a specific user to all projects (as a developer)"
task :user_to_projects, [:email] => :environment do |t, args| task :user_to_projects, [:email] => :environment do |t, args|
user = User.find_by(email: args.email) user = User.find_by(email: args.email)
project_ids = Project.pluck(:id) project_ids = Project.pluck(:id)
@ -21,7 +21,7 @@ namespace :gitlab do
ProjectMember.add_users_to_projects(project_ids, Array.wrap(user.id), ProjectMember::DEVELOPER) ProjectMember.add_users_to_projects(project_ids, Array.wrap(user.id), ProjectMember::DEVELOPER)
end end
desc "GitLab | Add all users to all groups (admin users are added as owners)" desc "GitLab | Import | Add all users to all groups (admin users are added as owners)"
task all_users_to_all_groups: :environment do |t, args| task all_users_to_all_groups: :environment do |t, args|
user_ids = User.where(admin: false).pluck(:id) user_ids = User.where(admin: false).pluck(:id)
admin_ids = User.where(admin: true).pluck(:id) admin_ids = User.where(admin: true).pluck(:id)
@ -35,7 +35,7 @@ namespace :gitlab do
end end
end end
desc "GitLab | Add a specific user to all groups (as a developer)" desc "GitLab | Import | Add a specific user to all groups (as a developer)"
task :user_to_groups, [:email] => :environment do |t, args| task :user_to_groups, [:email] => :environment do |t, args|
user = User.find_by_email args.email user = User.find_by_email args.email
groups = Group.all groups = Group.all

View File

@ -5,35 +5,35 @@ namespace :gitlab do
end end
namespace :app do namespace :app do
desc 'GitLab | Check the configuration of the GitLab Rails app' desc 'GitLab | App | Check the configuration of the GitLab Rails app'
task check: :gitlab_environment do task check: :gitlab_environment do
SystemCheck::RakeTask::AppTask.run! SystemCheck::RakeTask::AppTask.run!
end end
end end
namespace :gitlab_shell do namespace :gitlab_shell do
desc "GitLab | Check the configuration of GitLab Shell" desc 'GitLab | GitLab Shell | Check the configuration of GitLab Shell'
task check: :gitlab_environment do task check: :gitlab_environment do
SystemCheck::RakeTask::GitlabShellTask.run! SystemCheck::RakeTask::GitlabShellTask.run!
end end
end end
namespace :gitaly do namespace :gitaly do
desc 'GitLab | Check the health of Gitaly' desc 'GitLab | Gitaly | Check the health of Gitaly'
task check: :gitlab_environment do task check: :gitlab_environment do
SystemCheck::RakeTask::GitalyTask.run! SystemCheck::RakeTask::GitalyTask.run!
end end
end end
namespace :sidekiq do namespace :sidekiq do
desc "GitLab | Check the configuration of Sidekiq" desc 'GitLab | Sidekiq | Check the configuration of Sidekiq'
task check: :gitlab_environment do task check: :gitlab_environment do
SystemCheck::RakeTask::SidekiqTask.run! SystemCheck::RakeTask::SidekiqTask.run!
end end
end end
namespace :incoming_email do namespace :incoming_email do
desc "GitLab | Check the configuration of Reply by email" desc 'GitLab | Incoming Email | Check the configuration of Reply by email'
task check: :gitlab_environment do task check: :gitlab_environment do
SystemCheck::RakeTask::IncomingEmailTask.run! SystemCheck::RakeTask::IncomingEmailTask.run!
end end
@ -48,17 +48,17 @@ namespace :gitlab do
end end
namespace :orphans do namespace :orphans do
desc 'Gitlab | Check for orphaned namespaces and repositories' desc 'Gitlab | Orphans | Check for orphaned namespaces and repositories'
task check: :gitlab_environment do task check: :gitlab_environment do
SystemCheck::RakeTask::OrphansTask.run! SystemCheck::RakeTask::OrphansTask.run!
end end
desc 'GitLab | Check for orphaned namespaces in the repositories path' desc 'GitLab | Orphans | Check for orphaned namespaces in the repositories path'
task check_namespaces: :gitlab_environment do task check_namespaces: :gitlab_environment do
SystemCheck::RakeTask::Orphans::NamespaceTask.run! SystemCheck::RakeTask::Orphans::NamespaceTask.run!
end end
desc 'GitLab | Check for orphaned repositories in the repositories path' desc 'GitLab | Orphans | Check for orphaned repositories in the repositories path'
task check_repositories: :gitlab_environment do task check_repositories: :gitlab_environment do
SystemCheck::RakeTask::Orphans::RepositoryTask.run! SystemCheck::RakeTask::Orphans::RepositoryTask.run!
end end

View File

@ -1,6 +1,6 @@
namespace :gitlab do namespace :gitlab do
namespace :db do namespace :db do
desc 'GitLab | Manually insert schema migration version' desc 'GitLab | DB | Manually insert schema migration version'
task :mark_migration_complete, [:version] => :environment do |_, args| task :mark_migration_complete, [:version] => :environment do |_, args|
unless args[:version] unless args[:version]
puts "Must specify a migration version as an argument".color(:red) puts "Must specify a migration version as an argument".color(:red)
@ -22,7 +22,7 @@ namespace :gitlab do
end end
end end
desc 'Drop all tables' desc 'GitLab | DB | Drop all tables'
task drop_tables: :environment do task drop_tables: :environment do
connection = ActiveRecord::Base.connection connection = ActiveRecord::Base.connection
@ -41,7 +41,7 @@ namespace :gitlab do
tables.each { |t| connection.execute("DROP TABLE IF EXISTS #{connection.quote_table_name(t)} CASCADE") } tables.each { |t| connection.execute("DROP TABLE IF EXISTS #{connection.quote_table_name(t)} CASCADE") }
end end
desc 'Configures the database by running migrate, or by loading the schema and seeding if needed' desc 'GitLab | DB | Configures the database by running migrate, or by loading the schema and seeding if needed'
task configure: :environment do task configure: :environment do
# Check if we have existing db tables # Check if we have existing db tables
# The schema_migrations table will still exist if drop_tables was called # The schema_migrations table will still exist if drop_tables was called
@ -55,7 +55,7 @@ namespace :gitlab do
end end
end end
desc 'Checks if migrations require downtime or not' desc 'GitLab | DB | Checks if migrations require downtime or not'
task :downtime_check, [:ref] => :environment do |_, args| task :downtime_check, [:ref] => :environment do |_, args|
abort 'You must specify a Git reference to compare with' unless args[:ref] abort 'You must specify a Git reference to compare with' unless args[:ref]
@ -71,7 +71,7 @@ namespace :gitlab do
Gitlab::DowntimeCheck.new.check_and_print(migrations) Gitlab::DowntimeCheck.new.check_and_print(migrations)
end end
desc 'Sets up EE specific database functionality' desc 'GitLab | DB | Sets up EE specific database functionality'
if Gitlab.ee? if Gitlab.ee?
task setup_ee: %w[geo:db:drop geo:db:create geo:db:schema:load geo:db:migrate] task setup_ee: %w[geo:db:drop geo:db:create geo:db:schema:load geo:db:migrate]

View File

@ -1,6 +1,6 @@
namespace :gitlab do namespace :gitlab do
namespace :exclusive_lease do namespace :exclusive_lease do
desc 'GitLab | Clear existing exclusive leases for specified scope (default: *)' desc 'GitLab | Exclusive Lease | Clear existing exclusive leases for specified scope (default: *)'
task :clear, [:scope] => [:environment] do |_, args| task :clear, [:scope] => [:environment] do |_, args|
args[:scope].nil? ? Gitlab::ExclusiveLease.reset_all! : Gitlab::ExclusiveLease.reset_all!(args[:scope]) args[:scope].nil? ? Gitlab::ExclusiveLease.reset_all! : Gitlab::ExclusiveLease.reset_all!(args[:scope])
puts 'All exclusive lease entries were removed.' puts 'All exclusive lease entries were removed.'

View File

@ -1,6 +1,6 @@
namespace :gitlab do namespace :gitlab do
namespace :gitaly do namespace :gitaly do
desc "GitLab | Install or upgrade gitaly" desc 'GitLab | Gitaly | Install or upgrade gitaly'
task :install, [:dir, :storage_path, :repo] => :gitlab_environment do |t, args| task :install, [:dir, :storage_path, :repo] => :gitlab_environment do |t, args|
warn_user_is_not_gitlab warn_user_is_not_gitlab

View File

@ -21,7 +21,7 @@ namespace :gitlab do
) )
namespace :graphql do namespace :graphql do
desc 'GitLab | Generate GraphQL docs' desc 'GitLab | GraphQL | Generate GraphQL docs'
task compile_docs: :environment do task compile_docs: :environment do
renderer = Gitlab::Graphql::Docs::Renderer.new(GitlabSchema.graphql_definition, render_options) renderer = Gitlab::Graphql::Docs::Renderer.new(GitlabSchema.graphql_definition, render_options)
@ -30,7 +30,7 @@ namespace :gitlab do
puts "Documentation compiled." puts "Documentation compiled."
end end
desc 'GitLab | Check if GraphQL docs are up to date' desc 'GitLab | GraphQL | Check if GraphQL docs are up to date'
task check_docs: :environment do task check_docs: :environment do
renderer = Gitlab::Graphql::Docs::Renderer.new(GitlabSchema.graphql_definition, render_options) renderer = Gitlab::Graphql::Docs::Renderer.new(GitlabSchema.graphql_definition, render_options)
@ -44,7 +44,7 @@ namespace :gitlab do
end end
end end
desc 'GitLab | Check if GraphQL schemas are up to date' desc 'GitLab | GraphQL | Check if GraphQL schemas are up to date'
task check_schema: :environment do task check_schema: :environment do
idl_doc = File.read(Rails.root.join(OUTPUT_DIR, 'gitlab_schema.graphql')) idl_doc = File.read(Rails.root.join(OUTPUT_DIR, 'gitlab_schema.graphql'))
json_doc = File.read(Rails.root.join(OUTPUT_DIR, 'gitlab_schema.json')) json_doc = File.read(Rails.root.join(OUTPUT_DIR, 'gitlab_schema.json'))

View File

@ -8,7 +8,7 @@ namespace :gitlab do
# Notes: # Notes:
# * The project owner will set to the first administator of the system # * The project owner will set to the first administator of the system
# * Existing projects will be skipped # * Existing projects will be skipped
desc "GitLab | Import bare repositories from repositories -> storages into GitLab project instance" desc "GitLab | Import | Import bare repositories from repositories -> storages into GitLab project instance"
task :repos, [:import_path] => :environment do |_t, args| task :repos, [:import_path] => :environment do |_t, args|
unless args.import_path unless args.import_path
puts 'Please specify an import path that contains the repositories'.color(:red) puts 'Please specify an import path that contains the repositories'.color(:red)

View File

@ -1,16 +1,16 @@
namespace :gitlab do namespace :gitlab do
namespace :import_export do namespace :import_export do
desc "GitLab | Show Import/Export version" desc 'GitLab | Import/Export | Show Import/Export version'
task version: :environment do task version: :environment do
puts "Import/Export v#{Gitlab::ImportExport.version}" puts "Import/Export v#{Gitlab::ImportExport.version}"
end end
desc "GitLab | Display exported DB structure" desc 'GitLab | Import/Export | Display exported DB structure'
task data: :environment do task data: :environment do
puts Gitlab::ImportExport::Config.new.to_h['project_tree'].to_yaml(SortKeys: true) puts Gitlab::ImportExport::Config.new.to_h['project_tree'].to_yaml(SortKeys: true)
end end
desc 'GitLab | Bumps the Import/Export version in fixtures and project templates' desc 'GitLab | Import/Export | Bumps the Import/Export version in fixtures and project templates'
task bump_version: :environment do task bump_version: :environment do
archives = Dir['vendor/project_templates/*.tar.gz'] archives = Dir['vendor/project_templates/*.tar.gz']
archives.push('spec/features/projects/import_export/test_project_export.tar.gz') archives.push('spec/features/projects/import_export/test_project_export.tar.gz')

View File

@ -11,7 +11,7 @@
# #
namespace :gitlab do namespace :gitlab do
namespace :import_export do namespace :import_export do
desc 'EXPERIMENTAL | Import large project archives' desc 'GitLab | Import/Export | EXPERIMENTAL | Import large project archives'
task :import, [:username, :namespace_path, :project_path, :archive_path] => :gitlab_environment do |_t, args| task :import, [:username, :namespace_path, :project_path, :archive_path] => :gitlab_environment do |_t, args|
# Load it here to avoid polluting Rake tasks with Sidekiq test warnings # Load it here to avoid polluting Rake tasks with Sidekiq test warnings
require 'sidekiq/testing' require 'sidekiq/testing'

View File

@ -1,6 +1,6 @@
namespace :gitlab do namespace :gitlab do
namespace :env do namespace :env do
desc "GitLab | Show information about GitLab and its environment" desc 'GitLab | Env | Show information about GitLab and its environment'
task info: :gitlab_environment do task info: :gitlab_environment do
# check if there is an RVM environment # check if there is an RVM environment
rvm_version = run_and_match(%w(rvm --version), /[\d\.]+/).try(:to_s) rvm_version = run_and_match(%w(rvm --version), /[\d\.]+/).try(:to_s)

View File

@ -1,6 +1,6 @@
require 'logger' require 'logger'
desc "GitLab | Migrate LFS objects to remote storage" desc "GitLab | LFS | Migrate LFS objects to remote storage"
namespace :gitlab do namespace :gitlab do
namespace :lfs do namespace :lfs do
task migrate: :environment do task migrate: :environment do

View File

@ -1,7 +1,7 @@
# frozen_string_literal: true # frozen_string_literal: true
namespace :metrics do namespace :metrics do
desc "GitLab | Setup common metrics" desc "GitLab | Metrics | Setup common metrics"
task setup_common_metrics: :gitlab_environment do task setup_common_metrics: :gitlab_environment do
::Gitlab::DatabaseImporters::CommonMetrics::Importer.new.execute ::Gitlab::DatabaseImporters::CommonMetrics::Importer.new.execute
end end

View File

@ -1,6 +1,6 @@
namespace :gitlab do namespace :gitlab do
namespace :shell do namespace :shell do
desc "GitLab | Install or upgrade gitlab-shell" desc "GitLab | Shell | Install or upgrade gitlab-shell"
task :install, [:repo] => :gitlab_environment do |t, args| task :install, [:repo] => :gitlab_environment do |t, args|
warn_user_is_not_gitlab warn_user_is_not_gitlab
@ -54,12 +54,12 @@ namespace :gitlab do
Gitlab::Shell.ensure_secret_token! Gitlab::Shell.ensure_secret_token!
end end
desc "GitLab | Setup gitlab-shell" desc "GitLab | Shell | Setup gitlab-shell"
task setup: :gitlab_environment do task setup: :gitlab_environment do
setup setup
end end
desc "GitLab | Build missing projects" desc "GitLab | Shell | Build missing projects"
task build_missing_projects: :gitlab_environment do task build_missing_projects: :gitlab_environment do
Project.find_each(batch_size: 1000) do |project| Project.find_each(batch_size: 1000) do |project|
path_to_repo = project.repository.path_to_repo path_to_repo = project.repository.path_to_repo

View File

@ -16,7 +16,7 @@ namespace :gitlab do
File.write(path, banner + YAML.dump(object)) File.write(path, banner + YAML.dump(object))
end end
desc 'GitLab | Generate all_queues.yml based on worker definitions' desc 'GitLab | Sidekiq | Generate all_queues.yml based on worker definitions'
task generate: :environment do task generate: :environment do
foss_workers, ee_workers = Gitlab::SidekiqConfig.workers_for_all_queues_yml foss_workers, ee_workers = Gitlab::SidekiqConfig.workers_for_all_queues_yml
@ -27,7 +27,7 @@ namespace :gitlab do
end end
end end
desc 'GitLab | Validate that all_queues.yml matches worker definitions' desc 'GitLab | Sidekiq | Validate that all_queues.yml matches worker definitions'
task check: :environment do task check: :environment do
if Gitlab::SidekiqConfig.all_queues_yml_outdated? if Gitlab::SidekiqConfig.all_queues_yml_outdated?
raise <<~MSG raise <<~MSG

View File

@ -1,6 +1,6 @@
namespace :gitlab do namespace :gitlab do
namespace :two_factor do namespace :two_factor do
desc "GitLab | Disable Two-factor authentication (2FA) for all users" desc "GitLab | 2FA | Disable Two-factor authentication (2FA) for all users"
task disable_for_all_users: :gitlab_environment do task disable_for_all_users: :gitlab_environment do
scope = User.with_two_factor scope = User.with_two_factor
count = scope.count count = scope.count
@ -25,12 +25,12 @@ namespace :gitlab do
@rotator ||= Gitlab::OtpKeyRotator.new(ENV['filename']) @rotator ||= Gitlab::OtpKeyRotator.new(ENV['filename'])
end end
desc "Encrypt user OTP secrets with a new encryption key" desc "GitLab | 2FA | Rotate Key | Encrypt user OTP secrets with a new encryption key"
task apply: :environment do |t, args| task apply: :environment do |t, args|
rotator.rotate!(old_key: ENV['old_key'], new_key: ENV['new_key']) rotator.rotate!(old_key: ENV['old_key'], new_key: ENV['new_key'])
end end
desc "Rollback to secrets encrypted with the old encryption key" desc "GitLab | 2FA | Rotate Key | Rollback to secrets encrypted with the old encryption key"
task rollback: :environment do task rollback: :environment do
rotator.rollback! rotator.rollback!
end end

View File

@ -1,6 +1,6 @@
namespace :gitlab do namespace :gitlab do
namespace :web_hook do namespace :web_hook do
desc "GitLab | Adds a webhook to the projects" desc "GitLab | Webhook | Adds a webhook to the projects"
task add: :environment do task add: :environment do
web_hook_url = ENV['URL'] web_hook_url = ENV['URL']
namespace_path = ENV['NAMESPACE'] namespace_path = ENV['NAMESPACE']
@ -20,7 +20,7 @@ namespace :gitlab do
end end
end end
desc "GitLab | Remove a webhook from the projects" desc "GitLab | Webhook | Remove a webhook from the projects"
task rm: :environment do task rm: :environment do
web_hook_url = ENV['URL'] web_hook_url = ENV['URL']
namespace_path = ENV['NAMESPACE'] namespace_path = ENV['NAMESPACE']
@ -44,7 +44,7 @@ namespace :gitlab do
puts "#{count} webhooks were removed." puts "#{count} webhooks were removed."
end end
desc "GitLab | List webhooks" desc "GitLab | Webhook | List webhooks"
task list: :environment do task list: :environment do
namespace_path = ENV['NAMESPACE'] namespace_path = ENV['NAMESPACE']

View File

@ -1,6 +1,6 @@
namespace :gitlab do namespace :gitlab do
namespace :workhorse do namespace :workhorse do
desc "GitLab | Install or upgrade gitlab-workhorse" desc "GitLab | Workhorse | Install or upgrade gitlab-workhorse"
task :install, [:dir, :repo] => :gitlab_environment do |t, args| task :install, [:dir, :repo] => :gitlab_environment do |t, args|
warn_user_is_not_gitlab warn_user_is_not_gitlab

View File

@ -138,7 +138,7 @@ class GithubRepos
end end
namespace :import do namespace :import do
desc 'Import a GitHub project - Example: import:github[ToKeN,root,root/blah,my/github_repo] (optional my/github_repo)' desc 'GitLab | Import | Import a GitHub project - Example: import:github[ToKeN,root,root/blah,my/github_repo] (optional my/github_repo)'
task :github, [:token, :gitlab_username, :project_path] => :environment do |_t, args| task :github, [:token, :gitlab_username, :project_path] => :environment do |_t, args|
abort 'Project path must be: namespace(s)/project_name'.color(:red) unless args.project_path.include?('/') abort 'Project path must be: namespace(s)/project_name'.color(:red) unless args.project_path.include?('/')

View File

@ -4,7 +4,7 @@ unless Rails.env.production?
ENV['STATIC_VERIFICATION'] = 'true' ENV['STATIC_VERIFICATION'] = 'true'
end end
desc "GitLab | lint | Static verification" desc "GitLab | Lint | Static verification"
task static_verification: %w[ task static_verification: %w[
lint:static_verification_env lint:static_verification_env
dev:load dev:load
@ -12,19 +12,19 @@ unless Rails.env.production?
Gitlab::Utils::Override.verify! Gitlab::Utils::Override.verify!
end end
desc "GitLab | lint | Lint JavaScript files using ESLint" desc "GitLab | Lint | Lint JavaScript files using ESLint"
task :javascript do task :javascript do
Rake::Task['eslint'].invoke Rake::Task['eslint'].invoke
end end
desc "GitLab | lint | Lint HAML files" desc "GitLab | Lint | Lint HAML files"
task :haml do task :haml do
Rake::Task['haml_lint'].invoke Rake::Task['haml_lint'].invoke
rescue RuntimeError # The haml_lint tasks raise a RuntimeError rescue RuntimeError # The haml_lint tasks raise a RuntimeError
exit(1) exit(1)
end end
desc "GitLab | lint | Run several lint checks" desc "GitLab | Lint | Run several lint checks"
task :all do task :all do
status = 0 status = 0

View File

@ -1,12 +1,12 @@
namespace :gitlab do namespace :gitlab do
namespace :db do namespace :db do
desc 'GitLab | Adds primary keys to tables that only have composite unique keys' desc 'GitLab | DB | Adds primary keys to tables that only have composite unique keys'
task composite_primary_keys_add: :environment do task composite_primary_keys_add: :environment do
require Rails.root.join('db/optional_migrations/composite_primary_keys') require Rails.root.join('db/optional_migrations/composite_primary_keys')
CompositePrimaryKeysMigration.new.up CompositePrimaryKeysMigration.new.up
end end
desc 'GitLab | Removes previously added composite primary keys' desc 'GitLab | DB | Removes previously added composite primary keys'
task composite_primary_keys_drop: :environment do task composite_primary_keys_drop: :environment do
require Rails.root.join('db/optional_migrations/composite_primary_keys') require Rails.root.join('db/optional_migrations/composite_primary_keys')
CompositePrimaryKeysMigration.new.down CompositePrimaryKeysMigration.new.down

View File

@ -53,7 +53,7 @@ namespace :pngquant do
end end
end end
desc 'GitLab | pngquant | Compress all documentation PNG images using pngquant' desc 'GitLab | Pngquant | Compress all documentation PNG images using pngquant'
task :compress do task :compress do
check_executable check_executable
@ -69,7 +69,7 @@ namespace :pngquant do
end end
end end
desc 'GitLab | pngquant | Checks that all documentation PNG images have been compressed with pngquant' desc 'GitLab | Pngquant | Checks that all documentation PNG images have been compressed with pngquant'
task :lint do task :lint do
check_executable check_executable

View File

@ -8,28 +8,28 @@ namespace :sidekiq do
WARNING WARNING
end end
desc "[DEPRECATED] GitLab | Stop sidekiq" desc '[DEPRECATED] GitLab | Sidekiq | Stop sidekiq'
task :stop do task :stop do
deprecation_warning! deprecation_warning!
system(*%w(bin/background_jobs stop)) system(*%w(bin/background_jobs stop))
end end
desc "[DEPRECATED] GitLab | Start sidekiq" desc '[DEPRECATED] GitLab | Sidekiq | Start sidekiq'
task :start do task :start do
deprecation_warning! deprecation_warning!
system(*%w(bin/background_jobs start)) system(*%w(bin/background_jobs start))
end end
desc '[DEPRECATED] GitLab | Restart sidekiq' desc '[DEPRECATED] GitLab | Sidekiq | Restart sidekiq'
task :restart do task :restart do
deprecation_warning! deprecation_warning!
system(*%w(bin/background_jobs restart)) system(*%w(bin/background_jobs restart))
end end
desc "[DEPRECATED] GitLab | Start sidekiq with launchd on Mac OS X" desc '[DEPRECATED] GitLab | Sidekiq | Start sidekiq with launchd on Mac OS X'
task :launchd do task :launchd do
deprecation_warning! deprecation_warning!

View File

@ -82,8 +82,8 @@ describe 'Group' do
expect(page).to have_selector('#group_create_chat_team') expect(page).to have_selector('#group_create_chat_team')
end end
it 'checks the checkbox by default' do it 'unchecks the checkbox by default' do
expect(find('#group_create_chat_team')['checked']).to eq(true) expect(find('#group_create_chat_team')['checked']).to eq(false)
end end
it 'updates the team URL on graph path update', :js do it 'updates the team URL on graph path update', :js do

View File

@ -4,27 +4,33 @@ import axios from '~/lib/utils/axios_utils';
import createFlash from '~/flash'; import createFlash from '~/flash';
import * as actions from '~/error_tracking/store/details/actions'; import * as actions from '~/error_tracking/store/details/actions';
import * as types from '~/error_tracking/store/details/mutation_types'; import * as types from '~/error_tracking/store/details/mutation_types';
import Poll from '~/lib/utils/poll';
let mockedAdapter;
let mockedRestart;
jest.mock('~/flash.js'); jest.mock('~/flash.js');
jest.mock('~/lib/utils/url_utility'); jest.mock('~/lib/utils/url_utility');
let mock;
describe('Sentry error details store actions', () => { describe('Sentry error details store actions', () => {
beforeEach(() => { beforeEach(() => {
mock = new MockAdapter(axios); mockedAdapter = new MockAdapter(axios);
}); });
afterEach(() => { afterEach(() => {
mock.restore(); mockedAdapter.restore();
createFlash.mockClear(); createFlash.mockClear();
if (mockedRestart) {
mockedRestart.mockRestore();
mockedRestart = null;
}
}); });
describe('startPollingDetails', () => { describe('startPollingDetails', () => {
const endpoint = '123/details'; const endpoint = '123/details';
it('should commit SET_ERROR with received response', done => { it('should commit SET_ERROR with received response', done => {
const payload = { error: { id: 1 } }; const payload = { error: { id: 1 } };
mock.onGet().reply(200, payload); mockedAdapter.onGet().reply(200, payload);
testAction( testAction(
actions.startPollingDetails, actions.startPollingDetails,
{ endpoint }, { endpoint },
@ -41,7 +47,7 @@ describe('Sentry error details store actions', () => {
}); });
it('should show flash on API error', done => { it('should show flash on API error', done => {
mock.onGet().reply(400); mockedAdapter.onGet().reply(400);
testAction( testAction(
actions.startPollingDetails, actions.startPollingDetails,
@ -55,13 +61,23 @@ describe('Sentry error details store actions', () => {
}, },
); );
}); });
it('should not restart polling when receiving an empty 204 response', done => {
mockedRestart = jest.spyOn(Poll.prototype, 'restart');
mockedAdapter.onGet().reply(204);
testAction(actions.startPollingDetails, { endpoint }, {}, [], [], () => {
expect(mockedRestart).toHaveBeenCalledTimes(0);
done();
});
});
}); });
describe('startPollingStacktrace', () => { describe('startPollingStacktrace', () => {
const endpoint = '123/stacktrace'; const endpoint = '123/stacktrace';
it('should commit SET_ERROR with received response', done => { it('should commit SET_ERROR with received response', done => {
const payload = { error: [1, 2, 3] }; const payload = { error: [1, 2, 3] };
mock.onGet().reply(200, payload); mockedAdapter.onGet().reply(200, payload);
testAction( testAction(
actions.startPollingStacktrace, actions.startPollingStacktrace,
{ endpoint }, { endpoint },
@ -78,7 +94,7 @@ describe('Sentry error details store actions', () => {
}); });
it('should show flash on API error', done => { it('should show flash on API error', done => {
mock.onGet().reply(400); mockedAdapter.onGet().reply(400);
testAction( testAction(
actions.startPollingStacktrace, actions.startPollingStacktrace,
@ -92,5 +108,16 @@ describe('Sentry error details store actions', () => {
}, },
); );
}); });
it('should not restart polling when receiving an empty 204 response', done => {
mockedRestart = jest.spyOn(Poll.prototype, 'restart');
mockedAdapter.onGet().reply(204);
testAction(actions.startPollingStacktrace, { endpoint }, {}, [], [], () => {
mockedRestart = jest.spyOn(Poll.prototype, 'restart');
expect(mockedRestart).toHaveBeenCalledTimes(0);
done();
});
});
}); });
}); });