Commit eeed711f authored by Mike Jang's avatar Mike Jang Committed by Craig Norris

Fix whitespace markdown errors

parent 983cd225
...@@ -477,7 +477,7 @@ information, see [High Availability with Omnibus GitLab](../../postgresql/replic ...@@ -477,7 +477,7 @@ information, see [High Availability with Omnibus GitLab](../../postgresql/replic
## Patroni support ## Patroni support
Support for Patroni is intended to replace `repmgr` as a Support for Patroni is intended to replace `repmgr` as a
[highly availabile PostgreSQL solution](../../postgresql/replication_and_failover.md) [highly availabile PostgreSQL solution](../../postgresql/replication_and_failover.md)
on the primary node, but it can also be used for PostgreSQL HA on a secondary on the primary node, but it can also be used for PostgreSQL HA on a secondary
node. node.
...@@ -496,14 +496,14 @@ This experimental implementation has the following limitations: ...@@ -496,14 +496,14 @@ This experimental implementation has the following limitations:
avoid this, you can pause auto-failover by running `gitlab-ctl patroni pause`. avoid this, you can pause auto-failover by running `gitlab-ctl patroni pause`.
After a reconfigure, it unpauses on its own. After a reconfigure, it unpauses on its own.
For instructions about how to set up Patroni on the primary node, see the For instructions about how to set up Patroni on the primary node, see the
[PostgreSQL replication and failover with Omnibus GitLab](../../postgresql/replication_and_failover.md#patroni) page. [PostgreSQL replication and failover with Omnibus GitLab](../../postgresql/replication_and_failover.md#patroni) page.
A production-ready and secure setup requires at least three Patroni instances on A production-ready and secure setup requires at least three Patroni instances on
the primary, and a similar configuration on the secondary nodes. Be sure to use the primary, and a similar configuration on the secondary nodes. Be sure to use
password credentials and other database best practices. password credentials and other database best practices.
Similar to `repmgr`, using Patroni on a secondary node is optional. Similar to `repmgr`, using Patroni on a secondary node is optional.
To set up database replication with Patroni on a secondary node, configure a To set up database replication with Patroni on a secondary node, configure a
_permanent replication slot_ on the primary node's Patroni cluster, and ensure _permanent replication slot_ on the primary node's Patroni cluster, and ensure
...@@ -516,7 +516,7 @@ On Patroni instances for the primary node, add the following to the ...@@ -516,7 +516,7 @@ On Patroni instances for the primary node, add the following to the
# You need one entry for each secondary, with a unique name following PostgreSQL slot_name constraints: # You need one entry for each secondary, with a unique name following PostgreSQL slot_name constraints:
# #
# Configuration syntax will be: 'unique_slotname' => { 'type' => 'physical' }, # Configuration syntax will be: 'unique_slotname' => { 'type' => 'physical' },
# We don't support setting a permanent replication slot for logical replication type # We don't support setting a permanent replication slot for logical replication type
patroni['replication_slots'] = { patroni['replication_slots'] = {
'geo_secondary' => { 'type' => 'physical' } 'geo_secondary' => { 'type' => 'physical' }
} }
...@@ -524,7 +524,7 @@ patroni['replication_slots'] = { ...@@ -524,7 +524,7 @@ patroni['replication_slots'] = {
postgresql['md5_auth_cidr_addresses'] = [ postgresql['md5_auth_cidr_addresses'] = [
'PATRONI_PRIMARY1_IP/32', 'PATRONI_PRIMARY2_IP/32', 'PATRONI_PRIMARY3_IP/32', 'PATRONI_PRIMARY_PGBOUNCER/32', 'PATRONI_PRIMARY1_IP/32', 'PATRONI_PRIMARY2_IP/32', 'PATRONI_PRIMARY3_IP/32', 'PATRONI_PRIMARY_PGBOUNCER/32',
'PATRONI_SECONDARY1_IP/32', 'PATRONI_SECONDARY2_IP/32', 'PATRONI_SECONDARY3_IP/32' # we list all secondary instances as they can all become a Standby Leader 'PATRONI_SECONDARY1_IP/32', 'PATRONI_SECONDARY2_IP/32', 'PATRONI_SECONDARY3_IP/32' # we list all secondary instances as they can all become a Standby Leader
# any other instance that needs access to the database as per documentation # any other instance that needs access to the database as per documentation
] ]
postgresql['pgbouncer_user_password'] = 'PGBOUNCER_PASSWORD_HASH' postgresql['pgbouncer_user_password'] = 'PGBOUNCER_PASSWORD_HASH'
...@@ -538,7 +538,7 @@ On Patroni instances for the secondary node, add the following to the ...@@ -538,7 +538,7 @@ On Patroni instances for the secondary node, add the following to the
```ruby ```ruby
postgresql['md5_auth_cidr_addresses'] = [ postgresql['md5_auth_cidr_addresses'] = [
'PATRONI_SECONDARY1_IP/32', 'PATRONI_SECONDARY2_IP/32', 'PATRONI_SECONDARY3_IP/32', 'PATRONI_SECONDARY_PGBOUNCER/32', 'PATRONI_SECONDARY1_IP/32', 'PATRONI_SECONDARY2_IP/32', 'PATRONI_SECONDARY3_IP/32', 'PATRONI_SECONDARY_PGBOUNCER/32',
# any other instance that needs access to the database as per documentation # any other instance that needs access to the database as per documentation
] ]
patroni['enable'] = true patroni['enable'] = true
......
...@@ -4,7 +4,7 @@ stage: Manage ...@@ -4,7 +4,7 @@ stage: Manage
group: Access group: Access
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technica l-writing/#designated-technical-writers info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technica l-writing/#designated-technical-writers
--- ---
# GitLab as an OAuth2 provider # GitLab as an OAuth2 provider
This document covers using the [OAuth2](https://oauth.net/2/) protocol to allow This document covers using the [OAuth2](https://oauth.net/2/) protocol to allow
...@@ -40,7 +40,7 @@ resources which the `application` can access. Upon creation, you'll obtain the ...@@ -40,7 +40,7 @@ resources which the `application` can access. Upon creation, you'll obtain the
To [protect redirect-based flows](https://tools.ietf.org/id/draft-ietf-oauth-security-topics-13.html#rec_redirect), To [protect redirect-based flows](https://tools.ietf.org/id/draft-ietf-oauth-security-topics-13.html#rec_redirect),
the OAuth specification recommends the use of "One-time use CSRF tokens carried in the state the OAuth specification recommends the use of "One-time use CSRF tokens carried in the state
parameter, which are securely bound to the user agent", with each request to the parameter, which are securely bound to the user agent", with each request to the
`/oauth/authorize` endpoint. This can prevent `/oauth/authorize` endpoint. This can prevent
[CSRF attacks](https://wiki.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)). [CSRF attacks](https://wiki.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)).
### Use HTTPS in production ### Use HTTPS in production
...@@ -50,7 +50,7 @@ For development, GitLab allows insecure HTTP redirect URIs. ...@@ -50,7 +50,7 @@ For development, GitLab allows insecure HTTP redirect URIs.
As OAuth2 bases its security entirely on the transport layer, you should not use unprotected As OAuth2 bases its security entirely on the transport layer, you should not use unprotected
URIs. For more information, see the [OAuth 2.0 RFC](https://tools.ietf.org/html/rfc6749#section-3.1.2.1) URIs. For more information, see the [OAuth 2.0 RFC](https://tools.ietf.org/html/rfc6749#section-3.1.2.1)
and the [OAuth 2.0 Threat Model RFC](https://tools.ietf.org/html/rfc6819#section-4.4.2.1). and the [OAuth 2.0 Threat Model RFC](https://tools.ietf.org/html/rfc6819#section-4.4.2.1).
These factors are particularly important when using the These factors are particularly important when using the
[Implicit grant flow](#implicit-grant-flow), where actual credentials are included in the `redirect_uri`. [Implicit grant flow](#implicit-grant-flow), where actual credentials are included in the `redirect_uri`.
......
...@@ -1942,7 +1942,7 @@ PUT /projects/:id ...@@ -1942,7 +1942,7 @@ PUT /projects/:id
To upload an avatar from your file system, use the `--form` argument. This causes To upload an avatar from your file system, use the `--form` argument. This causes
cURL to post data using the header `Content-Type: multipart/form-data`. The cURL to post data using the header `Content-Type: multipart/form-data`. The
`file=` parameter must point to an image file on your file system and be `file=` parameter must point to an image file on your file system and be
preceded by `@`. For example: preceded by `@`. For example:
Example request: Example request:
......
...@@ -23,7 +23,7 @@ sequenceDiagram ...@@ -23,7 +23,7 @@ sequenceDiagram
Note right of RailsApp: Width Allowlist: https://gitlab.com/gitlab-org/gitlab/-/blob/master/app/models/concerns/avatarable.rb#L10 Note right of RailsApp: Width Allowlist: https://gitlab.com/gitlab-org/gitlab/-/blob/master/app/models/concerns/avatarable.rb#L10
RailsApp->>Workhorse: `send-scaled-img:` request RailsApp->>Workhorse: `send-scaled-img:` request
Note right of RailsApp: Set `send-scaled-img:` Header Note right of RailsApp: Set `send-scaled-img:` Header
Workhorse->>Workhorse: Image resizing using Go lib Workhorse->>Workhorse: Image resizing using Go lib
Workhorse->>Requester: Serve the resized image Workhorse->>Requester: Serve the resized image
else All other cases else All other cases
RailsApp->>Workhorse: Usual request scenario RailsApp->>Workhorse: Usual request scenario
......
...@@ -311,7 +311,7 @@ build_artifact: ...@@ -311,7 +311,7 @@ build_artifact:
- <built artifact> - <built artifact>
``` ```
### Deploy to Amazon EKS ### Deploy to Amazon EKS
- [How to deploy your application to a GitLab-managed Amazon EKS cluster with Auto DevOps](https://about.gitlab.com/blog/2020/05/05/deploying-application-eks/) - [How to deploy your application to a GitLab-managed Amazon EKS cluster with Auto DevOps](https://about.gitlab.com/blog/2020/05/05/deploying-application-eks/)
......
...@@ -390,7 +390,7 @@ you must have Owner [permissions](../../user/permissions.md#project-members-perm ...@@ -390,7 +390,7 @@ you must have Owner [permissions](../../user/permissions.md#project-members-perm
You must set up a runner to be able to run all the different types of jobs You must set up a runner to be able to run all the different types of jobs
that it may encounter on the projects it's shared over. This would be that it may encounter on the projects it's shared over. This would be
problematic for large amounts of projects, if it weren't for tags. problematic for large amounts of projects, if it weren't for tags.
GitLab CI tags are not the same as Git tags. GitLab CI tags are associated with runners. GitLab CI tags are not the same as Git tags. GitLab CI tags are associated with runners.
Git tags are associated with commits. Git tags are associated with commits.
......
...@@ -107,7 +107,7 @@ browser's developer console while on any page within GitLab. ...@@ -107,7 +107,7 @@ browser's developer console while on any page within GitLab.
- **JavaScript that relies on CSS for calculations should use [`waitForCSSLoaded()`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/app/assets/javascripts/helpers/startup_css_helper.js#L34):** - **JavaScript that relies on CSS for calculations should use [`waitForCSSLoaded()`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/app/assets/javascripts/helpers/startup_css_helper.js#L34):**
GitLab uses [Startup.css](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/38052) GitLab uses [Startup.css](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/38052)
to improve page performance. This can cause issues if JavaScript relies on CSS to improve page performance. This can cause issues if JavaScript relies on CSS
for calculations. To fix this the JavaScript can be wrapped in the for calculations. To fix this the JavaScript can be wrapped in the
[`waitForCSSLoaded()`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/app/assets/javascripts/helpers/startup_css_helper.js#L34) [`waitForCSSLoaded()`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/app/assets/javascripts/helpers/startup_css_helper.js#L34)
helper function. helper function.
......
...@@ -207,14 +207,14 @@ These types of queries are not supported. In these instances, you can use offset ...@@ -207,14 +207,14 @@ These types of queries are not supported. In these instances, you can use offset
### Offset pagination ### Offset pagination
There are times when the [complexity of sorting](#limitations-of-query-complexity) There are times when the [complexity of sorting](#limitations-of-query-complexity)
is more than our keyset pagination can handle. is more than our keyset pagination can handle.
For example, in [`IssuesResolver`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/app/graphql/resolvers/issues_resolver.rb), For example, in [`IssuesResolver`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/app/graphql/resolvers/issues_resolver.rb),
when sorting by `priority_asc`, we can't use keyset pagination as the ordering is much when sorting by `priority_asc`, we can't use keyset pagination as the ordering is much
too complex. For more information, read [`issuable.rb`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/app/models/concerns/issuable.rb). too complex. For more information, read [`issuable.rb`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/app/models/concerns/issuable.rb).
In cases like this, we can fall back to regular offset pagination by returning a In cases like this, we can fall back to regular offset pagination by returning a
[`Gitlab::Graphql::Pagination::OffsetActiveRecordRelationConnection`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/graphql/pagination/offset_active_record_relation_connection.rb) [`Gitlab::Graphql::Pagination::OffsetActiveRecordRelationConnection`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/graphql/pagination/offset_active_record_relation_connection.rb)
instead of an `ActiveRecord::Relation`: instead of an `ActiveRecord::Relation`:
......
...@@ -172,7 +172,7 @@ The code introduced by a merge request, should not execute multiple duplicated c ...@@ -172,7 +172,7 @@ The code introduced by a merge request, should not execute multiple duplicated c
The total number of the queries (including cached ones) executed by the code modified or added by a merge request The total number of the queries (including cached ones) executed by the code modified or added by a merge request
should not increase unless absolutely necessary. should not increase unless absolutely necessary.
The number of executed queries (including cached queries) should not depend on The number of executed queries (including cached queries) should not depend on
collection size. collection size.
You can write a test by passing the `skip_cached` variable to [QueryRecorder](query_recorder.md) to detect this and prevent regressions. You can write a test by passing the `skip_cached` variable to [QueryRecorder](query_recorder.md) to detect this and prevent regressions.
...@@ -205,7 +205,7 @@ It will re-instantiate project object for each build, instead of using the same ...@@ -205,7 +205,7 @@ It will re-instantiate project object for each build, instead of using the same
In this particular case the workaround is fairly easy: In this particular case the workaround is fairly easy:
```ruby ```ruby
pipeline.builds.each do |build| pipeline.builds.each do |build|
build.project = pipeline.project build.project = pipeline.project
build.to_json(only: [:name], include: [project: { only: [:name]}]) build.to_json(only: [:name], include: [project: { only: [:name]}])
end end
......
...@@ -31,8 +31,8 @@ In some cases the query count might change slightly between runs for unrelated r ...@@ -31,8 +31,8 @@ In some cases the query count might change slightly between runs for unrelated r
## Cached queries ## Cached queries
By default, QueryRecorder will ignore [cached queries](merge_request_performance_guidelines.md#cached-queries) in the count. However, it may be better to count By default, QueryRecorder will ignore [cached queries](merge_request_performance_guidelines.md#cached-queries) in the count. However, it may be better to count
all queries to avoid introducing an N+1 query that may be masked by the statement cache. all queries to avoid introducing an N+1 query that may be masked by the statement cache.
To do this, this requires the `:use_sql_query_cache` flag to be set. To do this, this requires the `:use_sql_query_cache` flag to be set.
You should pass the `skip_cached` variable to `QueryRecorder` and use the `exceed_all_query_limit` matcher: You should pass the `skip_cached` variable to `QueryRecorder` and use the `exceed_all_query_limit` matcher:
```ruby ```ruby
......
...@@ -128,10 +128,10 @@ To use a custom project template on the **New project** page: ...@@ -128,10 +128,10 @@ To use a custom project template on the **New project** page:
> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/26388) in GitLab 10.5. > [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/26388) in GitLab 10.5.
When you create a new repository locally, instead of manually creating a new project in GitLab When you create a new repository locally, instead of manually creating a new project in GitLab
and then [cloning the repository](start-using-git.md#clone-a-repository) and then [cloning the repository](start-using-git.md#clone-a-repository)
locally, you can directly push it to GitLab to create the new project, all without leaving locally, you can directly push it to GitLab to create the new project, all without leaving
your terminal. If you have access rights to the associated namespace, GitLab your terminal. If you have access rights to the associated namespace, GitLab
automatically creates a new project under that GitLab namespace with its visibility automatically creates a new project under that GitLab namespace with its visibility
set to Private by default (you can later change it in the [project's settings](../public_access/public_access.md#how-to-change-project-visibility)). set to Private by default (you can later change it in the [project's settings](../public_access/public_access.md#how-to-change-project-visibility)).
......
...@@ -73,7 +73,7 @@ To add a broadcast message: ...@@ -73,7 +73,7 @@ To add a broadcast message:
NOTE: **Note:** NOTE: **Note:**
The **Background color** field expects the value to be a hexadecimal code because The **Background color** field expects the value to be a hexadecimal code because
the form uses the [color_field](https://api.rubyonrails.org/v6.0.3.4/classes/ActionView/Helpers/FormHelper.html#method-i-color_field) the form uses the [color_field](https://api.rubyonrails.org/v6.0.3.4/classes/ActionView/Helpers/FormHelper.html#method-i-color_field)
helper method, which generates the proper HTML to render. helper method, which generates the proper HTML to render.
NOTE: **Note:** NOTE: **Note:**
Once a broadcast message has expired, it is no longer displayed in the UI but is still listed in the Once a broadcast message has expired, it is no longer displayed in the UI but is still listed in the
......
...@@ -51,7 +51,7 @@ All users will be redirect to the page represented by the configured "After sign ...@@ -51,7 +51,7 @@ All users will be redirect to the page represented by the configured "After sign
after sign out if value is not empty. after sign out if value is not empty.
In the Sign-in restrictions section, scroll to the "Sign-in text" text box. You can add a In the Sign-in restrictions section, scroll to the "Sign-in text" text box. You can add a
custom message for your users in Markdown format. custom message for your users in Markdown format.
For example, if you include the following information in the noted text box: For example, if you include the following information in the noted text box:
......
...@@ -356,7 +356,7 @@ Here are the requirements for using dependency scanning in an offline environmen ...@@ -356,7 +356,7 @@ Here are the requirements for using dependency scanning in an offline environmen
- GitLab Runner with the [`docker` or `kubernetes` executor](#requirements). - GitLab Runner with the [`docker` or `kubernetes` executor](#requirements).
- Docker Container Registry with locally available copies of dependency scanning [analyzer](https://gitlab.com/gitlab-org/security-products/analyzers) images. - Docker Container Registry with locally available copies of dependency scanning [analyzer](https://gitlab.com/gitlab-org/security-products/analyzers) images.
- If you have a limited access environment you will need to allow access, such as using a proxy, to the advisory database: `https://gitlab.com/gitlab-org/security-products/gemnasium-db.git`. - If you have a limited access environment you will need to allow access, such as using a proxy, to the advisory database: `https://gitlab.com/gitlab-org/security-products/gemnasium-db.git`.
If you are unable to permit access to `https://gitlab.com/gitlab-org/security-products/gemnasium-db.git` you must host an offline copy of this `git` repository and set the `GEMNASIUM_DB_REMOTE_URL` variable to the URL of this repository. For more information on configuration variables, see [Dependency Scanning](#configuring-dependency-scanning). If you are unable to permit access to `https://gitlab.com/gitlab-org/security-products/gemnasium-db.git` you must host an offline copy of this `git` repository and set the `GEMNASIUM_DB_REMOTE_URL` variable to the URL of this repository. For more information on configuration variables, see [Dependency Scanning](#configuring-dependency-scanning).
This advisory database is constantly being updated, so you will need to periodically sync your local copy with GitLab's. This advisory database is constantly being updated, so you will need to periodically sync your local copy with GitLab's.
......
...@@ -35,12 +35,12 @@ GitLab displays identified secrets visibly in a few places: ...@@ -35,12 +35,12 @@ GitLab displays identified secrets visibly in a few places:
Secret Detection detects a variety of common secrets by default. You can also customize the secret detection patterns using [custom rulesets](#custom-rulesets). Secret Detection detects a variety of common secrets by default. You can also customize the secret detection patterns using [custom rulesets](#custom-rulesets).
The [default ruleset provided by Gitleaks](https://gitlab.com/gitlab-org/security-products/analyzers/secrets/-/blob/master/gitleaks/gitleaks.toml) includes the following key types: The [default ruleset provided by Gitleaks](https://gitlab.com/gitlab-org/security-products/analyzers/secrets/-/blob/master/gitleaks/gitleaks.toml) includes the following key types:
- Cloud services: - Cloud services:
- Amazon Web Services (AWS) - Amazon Web Services (AWS)
- Google Cloud Platform (GCP) - Google Cloud Platform (GCP)
Encryption keys: Encryption keys:
- PKCS8 - PKCS8
- RSA - RSA
- SSH - SSH
...@@ -48,7 +48,7 @@ Encryption keys: ...@@ -48,7 +48,7 @@ Encryption keys:
- Social media platforms: - Social media platforms:
- Facebook API - Facebook API
- Twitter API - Twitter API
- Cloud SaaS vendors: - Cloud SaaS vendors:
- GitHub API - GitHub API
- Slack Token - Slack Token
- Stripe API - Stripe API
......
...@@ -67,13 +67,13 @@ the analyzer outputs an ...@@ -67,13 +67,13 @@ the analyzer outputs an
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/235558) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 13.6. > [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/235558) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 13.6.
At the project level, the Security Dashboard displays a chart with the number of vulnerabilities over time. At the project level, the Security Dashboard displays a chart with the number of vulnerabilities over time.
Access it by navigating to **Security & Compliance > Security Dashboard**. Currently, we display historical Access it by navigating to **Security & Compliance > Security Dashboard**. Currently, we display historical
data up to 365 days. data up to 365 days.
![Project Security Dashboard](img/project_security_dashboard_chart_v13_6.png) ![Project Security Dashboard](img/project_security_dashboard_chart_v13_6.png)
Filter the historical data by clicking on the corresponding legend name. The image above, for example, shows Filter the historical data by clicking on the corresponding legend name. The image above, for example, shows
only the graph for vulnerabilities with **high** severity. only the graph for vulnerabilities with **high** severity.
### Vulnerability Report ### Vulnerability Report
......
...@@ -635,7 +635,7 @@ You can view more information in our runbooks such as: ...@@ -635,7 +635,7 @@ You can view more information in our runbooks such as:
By default, GitLab does not expire job logs. Job logs are retained indefinitely, By default, GitLab does not expire job logs. Job logs are retained indefinitely,
and can't be configured on GitLab.com to expire. You can erase job logs and can't be configured on GitLab.com to expire. You can erase job logs
[manually with the Jobs API](../../api/jobs.md#erase-a-job) or by [manually with the Jobs API](../../api/jobs.md#erase-a-job) or by
[deleting a pipeline](../../ci/pipelines/index.md#delete-a-pipeline). [deleting a pipeline](../../ci/pipelines/index.md#delete-a-pipeline).
## GitLab.com at scale ## GitLab.com at scale
......
...@@ -94,7 +94,7 @@ following steps work only if GitLab is configured for HTTPS: ...@@ -94,7 +94,7 @@ following steps work only if GitLab is configured for HTTPS:
### Enable request authentication ### Enable request authentication
Create a [personal access token](../../profile/personal_access_tokens.md) with Create a [personal access token](../../profile/personal_access_tokens.md) with
the scope set to `api` or `read_api`. the scope set to `api` or `read_api`.
Add it to [`~/.netrc`](https://ec.haxx.se/usingcurl/usingcurl-netrc): Add it to [`~/.netrc`](https://ec.haxx.se/usingcurl/usingcurl-netrc):
...@@ -112,7 +112,7 @@ When downloading dependencies with Go 1.13 and later, fetched sources are ...@@ -112,7 +112,7 @@ When downloading dependencies with Go 1.13 and later, fetched sources are
validated against the checksum database `sum.golang.org`. validated against the checksum database `sum.golang.org`.
If the checksum of the fetched sources doesn't match the checksum from the If the checksum of the fetched sources doesn't match the checksum from the
database, Go doesn't build the dependency. database, Go doesn't build the dependency.
Private modules fail to build because `sum.golang.org` can't fetch the source Private modules fail to build because `sum.golang.org` can't fetch the source
of private modules, and so it cannot provide a checksum. of private modules, and so it cannot provide a checksum.
......
...@@ -614,7 +614,7 @@ When this is completed, there are two ways to install a package. ...@@ -614,7 +614,7 @@ When this is completed, there are two ways to install a package.
To install a package by using `mvn install`: To install a package by using `mvn install`:
1. Add the dependency manually to your project `pom.xml` file. 1. Add the dependency manually to your project `pom.xml` file.
To add the example created earlier, the XML would be: To add the example created earlier, the XML would be:
```xml ```xml
...@@ -705,7 +705,7 @@ You can create a new package each time the `master` branch is updated. ...@@ -705,7 +705,7 @@ You can create a new package each time the `master` branch is updated.
</settings> </settings>
``` ```
1. Make sure your `pom.xml` file includes the following. 1. Make sure your `pom.xml` file includes the following.
You can either let Maven use the CI environment variables, as shown in this example, You can either let Maven use the CI environment variables, as shown in this example,
or you can hard code your project's ID. or you can hard code your project's ID.
......
...@@ -248,7 +248,7 @@ nuget install <package_id> -OutputDirectory <output_directory> \ ...@@ -248,7 +248,7 @@ nuget install <package_id> -OutputDirectory <output_directory> \
- `<package_id>` is the package ID. - `<package_id>` is the package ID.
- `<output_directory>` is the output directory, where the package is installed. - `<output_directory>` is the output directory, where the package is installed.
- `<package_version>` The package version. Optional. - `<package_version>` The package version. Optional.
- `<source_name>` The source name. Optional. - `<source_name>` The source name. Optional.
### Install a package with the .NET CLI ### Install a package with the .NET CLI
......
...@@ -113,7 +113,7 @@ After you create a project, you can create a package. ...@@ -113,7 +113,7 @@ After you create a project, you can create a package.
```python ```python
import setuptools import setuptools
setuptools.setup( setuptools.setup(
name="mypypipackage", name="mypypipackage",
version="0.0.1", version="0.0.1",
...@@ -333,7 +333,7 @@ Successfully installed mypypipackage-0.0.1 ...@@ -333,7 +333,7 @@ Successfully installed mypypipackage-0.0.1
### Package names ### Package names
GitLab looks for packages that use GitLab looks for packages that use
[Python normalized names (PEP-503)](https://www.python.org/dev/peps/pep-0503/#normalized-names). [Python normalized names (PEP-503)](https://www.python.org/dev/peps/pep-0503/#normalized-names).
The characters `-`, `_`, and `.` are all treated the same, and repeated The characters `-`, `_`, and `.` are all treated the same, and repeated
characters are removed. characters are removed.
......
...@@ -124,9 +124,9 @@ First configure FortiAuthenticator in GitLab. On your GitLab server: ...@@ -124,9 +124,9 @@ First configure FortiAuthenticator in GitLab. On your GitLab server:
``` ```
1. Save the configuration file. 1. Save the configuration file.
1. [Reconfigure](../../../administration/restart_gitlab.md#omnibus-gitlab-reconfigure) 1. [Reconfigure](../../../administration/restart_gitlab.md#omnibus-gitlab-reconfigure)
or [restart GitLab](../../../administration/restart_gitlab.md#installations-from-source) or [restart GitLab](../../../administration/restart_gitlab.md#installations-from-source)
for the changes to take effect if you installed GitLab via Omnibus or from for the changes to take effect if you installed GitLab via Omnibus or from
source respectively. source respectively.
#### Enable FortiAuthenticator integration #### Enable FortiAuthenticator integration
...@@ -376,7 +376,7 @@ Sign in and re-enable two-factor authentication as soon as possible. ...@@ -376,7 +376,7 @@ Sign in and re-enable two-factor authentication as soon as possible.
you may have cases where authorization always fails because of time differences. you may have cases where authorization always fails because of time differences.
- The GitLab U2F implementation does _not_ work when the GitLab instance is accessed from - The GitLab U2F implementation does _not_ work when the GitLab instance is accessed from
multiple hostnames, or FQDNs. Each U2F registration is linked to the _current hostname_ at multiple hostnames, or FQDNs. Each U2F registration is linked to the _current hostname_ at
the time of registration, and cannot be used for other hostnames/FQDNs. The same applies to the time of registration, and cannot be used for other hostnames/FQDNs. The same applies to
WebAuthn registrations. WebAuthn registrations.
For example, if a user is trying to access a GitLab instance from `first.host.xyz` and `second.host.xyz`: For example, if a user is trying to access a GitLab instance from `first.host.xyz` and `second.host.xyz`:
......
...@@ -139,7 +139,7 @@ To create and add a new Kubernetes cluster to your project, group, or instance: ...@@ -139,7 +139,7 @@ To create and add a new Kubernetes cluster to your project, group, or instance:
1. Enter a role name and optional description into the fields provided. 1. Enter a role name and optional description into the fields provided.
1. Click **Create role**, the new role name will appear at the top. Click on its name and copy the `Role ARN` from the newly created role. 1. Click **Create role**, the new role name will appear at the top. Click on its name and copy the `Role ARN` from the newly created role.
1. In GitLab, enter the copied role ARN into the `Role ARN` field. 1. In GitLab, enter the copied role ARN into the `Role ARN` field.
1. In the **Cluster Region** field, enter the [region](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html) you plan to use for your new cluster. GitLab will authenticate you have access to this region when authenticating your role. 1. In the **Cluster Region** field, enter the [region](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html) you plan to use for your new cluster. GitLab will authenticate you have access to this region when authenticating your role.
1. Click **Authenticate with AWS**. 1. Click **Authenticate with AWS**.
1. Choose your cluster's settings: 1. Choose your cluster's settings:
- **Kubernetes cluster name** - The name you wish to give the cluster. - **Kubernetes cluster name** - The name you wish to give the cluster.
...@@ -184,7 +184,7 @@ The following errors are commonly encountered when creating a new cluster. ...@@ -184,7 +184,7 @@ The following errors are commonly encountered when creating a new cluster.
When submitting the initial authentication form, GitLab returns a status code 422 When submitting the initial authentication form, GitLab returns a status code 422
error when it can't determine the role or region you've provided. Make sure you've error when it can't determine the role or region you've provided. Make sure you've
correctly configured your role with the **Account ID** and **External ID** correctly configured your role with the **Account ID** and **External ID**
provided by GitLab. In GitLab, make sure to enter the correct **Role ARN**. provided by GitLab. In GitLab, make sure to enter the correct **Role ARN**.
Make sure you also have access to the chosen region. Make sure you also have access to the chosen region.
#### Could not load Security Groups for this VPC #### Could not load Security Groups for this VPC
......
...@@ -65,7 +65,7 @@ The Advanced Search Syntax also supports the use of filters. The available filte ...@@ -65,7 +65,7 @@ The Advanced Search Syntax also supports the use of filters. The available filte
- blob: Filters by Git `object ID`. Exact match only. - blob: Filters by Git `object ID`. Exact match only.
To use them, add them to your keyword in the format `<filter_name>:<value>` without To use them, add them to your keyword in the format `<filter_name>:<value>` without
any spaces between the colon (`:`) and the value. A keyword or an asterisk (`*`) is required for filter searches and has to be added in front of the filter separated by a space. any spaces between the colon (`:`) and the value. A keyword or an asterisk (`*`) is required for filter searches and has to be added in front of the filter separated by a space.
Examples: Examples:
......
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