Commit 1917d861 authored by Evan Read's avatar Evan Read

Merge branch 'docs-vale-repetition' into 'master'

Docs vale repetition

Closes #213559

See merge request gitlab-org/gitlab!29001
parents 68bf2a71 29ecc18e
# Checks for duplicate words, like `the the` or `and and`.
#
# For a list of all options, see https://errata-ai.github.io/vale/styles/
extends: repetition
message: '"%s" is repeated.'
level: error
alpha: true
tokens:
- '[^\s]+'
...@@ -4,7 +4,7 @@ type: reference ...@@ -4,7 +4,7 @@ type: reference
# LDAP Additions in GitLab EE **(STARTER ONLY)** # LDAP Additions in GitLab EE **(STARTER ONLY)**
This section documents LDAP features specific to to GitLab Enterprise Edition This section documents LDAP features specific to GitLab Enterprise Edition
[Starter](https://about.gitlab.com/pricing/#self-managed) and above. [Starter](https://about.gitlab.com/pricing/#self-managed) and above.
For documentation relevant to both Community Edition and Enterprise Edition, For documentation relevant to both Community Edition and Enterprise Edition,
......
...@@ -227,7 +227,7 @@ uid: John ...@@ -227,7 +227,7 @@ uid: John
There's a lot here, so let's go over what could be helpful when debugging. There's a lot here, so let's go over what could be helpful when debugging.
First, GitLab will look for all users that have have previously First, GitLab will look for all users that have previously
logged in with LDAP and iterate on them. Each user's sync will start with logged in with LDAP and iterate on them. Each user's sync will start with
the following line that contains the user's username and email, as they the following line that contains the user's username and email, as they
exist in GitLab now: exist in GitLab now:
......
...@@ -498,7 +498,7 @@ the configuration option `lowercase_usernames`. By default, this configuration o ...@@ -498,7 +498,7 @@ the configuration option `lowercase_usernames`. By default, this configuration o
## Disable LDAP web sign in ## Disable LDAP web sign in
It can be be useful to prevent using LDAP credentials through the web UI when It can be useful to prevent using LDAP credentials through the web UI when
an alternative such as SAML is preferred. This allows LDAP to be used for group an alternative such as SAML is preferred. This allows LDAP to be used for group
sync, while also allowing your SAML identity provider to handle additional sync, while also allowing your SAML identity provider to handle additional
checks like custom 2FA. checks like custom 2FA.
......
...@@ -25,7 +25,7 @@ To enable external storage of merge request diffs, follow the instructions below ...@@ -25,7 +25,7 @@ To enable external storage of merge request diffs, follow the instructions below
gitlab_rails['external_diffs_enabled'] = true gitlab_rails['external_diffs_enabled'] = true
``` ```
1. _The external diffs will be stored in in 1. _The external diffs will be stored in
`/var/opt/gitlab/gitlab-rails/shared/external-diffs`._ To change the path, `/var/opt/gitlab/gitlab-rails/shared/external-diffs`._ To change the path,
for example, to `/mnt/storage/external-diffs`, edit `/etc/gitlab/gitlab.rb` for example, to `/mnt/storage/external-diffs`, edit `/etc/gitlab/gitlab.rb`
and add the following line: and add the following line:
......
...@@ -21,7 +21,7 @@ part of a source installation and their configuration instructions for scaling. ...@@ -21,7 +21,7 @@ part of a source installation and their configuration instructions for scaling.
|-----------|-------------|----------------------------| |-----------|-------------|----------------------------|
| [PostgreSQL](../../development/architecture.md#postgresql) | Database | [PostgreSQL configuration](https://docs.gitlab.com/omnibus/settings/database.html) | | [PostgreSQL](../../development/architecture.md#postgresql) | Database | [PostgreSQL configuration](https://docs.gitlab.com/omnibus/settings/database.html) |
| [Redis](../../development/architecture.md#redis) | Key/value store for fast data lookup and caching | [Redis configuration](../high_availability/redis.md) | | [Redis](../../development/architecture.md#redis) | Key/value store for fast data lookup and caching | [Redis configuration](../high_availability/redis.md) |
| [GitLab application services](../../development/architecture.md#unicorn) | Unicorn/Puma, Workhorse, GitLab Shell - serves front-end requests requests (UI, API, Git over HTTP/SSH) | [GitLab app scaling configuration](../high_availability/gitlab.md) | | [GitLab application services](../../development/architecture.md#unicorn) | Unicorn/Puma, Workhorse, GitLab Shell - serves front-end requests (UI, API, Git over HTTP/SSH) | [GitLab app scaling configuration](../high_availability/gitlab.md) |
| [PgBouncer](../../development/architecture.md#pgbouncer) | Database connection pooler | [PgBouncer configuration](../high_availability/pgbouncer.md#running-pgbouncer-as-part-of-a-non-ha-gitlab-installation) **(PREMIUM ONLY)** | | [PgBouncer](../../development/architecture.md#pgbouncer) | Database connection pooler | [PgBouncer configuration](../high_availability/pgbouncer.md#running-pgbouncer-as-part-of-a-non-ha-gitlab-installation) **(PREMIUM ONLY)** |
| [Sidekiq](../../development/architecture.md#sidekiq) | Asynchronous/background jobs | [Sidekiq configuration](../high_availability/sidekiq.md) | | [Sidekiq](../../development/architecture.md#sidekiq) | Asynchronous/background jobs | [Sidekiq configuration](../high_availability/sidekiq.md) |
| [Gitaly](../../development/architecture.md#gitaly) | Provides access to Git repositories | [Gitaly configuration](../gitaly/index.md#running-gitaly-on-its-own-server) | | [Gitaly](../../development/architecture.md#gitaly) | Provides access to Git repositories | [Gitaly configuration](../gitaly/index.md#running-gitaly-on-its-own-server) |
......
...@@ -111,7 +111,7 @@ statement_timeout = 15s ...@@ -111,7 +111,7 @@ statement_timeout = 15s
idle_in_transaction_session_timeout = 60s idle_in_transaction_session_timeout = 60s
``` ```
Quoting from from issue [#1](https://gitlab.com/gitlab-org/gitlab/issues/30528): Quoting from issue [#1](https://gitlab.com/gitlab-org/gitlab/issues/30528):
> "If a deadlock is hit, and we resolve it through aborting the transaction after a short period, then the retry mechanisms we already have will make the deadlocked piece of work try again, and it's unlikely we'll deadlock multiple times in a row." > "If a deadlock is hit, and we resolve it through aborting the transaction after a short period, then the retry mechanisms we already have will make the deadlocked piece of work try again, and it's unlikely we'll deadlock multiple times in a row."
......
...@@ -50,7 +50,7 @@ If you have the problems listed above, add your certificate to `/etc/gitlab/trus ...@@ -50,7 +50,7 @@ If you have the problems listed above, add your certificate to `/etc/gitlab/trus
Besides getting the errors mentioned in Besides getting the errors mentioned in
[Using an internal CA certificate with GitLab](ssl.md#using-an-internal-ca-certificate-with-gitlab), [Using an internal CA certificate with GitLab](ssl.md#using-an-internal-ca-certificate-with-gitlab),
your CI pipelines may stuck stuck in `Pending` status. In the runner logs you may see the below error: your CI pipelines may get stuck in `Pending` status. In the runner logs you may see the below error:
```shell ```shell
Dec 6 02:43:17 runner-host01 gitlab-runner[15131]: #033[0;33mWARNING: Checking for jobs... failed Dec 6 02:43:17 runner-host01 gitlab-runner[15131]: #033[0;33mWARNING: Checking for jobs... failed
......
...@@ -138,7 +138,7 @@ curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://git ...@@ -138,7 +138,7 @@ curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://git
These endpoints require group maintainer access or higher. These endpoints require group maintainer access or higher.
### List group deploy deploy tokens ### List group deploy tokens
> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/21811) in GitLab 12.9. > [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/21811) in GitLab 12.9.
......
...@@ -552,7 +552,7 @@ curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab ...@@ -552,7 +552,7 @@ curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab
### Create new epic thread ### Create new epic thread
Creates a new thread to a single group epic. This is similar to creating Creates a new thread to a single group epic. This is similar to creating
a note but but other comments (replies) can be added to it later. a note but other comments (replies) can be added to it later.
```plaintext ```plaintext
POST /groups/:id/epics/:epic_id/discussions POST /groups/:id/epics/:epic_id/discussions
......
...@@ -120,7 +120,7 @@ Example response: ...@@ -120,7 +120,7 @@ Example response:
## Create and assign a child epic ## Create and assign a child epic
Creates a a new epic and associates it with provided parent epic. The response is LinkedEpic object. Creates a new epic and associates it with provided parent epic. The response is LinkedEpic object.
```plaintext ```plaintext
POST /groups/:id/epics/:epic_iid/epics POST /groups/:id/epics/:epic_iid/epics
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/41766) in GitLab 11.7. > [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/41766) in GitLab 11.7.
Using this API you can manipulate GitLab's [Release](../../user/project/releases/index.md) links. For manipulating other Release assets, see [Release API](index.md). Using this API you can manipulate GitLab's [Release](../../user/project/releases/index.md) links. For manipulating other Release assets, see [Release API](index.md).
GitLab supports links links to `http`, `https`, and `ftp` assets. GitLab supports links to `http`, `https`, and `ftp` assets.
## Get links ## Get links
......
...@@ -42,7 +42,7 @@ GET /runners?tag_list=tag1,tag2 ...@@ -42,7 +42,7 @@ GET /runners?tag_list=tag1,tag2
| `scope` | string | no | Deprecated: Use `type` or `status` instead. The scope of specific runners to show, one of: `active`, `paused`, `online`, `offline`; showing all runners if none provided | | `scope` | string | no | Deprecated: Use `type` or `status` instead. The scope of specific runners to show, one of: `active`, `paused`, `online`, `offline`; showing all runners if none provided |
| `type` | string | no | The type of runners to show, one of: `instance_type`, `group_type`, `project_type` | | `type` | string | no | The type of runners to show, one of: `instance_type`, `group_type`, `project_type` |
| `status` | string | no | The status of runners to show, one of: `active`, `paused`, `online`, `offline` | | `status` | string | no | The status of runners to show, one of: `active`, `paused`, `online`, `offline` |
| `tag_list` | string array | no | List of of the runner's tags | | `tag_list` | string array | no | List of the runner's tags |
```shell ```shell
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/runners" curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/runners"
...@@ -93,7 +93,7 @@ GET /runners/all?tag_list=tag1,tag2 ...@@ -93,7 +93,7 @@ GET /runners/all?tag_list=tag1,tag2
| `scope` | string | no | Deprecated: Use `type` or `status` instead. The scope of runners to show, one of: `specific`, `shared`, `active`, `paused`, `online`, `offline`; showing all runners if none provided | | `scope` | string | no | Deprecated: Use `type` or `status` instead. The scope of runners to show, one of: `specific`, `shared`, `active`, `paused`, `online`, `offline`; showing all runners if none provided |
| `type` | string | no | The type of runners to show, one of: `instance_type`, `group_type`, `project_type` | | `type` | string | no | The type of runners to show, one of: `instance_type`, `group_type`, `project_type` |
| `status` | string | no | The status of runners to show, one of: `active`, `paused`, `online`, `offline` | | `status` | string | no | The status of runners to show, one of: `active`, `paused`, `online`, `offline` |
| `tag_list` | string array | no | List of of the runner's tags | | `tag_list` | string array | no | List of the runner's tags |
```shell ```shell
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/runners/all" curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/runners/all"
...@@ -385,7 +385,7 @@ GET /projects/:id/runners?tag_list=tag1,tag2 ...@@ -385,7 +385,7 @@ GET /projects/:id/runners?tag_list=tag1,tag2
| `scope` | string | no | Deprecated: Use `type` or `status` instead. The scope of specific runners to show, one of: `active`, `paused`, `online`, `offline`; showing all runners if none provided | | `scope` | string | no | Deprecated: Use `type` or `status` instead. The scope of specific runners to show, one of: `active`, `paused`, `online`, `offline`; showing all runners if none provided |
| `type` | string | no | The type of runners to show, one of: `instance_type`, `group_type`, `project_type` | | `type` | string | no | The type of runners to show, one of: `instance_type`, `group_type`, `project_type` |
| `status` | string | no | The status of runners to show, one of: `active`, `paused`, `online`, `offline` | | `status` | string | no | The status of runners to show, one of: `active`, `paused`, `online`, `offline` |
| `tag_list` | string array | no | List of of the runner's tags | | `tag_list` | string array | no | List of the runner's tags |
```shell ```shell
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/9/runners" curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/9/runners"
...@@ -486,7 +486,7 @@ GET /groups/:id/runners?tag_list=tag1,tag2 ...@@ -486,7 +486,7 @@ GET /groups/:id/runners?tag_list=tag1,tag2
| `id` | integer | yes | The ID of the group owned by the authenticated user | | `id` | integer | yes | The ID of the group owned by the authenticated user |
| `type` | string | no | The type of runners to show, one of: `instance_type`, `group_type`, `project_type` | | `type` | string | no | The type of runners to show, one of: `instance_type`, `group_type`, `project_type` |
| `status` | string | no | The status of runners to show, one of: `active`, `paused`, `online`, `offline` | | `status` | string | no | The status of runners to show, one of: `active`, `paused`, `online`, `offline` |
| `tag_list` | string array | no | List of of the runner's tags | | `tag_list` | string array | no | List of the runner's tags |
```shell ```shell
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/9/runners" curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/9/runners"
......
...@@ -277,7 +277,7 @@ The `releases` directory will hold all our deployments: ...@@ -277,7 +277,7 @@ The `releases` directory will hold all our deployments:
... ...
``` ```
While our project grows, its Git history will be very very long over time. While our project grows, its Git history will be very long over time.
Since we are creating a directory per release, it might not be necessary to have the history of the project downloaded for each release. Since we are creating a directory per release, it might not be necessary to have the history of the project downloaded for each release.
The `--depth 1` option is a great solution which saves systems time and disk space as well. The `--depth 1` option is a great solution which saves systems time and disk space as well.
......
...@@ -12,7 +12,7 @@ last_updated: 2019-03-06 ...@@ -12,7 +12,7 @@ last_updated: 2019-03-06
[Phoenix](https://www.phoenixframework.org/) is a web development framework written in [Elixir](https://elixir-lang.org), which is a [Phoenix](https://www.phoenixframework.org/) is a web development framework written in [Elixir](https://elixir-lang.org), which is a
functional language designed for productivity and maintainability that runs on the functional language designed for productivity and maintainability that runs on the
[Erlang VM](https://www.erlang.org). Erlang VM is really really fast and can handle very large numbers of [Erlang VM](https://www.erlang.org). Erlang VM is really fast and can handle very large numbers of
simultaneous users. simultaneous users.
That's why we're hearing so much about Phoenix today. That's why we're hearing so much about Phoenix today.
...@@ -389,7 +389,7 @@ source project being watched and contributed by the community, it is really impo ...@@ -389,7 +389,7 @@ source project being watched and contributed by the community, it is really impo
code permanently working. GitLab CI/CD is a time saving powerful tool to help us maintain our code code permanently working. GitLab CI/CD is a time saving powerful tool to help us maintain our code
organized and working. organized and working.
As we could see in this post, GitLab CI/CD is really really easy to configure and use. We have [many As we could see in this post, GitLab CI/CD is really easy to configure and use. We have [many
other reasons](https://about.gitlab.com/blog/2015/02/03/7-reasons-why-you-should-be-using-ci/) to keep other reasons](https://about.gitlab.com/blog/2015/02/03/7-reasons-why-you-should-be-using-ci/) to keep
using GitLab CI/CD. The benefits to our teams will be huge! using GitLab CI/CD. The benefits to our teams will be huge!
......
...@@ -475,7 +475,7 @@ to an updated status. ...@@ -475,7 +475,7 @@ to an updated status.
This functionality is only available: This functionality is only available:
- For users with at least Developer access. - For users with at least Developer access.
- If the the stage contains [manual actions](#manual-actions-from-pipeline-graphs). - If the stage contains [manual actions](#manual-actions-from-pipeline-graphs).
### Deleting a single pipeline ### Deleting a single pipeline
......
...@@ -429,7 +429,7 @@ Once you set them, they will be available for all subsequent pipelines. ...@@ -429,7 +429,7 @@ Once you set them, they will be available for all subsequent pipelines.
You can limit the environment scope of a variable by You can limit the environment scope of a variable by
[defining which environments](../environments.md) it can be available for. [defining which environments](../environments.md) it can be available for.
To learn more about about scoping environments, see [Scoping environments with specs](../environments.md#scoping-environments-with-specs). To learn more about scoping environments, see [Scoping environments with specs](../environments.md#scoping-environments-with-specs).
### Deployment environment variables ### Deployment environment variables
......
...@@ -318,25 +318,25 @@ For: ...@@ -318,25 +318,25 @@ For:
An [extended docker configuration option](../docker/using_docker_images.md#extended-docker-configuration-options). An [extended docker configuration option](../docker/using_docker_images.md#extended-docker-configuration-options).
For more information, see see [Available settings for `services`](../docker/using_docker_images.md#available-settings-for-services). For more information, see [Available settings for `services`](../docker/using_docker_images.md#available-settings-for-services).
#### `services:alias` #### `services:alias`
An [extended docker configuration option](../docker/using_docker_images.md#extended-docker-configuration-options). An [extended docker configuration option](../docker/using_docker_images.md#extended-docker-configuration-options).
For more information, see see [Available settings for `services`](../docker/using_docker_images.md#available-settings-for-services). For more information, see [Available settings for `services`](../docker/using_docker_images.md#available-settings-for-services).
#### `services:entrypoint` #### `services:entrypoint`
An [extended docker configuration option](../docker/using_docker_images.md#extended-docker-configuration-options). An [extended docker configuration option](../docker/using_docker_images.md#extended-docker-configuration-options).
For more information, see see [Available settings for `services`](../docker/using_docker_images.md#available-settings-for-services). For more information, see [Available settings for `services`](../docker/using_docker_images.md#available-settings-for-services).
#### `services:command` #### `services:command`
An [extended docker configuration option](../docker/using_docker_images.md#extended-docker-configuration-options). An [extended docker configuration option](../docker/using_docker_images.md#extended-docker-configuration-options).
For more information, see see [Available settings for `services`](../docker/using_docker_images.md#available-settings-for-services). For more information, see [Available settings for `services`](../docker/using_docker_images.md#available-settings-for-services).
### `before_script` and `after_script` ### `before_script` and `after_script`
...@@ -1630,7 +1630,7 @@ The `stop_review_app` job is **required** to have the following keywords defined ...@@ -1630,7 +1630,7 @@ The `stop_review_app` job is **required** to have the following keywords defined
> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/20956) in GitLab 12.8. > [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/20956) in GitLab 12.8.
The `auto_stop_in` keyword is for specifying life period of the environment, The `auto_stop_in` keyword is for specifying life period of the environment,
that when expired, GitLab GitLab automatically stops them. that when expired, GitLab automatically stops them.
For example, For example,
......
...@@ -84,7 +84,7 @@ the context. ...@@ -84,7 +84,7 @@ the context.
### Nullable fields ### Nullable fields
GraphQL allows fields to be be "nullable" or "non-nullable". The former means GraphQL allows fields to be "nullable" or "non-nullable". The former means
that `null` may be returned instead of a value of the specified type. **In that `null` may be returned instead of a value of the specified type. **In
general**, you should prefer using nullable fields to non-nullable ones, for general**, you should prefer using nullable fields to non-nullable ones, for
the following reasons: the following reasons:
......
...@@ -422,7 +422,7 @@ Request help from the Technical Writing team if you: ...@@ -422,7 +422,7 @@ Request help from the Technical Writing team if you:
To request help: To request help:
1. Locate the the Technical Writer for the relevant 1. Locate the Technical Writer for the relevant
[DevOps stage group](https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments). [DevOps stage group](https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments).
1. Either: 1. Either:
- If urgent help is required, directly assign the Technical Writer in the issue or in the merge request. - If urgent help is required, directly assign the Technical Writer in the issue or in the merge request.
......
...@@ -98,7 +98,8 @@ Slack: ...@@ -98,7 +98,8 @@ Slack:
This will enable the feature for GitLab.com, with `new_navigation_bar` being the This will enable the feature for GitLab.com, with `new_navigation_bar` being the
name of the feature. name of the feature.
This command does *not* enable the feature for 25% of the total users. Instead, when the feature is checked with `enabled?`, it will return `true` 25% of the time. This command does *not* enable the feature for 25% of the total users.
Instead, when the feature is checked with `enabled?`, it will return `true` 25% of the time.
If you are not certain what percentages to use, simply use the following steps: If you are not certain what percentages to use, simply use the following steps:
......
...@@ -37,7 +37,7 @@ For instance, it is common practice to use `before_script` to install system lib ...@@ -37,7 +37,7 @@ For instance, it is common practice to use `before_script` to install system lib
a particular project needs before performing SAST or Dependency Scanning. a particular project needs before performing SAST or Dependency Scanning.
Similarly, [`after_script`](../../ci/yaml/README.md#before_script-and-after_script) Similarly, [`after_script`](../../ci/yaml/README.md#before_script-and-after_script)
should not not be used in the job definition, because it may be overridden by users. should not be used in the job definition, because it may be overridden by users.
### Stage ### Stage
...@@ -403,7 +403,7 @@ It may also have an `end_line`, a `class`, and a `method`. ...@@ -403,7 +403,7 @@ It may also have an `end_line`, a `class`, and a `method`.
For instance, here is the `location` object for a security flaw found For instance, here is the `location` object for a security flaw found
at line `41` of `src/main/java/com/gitlab/example/App.java`, at line `41` of `src/main/java/com/gitlab/example/App.java`,
in the the `generateSecretToken` method of the `com.gitlab.security_products.tests.App` Java class: in the `generateSecretToken` method of the `com.gitlab.security_products.tests.App` Java class:
```json ```json
{ {
......
...@@ -375,7 +375,7 @@ Examples: ...@@ -375,7 +375,7 @@ Examples:
In such cases it's rather expected that this is either misuse In such cases it's rather expected that this is either misuse
or abuse of the feature. Lack of the upper limit can result or abuse of the feature. Lack of the upper limit can result
in service degradation as the system will try to process all schedules in service degradation as the system will try to process all schedules
assigned the the project. assigned the project.
1. GitLab CI/CD includes: We started with the limit of maximum of 50 nested includes. 1. GitLab CI/CD includes: We started with the limit of maximum of 50 nested includes.
We understood that performance of the feature was acceptable at that level. We understood that performance of the feature was acceptable at that level.
......
...@@ -74,7 +74,7 @@ point of failure and so the screenshot would not be captured at the right moment ...@@ -74,7 +74,7 @@ point of failure and so the screenshot would not be captured at the right moment
All QA tests expect to be able to log in at the start of the test. All QA tests expect to be able to log in at the start of the test.
That's not possible if a test leaves the browser logged in when it finishes. Normally this isn't a problem because [Capybara resets the session after each test](https://github.com/teamcapybara/capybara/blob/9ebc5033282d40c73b0286e60217515fd1bb0b5d/lib/capybara/rspec.rb#L18). But Capybara does that in an `after` block, so when a test logs in in an `after(:context)` block, the browser returns to a logged in state *after* Capybara had logged it out. And so the next test will fail. That's not possible if a test leaves the browser logged in when it finishes. Normally this isn't a problem because [Capybara resets the session after each test](https://github.com/teamcapybara/capybara/blob/9ebc5033282d40c73b0286e60217515fd1bb0b5d/lib/capybara/rspec.rb#L18). But Capybara does that in an `after` block, so when a test logs in an `after(:context)` block, the browser returns to a logged in state *after* Capybara had logged it out. And so the next test will fail.
For an example see: <https://gitlab.com/gitlab-org/gitlab/issues/34736> For an example see: <https://gitlab.com/gitlab-org/gitlab/issues/34736>
......
...@@ -458,7 +458,7 @@ By defining the `api_get_path` method, we **would** allow for the [`ApiFabricato ...@@ -458,7 +458,7 @@ By defining the `api_get_path` method, we **would** allow for the [`ApiFabricato
By defining the `api_post_path` method, we allow for the [`ApiFabricator`](https://gitlab.com/gitlab-org/gitlab/blob/master/qa/qa/resource/api_fabricator.rb) module to know which path to use to create a new label in a specific project. By defining the `api_post_path` method, we allow for the [`ApiFabricator`](https://gitlab.com/gitlab-org/gitlab/blob/master/qa/qa/resource/api_fabricator.rb) module to know which path to use to create a new label in a specific project.
By defining the `api_post_body` method, we we allow for the [`ApiFabricator.api_post`](https://gitlab.com/gitlab-org/gitlab/blob/a9177ca1812bac57e2b2fa4560e1d5dd8ffac38b/qa/qa/resource/api_fabricator.rb#L68) method to know which data to send when making the `POST` request. By defining the `api_post_body` method, we allow for the [`ApiFabricator.api_post`](https://gitlab.com/gitlab-org/gitlab/blob/a9177ca1812bac57e2b2fa4560e1d5dd8ffac38b/qa/qa/resource/api_fabricator.rb#L68) method to know which data to send when making the `POST` request.
> Notice that we pass both `color` and `name` attributes in the `api_post_body` since [those are required](../../../api/labels.md#create-a-new-label). Also, notice that we keep them alphabetically organized. > Notice that we pass both `color` and `name` attributes in the `api_post_body` since [those are required](../../../api/labels.md#create-a-new-label). Also, notice that we keep them alphabetically organized.
......
...@@ -578,7 +578,7 @@ On the EC2 dashboard: ...@@ -578,7 +578,7 @@ On the EC2 dashboard:
1. Give your image a name and description (we'll use `GitLab-Source` for both). 1. Give your image a name and description (we'll use `GitLab-Source` for both).
1. Leave everything else as default and click **Create Image** 1. Leave everything else as default and click **Create Image**
Now we have a custom AMI that we'll use to create our launch configuration the the next step. Now we have a custom AMI that we'll use to create our launch configuration the next step.
## Deploying GitLab inside an auto scaling group ## Deploying GitLab inside an auto scaling group
......
...@@ -610,7 +610,7 @@ Here are some common pitfalls and how to overcome them: ...@@ -610,7 +610,7 @@ Here are some common pitfalls and how to overcome them:
- **My single node Elasticsearch cluster status never goes from `yellow` to `green` even though everything seems to be running properly** - **My single node Elasticsearch cluster status never goes from `yellow` to `green` even though everything seems to be running properly**
**For a single node Elasticsearch cluster the functional cluster health status will be yellow** (will never be green) because the primary shard is allocated but replicas can not be as there is no other node to which Elasticsearch can assign a replica. This also applies if you are using using the **For a single node Elasticsearch cluster the functional cluster health status will be yellow** (will never be green) because the primary shard is allocated but replicas can not be as there is no other node to which Elasticsearch can assign a replica. This also applies if you are using the
[Amazon Elasticsearch](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/aes-handling-errors.html#aes-handling-errors-yellow-cluster-status) service. [Amazon Elasticsearch](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/aes-handling-errors.html#aes-handling-errors-yellow-cluster-status) service.
CAUTION: **Warning**: Setting the number of replicas to `0` is not something that we recommend (this is not allowed in the GitLab Elasticsearch Integration menu). If you are planning to add more Elasticsearch nodes (for a total of more than 1 Elasticsearch) the number of replicas will need to be set to an integer value larger than `0`. Failure to do so will result in lack of redundancy (losing one node will corrupt the index). CAUTION: **Warning**: Setting the number of replicas to `0` is not something that we recommend (this is not allowed in the GitLab Elasticsearch Integration menu). If you are planning to add more Elasticsearch nodes (for a total of more than 1 Elasticsearch) the number of replicas will need to be set to an integer value larger than `0`. Failure to do so will result in lack of redundancy (losing one node will corrupt the index).
......
...@@ -15,7 +15,7 @@ To get this functioning, you need to be registered with Google. ...@@ -15,7 +15,7 @@ To get this functioning, you need to be registered with Google.
Pay close attention to: Pay close attention to:
- Email account used by GitLab to send notification emails needs to have "Consistent history of sending a high volume of mail from your domain (order of hundred emails a day minimum to Gmail) for a few weeks at least". - Email account used by GitLab to send notification emails needs to have "Consistent history of sending a high volume of mail from your domain (order of hundred emails a day minimum to Gmail) for a few weeks at least".
- "A very very low rate of spam complaints from users." - A very low rate of spam complaints from users.
- Emails must be authenticated via DKIM or SPF. - Emails must be authenticated via DKIM or SPF.
- Before sending the final form ("Gmail Schema Whitelist Request"), you must send a real email from your production server. This means that you will have to find a way to send this email from the email address you are registering. You can do this by, for example, forwarding the real email from the email address you are registering or going into the rails console on the GitLab server and triggering the email sending from there. - Before sending the final form ("Gmail Schema Whitelist Request"), you must send a real email from your production server. This means that you will have to find a way to send this email from the email address you are registering. You can do this by, for example, forwarding the real email from the email address you are registering or going into the rails console on the GitLab server and triggering the email sending from there.
......
...@@ -90,7 +90,7 @@ based on *all* of the following: ...@@ -90,7 +90,7 @@ based on *all* of the following:
1. Potentially affecting one or more strategic accounts due to a proven inability by the user to upgrade to the current stable version. 1. Potentially affecting one or more strategic accounts due to a proven inability by the user to upgrade to the current stable version.
If *all* of the above are satisfied, the backport releases can be created for If *all* of the above are satisfied, the backport releases can be created for
the current stable stable release, and two previous monthly releases. the current stable release, and two previous monthly releases.
For instance, if we release `11.2.1` with a fix for a severe bug introduced in For instance, if we release `11.2.1` with a fix for a severe bug introduced in
`11.0.0`, we could backport the fix to a new `11.0.x`, and `11.1.x` patch release. `11.0.0`, we could backport the fix to a new `11.0.x`, and `11.1.x` patch release.
...@@ -186,7 +186,7 @@ Check [our release posts](https://about.gitlab.com/releases/categories/releases/ ...@@ -186,7 +186,7 @@ Check [our release posts](https://about.gitlab.com/releases/categories/releases/
Each month, we publish either a major or minor release of GitLab. At the end Each month, we publish either a major or minor release of GitLab. At the end
of those release posts there are three sections to look for: deprecations, important notes, of those release posts there are three sections to look for: deprecations, important notes,
and upgrade barometer. These will will draw your attention to: and upgrade barometer. These will draw your attention to:
- Steps you need to perform as part of an upgrade. - Steps you need to perform as part of an upgrade.
For example [8.12](https://about.gitlab.com/releases/2016/09/22/gitlab-8-12-released/#upgrade-barometer) For example [8.12](https://about.gitlab.com/releases/2016/09/22/gitlab-8-12-released/#upgrade-barometer)
......
...@@ -5,7 +5,7 @@ type: reference ...@@ -5,7 +5,7 @@ type: reference
# Useful Git commands # Useful Git commands
Here are some useful Git commands collected by the GitLab support team. You may not Here are some useful Git commands collected by the GitLab support team. You may not
need to use often, but they can can come in handy when needed. need to use often, but they can come in handy when needed.
## Remotes ## Remotes
......
...@@ -23,11 +23,11 @@ GitLab administrators can later override these settings in a project’s setting ...@@ -23,11 +23,11 @@ GitLab administrators can later override these settings in a project’s setting
Merge request approval rules that can be set at an instance level are: Merge request approval rules that can be set at an instance level are:
- **Prevent approval of merge requests by merge request author**. Prevents non-admins - **Prevent approval of merge requests by merge request author**. Prevents project
from allowing merge request authors to merge their own merge requests in individual maintainers from allowing request authors to merge their own merge requests.
projects. - **Prevent approval of merge requests by merge request committers**. Prevents project
- **Prevent approval of merge requests by merge request committers**. Prevents maintainers from allowing users to approve merge requests if they have submitted
non-admins from allowing merge request committers to merge merge requests they were any commits to the source branch.
committing to in individual projects. - **Prevent users from modifying merge request approvers list**. Prevents project
- **Prevent users from modifying merge request approvers list**. Prevents non-admins maintainers from allowing users to modify the approvers list in project settings
from modifying approvers list in project settings and in individual merge requests. or in individual merge requests.
...@@ -495,7 +495,7 @@ The DAST job can emit various reports. ...@@ -495,7 +495,7 @@ The DAST job can emit various reports.
CAUTION: **Caution:** CAUTION: **Caution:**
The JSON report artifacts are not a public API of DAST and their format is expected to change in the future. The JSON report artifacts are not a public API of DAST and their format is expected to change in the future.
The DAST tool always emits a JSON report report file called `gl-dast-report.json` and sample reports can be found in the [DAST repository](https://gitlab.com/gitlab-org/security-products/dast/-/tree/master/test/end-to-end/expect). The DAST tool always emits a JSON report file called `gl-dast-report.json` and sample reports can be found in the [DAST repository](https://gitlab.com/gitlab-org/security-products/dast/-/tree/master/test/end-to-end/expect).
There are two formats of data in the JSON report that are used side by side: the proprietary ZAP format which will be eventually deprecated, and a "common" format which will be the default in the future. There are two formats of data in the JSON report that are used side by side: the proprietary ZAP format which will be eventually deprecated, and a "common" format which will be the default in the future.
......
...@@ -352,7 +352,7 @@ analyzer containers: `DOCKER_`, `CI`, `GITLAB_`, `FF_`, `HOME`, `PWD`, `OLDPWD`, ...@@ -352,7 +352,7 @@ analyzer containers: `DOCKER_`, `CI`, `GITLAB_`, `FF_`, `HOME`, `PWD`, `OLDPWD`,
CAUTION: **Caution:** CAUTION: **Caution:**
The JSON report artifacts are not a public API of SAST and their format may change in the future. The JSON report artifacts are not a public API of SAST and their format may change in the future.
The SAST tool emits a JSON report report file. Here is an example of the report structure with all important parts of The SAST tool emits a JSON report file. Here is an example of the report structure with all important parts of
it highlighted: it highlighted:
```json-doc ```json-doc
......
...@@ -27,7 +27,7 @@ Management projects are restricted to the following: ...@@ -27,7 +27,7 @@ Management projects are restricted to the following:
- For project-level clusters, the management project must be in the same - For project-level clusters, the management project must be in the same
namespace (or descendants) as the cluster's project. namespace (or descendants) as the cluster's project.
- For group-level clusters, the management project must be in the same - For group-level clusters, the management project must be in the same
group (or descendants) as as the cluster's group. group (or descendants) as the cluster's group.
- For instance-level clusters, there are no such restrictions. - For instance-level clusters, there are no such restrictions.
## Usage ## Usage
......
...@@ -281,7 +281,7 @@ GitLab [isn't limited to the SAML providers listed above](#my-identity-provider- ...@@ -281,7 +281,7 @@ GitLab [isn't limited to the SAML providers listed above](#my-identity-provider-
| Additional URLs | | You may need to use the `Identifier` or `Assertion consumer service URL` in other fields on some providers. | | Additional URLs | | You may need to use the `Identifier` or `Assertion consumer service URL` in other fields on some providers. |
| Single Sign Out URL | | Not supported | | Single Sign Out URL | | Not supported |
If the information information you need isn't listed above you may wish to check our [troubleshooting docs below](#i-need-additional-information-to-configure-my-identity-provider). If the information you need isn't listed above you may wish to check our [troubleshooting docs below](#i-need-additional-information-to-configure-my-identity-provider).
## Linking SAML to your existing GitLab.com account ## Linking SAML to your existing GitLab.com account
......
...@@ -244,7 +244,7 @@ Registry. ...@@ -244,7 +244,7 @@ Registry.
## Installing a package ## Installing a package
NPM packages are commonly installed using the the `npm` or `yarn` commands NPM packages are commonly installed using the `npm` or `yarn` commands
inside a JavaScript project. If you haven't already, you will need to set the inside a JavaScript project. If you haven't already, you will need to set the
URL for scoped packages. You can do this with the following command: URL for scoped packages. You can do this with the following command:
......
...@@ -222,7 +222,7 @@ The following table lists all GitLab-specific email headers: ...@@ -222,7 +222,7 @@ The following table lists all GitLab-specific email headers:
### X-GitLab-NotificationReason ### X-GitLab-NotificationReason
The `X-GitLab-NotificationReason` header contains the reason for the notification. The value is one of the the following, in order of priority: The `X-GitLab-NotificationReason` header contains the reason for the notification. The value is one of the following, in order of priority:
- `own_activity` - `own_activity`
- `assigned` - `assigned`
......
...@@ -245,7 +245,7 @@ To add an existing EKS cluster to your project, group, or instance: ...@@ -245,7 +245,7 @@ To add an existing EKS cluster to your project, group, or instance:
token: <authentication_token> token: <authentication_token>
``` ```
1. Locate the the API server endpoint so GitLab can connect to the cluster. This is displayed on 1. Locate the API server endpoint so GitLab can connect to the cluster. This is displayed on
the AWS EKS console, when viewing the EKS cluster details. the AWS EKS console, when viewing the EKS cluster details.
1. Navigate to your: 1. Navigate to your:
- Project's **{cloud-gear}** **Operations > Kubernetes** page, for a project-level cluster. - Project's **{cloud-gear}** **Operations > Kubernetes** page, for a project-level cluster.
......
...@@ -397,7 +397,7 @@ Starting in [version 12.8](https://gitlab.com/gitlab-org/gitlab/issues/202696), ...@@ -397,7 +397,7 @@ Starting in [version 12.8](https://gitlab.com/gitlab-org/gitlab/issues/202696),
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/16530) in GitLab 12.5. > [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/16530) in GitLab 12.5.
To add an anomaly chart panel type to a dashboard, add add a panel with *exactly* 3 metrics. To add an anomaly chart panel type to a dashboard, add a panel with *exactly* 3 metrics.
The first metric represents the current state, and the second and third metrics represent the upper and lower limit respectively: The first metric represents the current state, and the second and third metrics represent the upper and lower limit respectively:
......
...@@ -28,7 +28,7 @@ button and start a merge request from there. ...@@ -28,7 +28,7 @@ button and start a merge request from there.
## New Merge Request page ## New Merge Request page
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 already
commits on the branch, the title will be prefilled 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
prefilled with any additional lines in the commit message. prefilled with any additional lines in the commit message.
......
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