Add latest changes from gitlab-org/gitlab@master

This commit is contained in:
GitLab Bot 2021-05-21 18:11:01 +00:00
parent 42d323de78
commit f26782b146
32 changed files with 203 additions and 219 deletions

View file

@ -10,5 +10,4 @@ lint-yaml:
variables: variables:
LINT_PATHS: .gitlab-ci.yml .gitlab/ci lib/gitlab/ci/templates changelogs LINT_PATHS: .gitlab-ci.yml .gitlab/ci lib/gitlab/ci/templates changelogs
script: script:
- '[[ ! -d "ee/" ]] || export LINT_PATHS="$LINT_PATHS ee/changelogs"'
- yamllint -f colored $LINT_PATHS - yamllint -f colored $LINT_PATHS

View file

@ -10,6 +10,7 @@ export default {
TopNavMenuItem, TopNavMenuItem,
VuexModuleProvider, VuexModuleProvider,
}, },
inheritAttrs: false,
props: { props: {
frequentItemsVuexModule: { frequentItemsVuexModule: {
type: String, type: String,

View file

@ -1,9 +1,9 @@
--- ---
key_path: git.version key_path: git.version
description: '' description: Information about Git version
product_section: '' product_section: enablement
product_stage: '' product_stage: enablement
product_group: '' product_group: group::distribution
product_category: '' product_category: ''
value_type: string value_type: string
status: data_available status: data_available
@ -11,6 +11,8 @@ time_frame: none
data_source: system data_source: system
distribution: distribution:
- ce - ce
- ee
tier: tier:
- free - free
skip_validation: true - premium
- ultimate

View file

@ -98,6 +98,9 @@ Note the following when promoting a secondary:
- If you encounter an `ActiveRecord::RecordInvalid: Validation failed: Name has already been taken` - If you encounter an `ActiveRecord::RecordInvalid: Validation failed: Name has already been taken`
error message during this process, for more information, see this error message during this process, for more information, see this
[troubleshooting advice](../replication/troubleshooting.md#fixing-errors-during-a-failover-or-when-promoting-a-secondary-to-a-primary-node). [troubleshooting advice](../replication/troubleshooting.md#fixing-errors-during-a-failover-or-when-promoting-a-secondary-to-a-primary-node).
- If you run into errors when using `--force` or `--skip-preflight-checks` before 13.5 during this process,
for more information, see this
[troubleshooting advice](../replication/troubleshooting.md#errors-when-using---skip-preflight-checks-or---force).
#### Promoting a **secondary** node running on a single machine #### Promoting a **secondary** node running on a single machine

View file

@ -756,6 +756,30 @@ this command reports `ERROR - Replication is not up-to-date` even if
replication is actually up-to-date. If replication and verification output replication is actually up-to-date. If replication and verification output
shows that it is complete, you can add `--skip-preflight-checks` to make the command complete promotion. This bug was fixed in GitLab 13.8 and later. shows that it is complete, you can add `--skip-preflight-checks` to make the command complete promotion. This bug was fixed in GitLab 13.8 and later.
### Errors when using `--skip-preflight-checks` or `--force`
Before GitLab 13.5, you could bump into one of the following errors when using
`--skip-preflight-checks` or `--force`:
```plaintext
get_ctl_options': invalid option: --skip-preflight-checks (OptionParser::InvalidOption)
get_ctl_options': invalid option: --force (OptionParser::InvalidOption)
```
This can happen with XFS or filesystems that list files in lexical order, because the
load order of the Omnibus command files can be different than expected, and a global function would get redefined.
More details can be found in [the related issue](https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/6076).
The workaround is to manually run the preflight checks and promote the database, by running
the following commands on the Geo secondary site:
```shell
sudo gitlab-ctl promotion-preflight-checks
sudo /opt/gitlab/embedded/bin/gitlab-pg-ctl promote
sudo gitlab-ctl reconfigure
sudo gitlab-rake geo:set_secondary_as_primary
## Expired artifacts ## Expired artifacts
If you notice for some reason there are more artifacts on the Geo If you notice for some reason there are more artifacts on the Geo

View file

@ -82,6 +82,12 @@ paused fails. Do not pause replication before promoting a secondary. If the
node is paused, be sure to resume before promoting. To avoid this issue, node is paused, be sure to resume before promoting. To avoid this issue,
upgrade to GitLab 13.4 or later. upgrade to GitLab 13.4 or later.
WARNING:
Promoting the database during a failover can fail on XFS and filesystems ordering files lexically,
when using `--force` or `--skip-preflight-checks`, due to [an issue](https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/6076) fixed in 13.5.
The [troubleshooting steps](troubleshooting.md#errors-when-using---skip-preflight-checks-or---force)
contain a workaround if you run into errors during the failover.
## Updating to GitLab 13.2 ## Updating to GitLab 13.2
In GitLab 13.2, promoting a secondary node to a primary while the secondary is In GitLab 13.2, promoting a secondary node to a primary while the secondary is

View file

@ -996,7 +996,7 @@ POST /projects/:id/issues
| `issue_type` | string | no | The type of issue. One of `issue`, `incident`, or `test_case`. Default is `issue`. | | `issue_type` | string | no | The type of issue. One of `issue`, `incident`, or `test_case`. Default is `issue`. |
| `labels` | string | no | Comma-separated label names for an issue | | `labels` | string | no | Comma-separated label names for an issue |
| `merge_request_to_resolve_discussions_of` | integer | no | The IID of a merge request in which to resolve all issues. This fills out the issue with a default description and mark all discussions as resolved. When passing a description or title, these values take precedence over the default values.| | `merge_request_to_resolve_discussions_of` | integer | no | The IID of a merge request in which to resolve all issues. This fills out the issue with a default description and mark all discussions as resolved. When passing a description or title, these values take precedence over the default values.|
| `milestone_id` | integer | no | The global ID of a milestone to assign issue | | `milestone_id` | integer | no | The global ID of a milestone to assign issue. To find the `milestone_id` associated with a milestone, view an issue with the milestone assigned and [use the API](#single-project-issue) to retrieve the issue's details. |
| `title` | string | yes | The title of an issue | | `title` | string | yes | The title of an issue |
| `weight` **(PREMIUM)** | integer | no | The weight of the issue. Valid values are greater than or equal to 0. | | `weight` **(PREMIUM)** | integer | no | The weight of the issue. Valid values are greater than or equal to 0. |

View file

@ -1238,7 +1238,7 @@ POST /projects/user/:user_id
| `show_default_award_emojis` | boolean | **{dotted-circle}** No | Show default award emojis. | | `show_default_award_emojis` | boolean | **{dotted-circle}** No | Show default award emojis. |
| `snippets_access_level` | string | **{dotted-circle}** No | One of `disabled`, `private`, or `enabled`. | | `snippets_access_level` | string | **{dotted-circle}** No | One of `disabled`, `private`, or `enabled`. |
| `snippets_enabled` | boolean | **{dotted-circle}** No | _(Deprecated)_ Enable snippets for this project. Use `snippets_access_level` instead. | | `snippets_enabled` | boolean | **{dotted-circle}** No | _(Deprecated)_ Enable snippets for this project. Use `snippets_access_level` instead. |
| `suggestion_commit_message` | string | **{dotted-circle}** No | The commit message used to apply merge request suggestions. | | `suggestion_commit_message` | string | **{dotted-circle}** No | The commit message used to apply merge request [suggestions](../user/project/merge_requests/reviews/suggestions.md). |
| `tag_list` | array | **{dotted-circle}** No | The list of tags for a project; put array of tags, that should be finally assigned to a project. | | `tag_list` | array | **{dotted-circle}** No | The list of tags for a project; put array of tags, that should be finally assigned to a project. |
| `template_name` | string | **{dotted-circle}** No | When used without `use_custom_template`, name of a [built-in project template](../user/project/working_with_projects.md#built-in-templates). When used with `use_custom_template`, name of a custom project template. | | `template_name` | string | **{dotted-circle}** No | When used without `use_custom_template`, name of a [built-in project template](../user/project/working_with_projects.md#built-in-templates). When used with `use_custom_template`, name of a custom project template. |
| `use_custom_template` **(PREMIUM)** | boolean | **{dotted-circle}** No | Use either custom [instance](../user/admin_area/custom_project_templates.md) or [group](../user/group/custom_project_templates.md) (with `group_with_project_templates_id`) project template. | | `use_custom_template` **(PREMIUM)** | boolean | **{dotted-circle}** No | Use either custom [instance](../user/admin_area/custom_project_templates.md) or [group](../user/group/custom_project_templates.md) (with `group_with_project_templates_id`) project template. |

View file

@ -7,6 +7,8 @@ type: reference, api
# Suggest Changes API **(FREE)** # Suggest Changes API **(FREE)**
This page describes the API for [suggesting changes](../user/project/merge_requests/reviews/suggestions.md).
Every API call to suggestions must be authenticated. Every API call to suggestions must be authenticated.
## Applying suggestions ## Applying suggestions

View file

@ -33,7 +33,8 @@ In the Markdown doc for a resource (AKA endpoint):
## API topic template ## API topic template
The following can be used as a template to get started: Use the following template to help you get started. Be sure to list any
required attributes first in the table.
````markdown ````markdown
## Descriptive title ## Descriptive title
@ -50,8 +51,10 @@ Supported attributes:
| Attribute | Type | Required | Description | | Attribute | Type | Required | Description |
|:------------|:---------|:---------|:----------------------| |:------------|:---------|:---------|:----------------------|
| `attribute` | datatype | yes/no | Detailed description. | | `attribute` | datatype | **{check-circle}** Yes | Detailed description. |
| `attribute` | datatype | yes/no | Detailed description. | | `attribute` | datatype | **{dotted-circle}** No | Detailed description. |
| `attribute` | datatype | **{dotted-circle}** No | Detailed description. |
| `attribute` | datatype | **{dotted-circle}** No | Detailed description. |
Example request: Example request:

View file

@ -60,3 +60,17 @@ feature flags, and there is currently no strong suggestion to use one over the o
Historical Context: `Experimentation Module` was built iteratively with the needs that Historical Context: `Experimentation Module` was built iteratively with the needs that
appeared while implementing Growth sub-department experiments, while GLEX was built appeared while implementing Growth sub-department experiments, while GLEX was built
with the findings of the team and an easier to use API. with the findings of the team and an easier to use API.
### Add new icons and illustrations for experiments
Some experiments may require you to add custom icons or illustrations to our codebase.
This process is lengthy and at this stage, the outcome of the experiment uncertain.
Therefore, you should postpone this effort until the [experiment cleanup process](https://about.gitlab.com/handbook/engineering/development/growth/#experiment-cleanup-issue).
We recommend the following workflow:
1. Add an icon or illustration as an `.svg` file in the `/app/assets/images` (or EE) path in the GitLab repository.
1. Use `image_tag` or `image_path` to render it via the asset pipeline.
1. **If the experiment is a success**, designers add the new icon or illustration to the Pajamas UI kit as part of the cleanup process.
Engineers can then add it to the [SVG library](https://gitlab-org.gitlab.io/gitlab-svgs/) and modify the implementation based on the
[Frontend Development Guidelines](../fe_guide/icons.md#usage-in-hamlrails-2).

View file

@ -9,7 +9,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
CrowdIn automatically syncs the `gitlab.pot` file with the CrowdIn service, presenting CrowdIn automatically syncs the `gitlab.pot` file with the CrowdIn service, presenting
newly added externalized strings to the community of translators. newly added externalized strings to the community of translators.
[GitLab CrowdIn Bot](https://gitlab.com/gitlab-crowdin-bot) also creates merge requests The [GitLab CrowdIn Bot](https://gitlab.com/gitlab-crowdin-bot) also creates merge requests
to take newly approved translation submissions and merge them into the `locale/<language>/gitlab.po` to take newly approved translation submissions and merge them into the `locale/<language>/gitlab.po`
files. Check the [merge requests created by `gitlab-crowdin-bot`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests?scope=all&utf8=%E2%9C%93&state=opened&author_username=gitlab-crowdin-bot) files. Check the [merge requests created by `gitlab-crowdin-bot`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests?scope=all&utf8=%E2%9C%93&state=opened&author_username=gitlab-crowdin-bot)
to see new and merged merge requests. to see new and merged merge requests.
@ -17,35 +17,34 @@ to see new and merged merge requests.
## Validation ## Validation
By default CrowdIn commits translations with `[skip ci]` in the commit By default CrowdIn commits translations with `[skip ci]` in the commit
message. This is done to avoid a bunch of pipelines being run. Before message. This avoids an excessive number of pipelines from running.
merging translations, make sure to trigger a pipeline to validate Before merging translations, make sure to trigger a pipeline to validate
translations, we have static analysis validating things CrowdIn translations. Static analysis validates things CrowdIn doesn't do. Create
doesn't do. Create a new pipeline at `https://gitlab.com/gitlab-org/gitlab/pipelines/new` a new pipeline at [`https://gitlab.com/gitlab-org/gitlab/pipelines/new`](https://gitlab.com/gitlab-org/gitlab/pipelines/new)
(need Developer access permissions) for the `master-i18n` branch. (need developer permissions) for the `master-i18n` branch.
If there are validation errors, the easiest solution is to disapprove If there are validation errors, the easiest solution is to disapprove
the offending string in CrowdIn, leaving a comment with what is the offending string in CrowdIn, leaving a comment with what is
required to fix the offense. There is an required to fix the errors. There's an
[issue](https://gitlab.com/gitlab-org/gitlab/-/issues/23256) [issue](https://gitlab.com/gitlab-org/gitlab/-/issues/23256)
suggesting to automate this process. Disapproving excludes the that suggests automating this process. Disapproving excludes the
invalid translation, the merge request is then updated within a few invalid translation. The merge request is then updated within a few
minutes. minutes.
If the translation has failed validation due to angle brackets `<` or `>` If the translation fails validation due to angle brackets (`<` or `>`),
it should be disapproved on CrowdIn as our strings should be it should be disapproved in CrowdIn. Our strings must use [variables](externalization.md#html)
using [variables](externalization.md#html) for HTML instead. for HTML instead.
It might be handy to pause the integration on the CrowdIn side for a It might be useful to pause the integration on the CrowdIn side for a
little while so translations don't keep coming. This can be done by moment so translations don't keep coming. You can do this by clicking
clicking `Pause sync` on the [CrowdIn integration settings **Pause sync** on the [CrowdIn integration settings page](https://translate.gitlab.com/project/gitlab-ee/settings#integration).
page](https://translate.gitlab.com/project/gitlab-ee/settings#integration).
## Merging translations ## Merging translations
After all translations are determined to be appropriate and the pipelines pass, After all translations are determined to be appropriate and the pipelines pass,
you can merge the translations into the default branch. When merging translations, you can merge the translations into the default branch. When merging translations,
be sure to select the **Remove source branch** check box, which causes CrowdIn be sure to select the **Remove source branch** checkbox. This causes CrowdIn
to recreate the `master-i18n` from the default branch after merging the new to recreate the `master-i18n` branch from the default branch after merging the new
translation. translation.
We are discussing [automating this entire process](https://gitlab.com/gitlab-org/gitlab/-/issues/19896). We are discussing [automating this entire process](https://gitlab.com/gitlab-org/gitlab/-/issues/19896).
@ -54,10 +53,8 @@ We are discussing [automating this entire process](https://gitlab.com/gitlab-org
CrowdIn creates a new merge request as soon as the old one is closed CrowdIn creates a new merge request as soon as the old one is closed
or merged. But it does not recreate the `master-i18n` branch every or merged. But it does not recreate the `master-i18n` branch every
time. To force CrowdIn to recreate the branch, close any [open merge time. To force CrowdIn to recreate the branch, close any [open merge requests](https://gitlab.com/gitlab-org/gitlab/-/merge_requests?scope=all&utf8=%E2%9C%93&state=opened&author_username=gitlab-crowdin-bot)
request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests?scope=all&utf8=%E2%9C%93&state=opened&author_username=gitlab-crowdin-bot) and delete the [`master-18n`](https://gitlab.com/gitlab-org/gitlab/-/branches/all?utf8=✓&search=master-i18n) branch.
and delete the
[`master-18n`](https://gitlab.com/gitlab-org/gitlab/-/branches/all?utf8=✓&search=master-i18n).
This might be needed when the merge request contains failures that This might be needed when the merge request contains failures that
have been fixed on the default branch. have been fixed on the default branch.
@ -76,8 +73,8 @@ recreate it with the following steps:
1. Sign in to CrowdIn with the GitLab integration. 1. Sign in to CrowdIn with the GitLab integration.
1. Go to **Settings > Integrations > GitLab > Set Up Integration**. 1. Go to **Settings > Integrations > GitLab > Set Up Integration**.
1. Select the `gitlab-org/gitlab` repository. 1. Select the `gitlab-org/gitlab` repository.
1. In `Select Branches for Translation`, select `master`. 1. In **Select Branches for Translation**, select `master`.
1. Ensure the `Service Branch Name` is `master-i18n`. 1. Ensure the **Service Branch Name** is `master-i18n`.
## Manually update the translation levels ## Manually update the translation levels

View file

@ -121,35 +121,35 @@ are very appreciative of the work done by translators and proofreaders!
## Become a proofreader ## Become a proofreader
Before requesting Proofreader permissions in CrowdIn, be sure you have a history Before requesting proofreader permissions in CrowdIn, be sure you have a history of contributing
of contributing translations to the GitLab project. translations to the GitLab project.
1. Contribute translations to GitLab. See instructions for 1. Contribute translations to GitLab. See instructions for
[translating GitLab](translation.md). [translating GitLab](translation.md).
Translating GitLab is a community effort that requires team work and Translating GitLab is a community effort that requires teamwork and attention to detail.
attention to detail. Proofreaders play an important role helping new Proofreaders play an important role helping new contributors, and ensuring the consistency and
contributors, and ensuring the consistency and quality of translations. quality of translations. Your conduct and contributions as a translator should reflect this
Your conduct and contributions as a translator should reflect this before before requesting to be a proofreader.
requesting to be a proofreader.
1. Request proofreader permissions by opening a merge request to add yourself 1. Request proofreader permissions by opening a merge request to add yourself to the list of
to the list of proofreaders. proofreaders.
Open the [proofreader.md source file](https://gitlab.com/gitlab-org/gitlab/blob/master/doc/development/i18n/proofreader.md) and click **Edit**. Open the [`proofreader.md` source file](https://gitlab.com/gitlab-org/gitlab/blob/master/doc/development/i18n/proofreader.md) and click **Edit**.
Add your language in alphabetical order, and add yourself to the list Add your language in alphabetical order and add yourself to the list, including:
including:
- name
- link to your GitLab profile
- link to your CrowdIn profile
In the merge request description, include links to any projects you have - Name
previously translated. - Link to your GitLab profile
- Link to your CrowdIn profile
1. Your request to become a proofreader is considered on the merits of In the merge request description, include links to any projects you have previously translated.
your previous translations by [GitLab team members](https://about.gitlab.com/company/team/)
or [Core team members](https://about.gitlab.com/community/core-team/) who are fluent in 1. [GitLab team members](https://about.gitlab.com/company/team/),
the language or current proofreaders. [Core team members](https://about.gitlab.com/community/core-team/),
- When a request is made for the first proofreader for a language and there are no [GitLab team members](https://about.gitlab.com/company/team/) or current proofreaders fluent in the language consider your request to become a proofreader
or [Core team members](https://about.gitlab.com/community/core-team/) who speak the language, we shall request links to previous translation work in other communities or projects. based on the merits of your previous translations.
- If you request to become the first proofreader for a language and there are no GitLab or Core
team members who speak that language, we request links to previous translation work in other
communities or projects.

View file

@ -6,47 +6,39 @@ info: To determine the technical writer assigned to the Stage/Group associated w
# Translating GitLab # Translating GitLab
For managing the translation process we use [CrowdIn](https://crowdin.com). For managing the translation process, we use [CrowdIn](https://crowdin.com).
To contribute translations at [`translate.gitlab.com`](https://translate.gitlab.com),
you must create a CrowdIn account. You may create a new account or use any of their supported
sign-in services.
## Using CrowdIn ## Language selections
The first step is to get familiar with CrowdIn. GitLab is being translated into many languages. To select a language to contribute to:
### Sign In 1. Find the language that you want to contribute to, in the
To contribute translations at <https://translate.gitlab.com>
you must create a CrowdIn account.
You may create a new account or use any of their supported sign in services.
### Language Selections
GitLab is being translated into many languages.
1. Find the language that you want to contribute to, in our
[GitLab CrowdIn project](https://crowdin.com/project/gitlab-ee). [GitLab CrowdIn project](https://crowdin.com/project/gitlab-ee).
- If the language that you're looking for is available, proceed
to the next step.
- If the language you are looking for is not available,
[open an issue](https://gitlab.com/gitlab-org/gitlab/-/issues?scope=all&utf8=✓&state=all&label_name[]=Category%3AInternationalization). Notify our CrowdIn
administrators by including `@gitlab-org/manage/import` in your issue.
- After the issue/Merge Request is complete, restart this procedure.
1. Next, you can view list of files and folders.
Select `gitlab.pot` to open the translation editor.
### Translation Editor - If the language you want is available, proceed to the next step.
- If the language you want is not available,
[open an issue](https://gitlab.com/gitlab-org/gitlab/-/issues?scope=all&utf8=✓&state=all&label_name[]=Category%3AInternationalization).
Notify our CrowdIn administrators by including `@gitlab-org/manage/import` in your issue.
- After the issue and any merge requests are complete, restart this procedure.
1. View the list of files and folders. Select `gitlab.pot` to open the translation editor.
### Translation editor
The online translation editor is the easiest way to contribute translations. The online translation editor is the easiest way to contribute translations.
![CrowdIn Editor](img/crowdin-editor.png) ![CrowdIn Editor](img/crowdin-editor.png)
1. Strings for translation are listed in the left panel - Strings for translation are listed in the left panel.
1. Translations are entered into the central panel. - Translations are entered into the central panel. Multiple translations are required for strings
Multiple translations are required for strings that contains plurals. that contain plurals. The string to translate is shown in the above image with glossary terms
The string to be translated is shown above with glossary terms highlighted. highlighted. If the string to translate isn't clear, you can request context.
If the string to be translated is not clear, you can 'Request Context'
A glossary of common terms is available in the right panel by clicking Terms. A glossary of common terms is available in the **Terms** tab in the right panel. In the **Comments**
Comments can be added to discuss a translation with the community. tab, you can add comments to discuss a translation with the community.
Remember to **Save** each translation. Remember to **Save** each translation.
@ -56,21 +48,18 @@ Be sure to check the following guidelines before you translate any strings.
### Namespaced strings ### Namespaced strings
When an externalized string is prepended with a namespace, e.g. When an externalized string is prepended with a namespace (for example,
`s_('OpenedNDaysAgo|Opened')`, the namespace should be removed from the final `s_('OpenedNDaysAgo|Opened')`), the namespace should be removed from the final translation. For
translation. example, in French, `OpenedNDaysAgo|Opened` is translated to `Ouvert•e`, not
For example in French `OpenedNDaysAgo|Opened` would be translated to `OpenedNDaysAgo|Ouvert•e`.
`Ouvert•e`, not `OpenedNDaysAgo|Ouvert•e`.
### Technical terms ### Technical terms
Some technical terms should be treated like proper nouns and not be translated. You should treat some technical terms like proper nouns and not translate them. Technical terms that
should always be in English are noted in the glossary when using
Technical terms that should always be in English are noted in the glossary when [`translate.gitlab.com`](https://translate.gitlab.com).
using <https://translate.gitlab.com>. This helps maintain a logical connection and consistency between tools (for example, a Git client)
and GitLab.
This helps maintain a logical connection and consistency between tools (e.g.
`git` client) and GitLab.
### Formality ### Formality
@ -78,36 +67,33 @@ The level of formality used in software varies by language:
| Language | Formality | Example | | Language | Formality | Example |
| -------- | --------- | ------- | | -------- | --------- | ------- |
| French | formal | `vous` for `you` | | French | formal | `vous` for `you` |
| German | informal | `du` for `you` | | German | informal | `du` for `you` |
You can refer to other translated strings and notes in the glossary to assist Refer to other translated strings and notes in the glossary to assist you in determining a suitable
determining a suitable level of formality. level of formality.
### Inclusive language ### Inclusive language
[Diversity](https://about.gitlab.com/handbook/values/#diversity) is a GitLab value. [Diversity, inclusion, and belonging](https://about.gitlab.com/handbook/values/#diversity-inclusion)
We ask you to avoid translations which exclude people based on their gender or are GitLab values. We ask you to avoid translations that exclude people based on their gender or
ethnicity. ethnicity. In languages that distinguish between a male and female form, use both or choose a
In languages which distinguish between a male and female form, use both or neutral formulation.
choose a neutral formulation.
<!-- vale gitlab.Spelling = NO --> <!-- vale gitlab.Spelling = NO -->
For example in German, the word "user" can be translated into "Benutzer" (male) or "Benutzerin" (female). For example, in German, the word _user_ can be translated into _Benutzer_ (male) or _Benutzerin_
Therefore "create a new user" would translate into "Benutzer(in) anlegen". (female). Therefore, _create a new user_ translates to _Benutzer(in) anlegen_.
<!-- vale gitlab.Spelling = YES --> <!-- vale gitlab.Spelling = YES -->
### Updating the glossary ### Updating the glossary
To propose additions to the glossary please To propose additions to the glossary, please
[open an issue](https://gitlab.com/gitlab-org/gitlab/-/issues?scope=all&utf8=✓&state=all&label_name[]=Category%3AInternationalization). [open an issue](https://gitlab.com/gitlab-org/gitlab/-/issues?scope=all&utf8=✓&state=all&label_name[]=Category%3AInternationalization).
## French Translation Guidelines ## French translation guidelines
### Inclusive language in French
<!-- vale gitlab.Spelling = NO --> <!-- vale gitlab.Spelling = NO -->
In French, the "écriture inclusive" is now over (see on [Legifrance](https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000036068906/)). In French, the _écriture inclusive_ is now over (see on [Legifrance](https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000036068906/)).
So, to include both genders, write "Utilisateurs et utilisatrices" instead of "Utilisateur·rice·s". To include both genders, write _Utilisateurs et utilisatrices_ instead of _Utilisateur·rice·s_. If
When space is missing, the male gender should be used alone. there is not enough space, use the male gender alone.
<!-- vale gitlab.Spelling = YES --> <!-- vale gitlab.Spelling = YES -->

View file

@ -6960,15 +6960,15 @@ Tiers: `premium`, `ultimate`
### `git.version` ### `git.version`
Missing description Information about Git version
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/license/20210216183237_version.yml) [YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/license/20210216183237_version.yml)
Group: `` Group: `group::distribution`
Status: `data_available` Status: `data_available`
Tiers: `free` Tiers: `free`, `premium`, `ultimate`
### `gitaly.clusters` ### `gitaly.clusters`

View file

@ -1069,7 +1069,6 @@ You can install the following applications with one click:
- [Knative](#knative) - [Knative](#knative)
- [Crossplane](#crossplane) - [Crossplane](#crossplane)
- [Elastic Stack](#elastic-stack) - [Elastic Stack](#elastic-stack)
- [Fluentd](#fluentd)
With the exception of Knative, the applications are installed in a dedicated With the exception of Knative, the applications are installed in a dedicated
namespace called `gitlab-managed-apps`. namespace called `gitlab-managed-apps`.
@ -1561,27 +1560,6 @@ kubectl port-forward svc/kibana-kibana 5601:5601
Then, you can visit Kibana at `http://localhost:5601`. Then, you can visit Kibana at `http://localhost:5601`.
### Fluentd
> Introduced in GitLab 12.10 for project- and group-level clusters.
[Fluentd](https://www.fluentd.org/) is an open source data collector, which enables
you to unify the data collection and consumption to better use and understand
your data. Fluentd sends logs in syslog format.
To enable Fluentd:
1. Navigate to **Operations > Kubernetes** and click
**Applications**. Enter a host, port, and protocol
for sending the WAF logs with syslog.
1. Provide the host domain name or URL in **SIEM Hostname**.
1. Provide the host port number in **SIEM Port**.
1. Select a **SIEM Protocol**.
1. Select at least one of the available logs (such as WAF or Cilium).
1. Click **Save changes**.
![Fluentd input fields](img/fluentd_v13_0.png)
## Upgrading applications ## Upgrading applications
> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/24789) in GitLab 11.8. > [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/24789) in GitLab 11.8.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

View file

@ -7,7 +7,8 @@ type: reference, howto
# Threads **(FREE)** # Threads **(FREE)**
GitLab encourages communication through comments, threads, and suggestions. GitLab encourages communication through comments, threads, and
[code suggestions](../project/merge_requests/reviews/suggestions.md).
For example, you can create a comment in the following places: For example, you can create a comment in the following places:
@ -22,7 +23,9 @@ There are standard comments, and you also have the option to create a comment
in the form of a thread. A comment can also be [turned into a thread](#start-a-thread-by-replying-to-a-standard-comment) in the form of a thread. A comment can also be [turned into a thread](#start-a-thread-by-replying-to-a-standard-comment)
when it receives a reply. when it receives a reply.
The comment area supports [Markdown](../markdown.md) and [quick actions](../project/quick_actions.md). You can edit your own The comment area supports [Markdown](../markdown.md) and [quick actions](../project/quick_actions.md).
You can [suggest code changes](../project/merge_requests/reviews/suggestions.md) in your comment,
which the user can accept through the user interface. You can edit your own
comment at any time, and anyone with [Maintainer access level](../permissions.md) or comment at any time, and anyone with [Maintainer access level](../permissions.md) or
higher can also edit a comment made by someone else. higher can also edit a comment made by someone else.

View file

@ -28,8 +28,8 @@ users define profiles for these technologies.
See the [installation guide](quick_start_guide.md) for the recommended steps to install the See the [installation guide](quick_start_guide.md) for the recommended steps to install the
Container Host Security capabilities. This guide shows the recommended way of installing Container Container Host Security capabilities. This guide shows the recommended way of installing Container
Host Security through GMAv2. However, it's also possible to do a manual installation through our Host Security through the Cluster Management Project. However, it's also possible to do a manual
Helm chart. installation through our Helm chart.
## Features ## Features

View file

@ -6,9 +6,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
# Getting started with Container Host Security # Getting started with Container Host Security
The following steps are recommended for installing Container Host Security. Although you can install The following steps are recommended for installing Container Host Security.
some capabilities through GMAv1, we [recommend](#using-gmav1-with-gmav2) that you install
applications through GMAv2 exclusively when using Container Network Security.
## Installation steps ## Installation steps
@ -21,7 +19,7 @@ The following steps are recommended to install and use Container Host Security t
1. Install and configure an Ingress node: 1. Install and configure an Ingress node:
- [Install the Ingress node via CI/CD (GMAv2)](../../../../clusters/applications.md#install-ingress-using-gitlab-cicd). - [Install the Ingress node via CI/CD (Cluster Management Project)](../../../../clusters/applications.md#install-ingress-using-gitlab-cicd).
- [Determine the external endpoint via the manual method](../../../../clusters/applications.md#determining-the-external-endpoint-manually). - [Determine the external endpoint via the manual method](../../../../clusters/applications.md#determining-the-external-endpoint-manually).
- Navigate to the Kubernetes page and enter the [DNS address for the external endpoint](../../index.md#base-domain) - Navigate to the Kubernetes page and enter the [DNS address for the external endpoint](../../index.md#base-domain)
into the **Base domain** field on the **Details** tab. Save the changes to the Kubernetes into the **Base domain** field on the **Details** tab. Save the changes to the Kubernetes
@ -63,19 +61,6 @@ initial troubleshooting steps that resolve the most common problems:
`kubectl delete namespaces <insert-some-namespace-name>` in your Kubernetes cluster. `kubectl delete namespaces <insert-some-namespace-name>` in your Kubernetes cluster.
- Rerun the application project pipeline to redeploy the application. - Rerun the application project pipeline to redeploy the application.
### Using GMAv1 with GMAv2
When GMAv1 and GMAv2 are used together on the same cluster, users may experience problems with
applications being uninstalled or removed from the cluster. This is because GMAv2 actively
uninstalls applications that are installed with GMAv1 and not configured to be installed with GMAv2.
It's possible to use a mixture of applications installed with GMAv1 and GMAv2 by ensuring that the
GMAv1 applications are installed **after** the GMAv2 cluster management project pipeline runs. GMAv1
applications must be reinstalled after each run of that pipeline. This approach isn't recommended as
it's error-prone and can lead to downtime as applications are uninstalled and later reinstalled.
When using Container Network Security, the preferred and recommended path is to install all
necessary components with GMAv2 and the cluster management project.
**Related documentation links:** **Related documentation links:**
- [GitLab Managed Apps v1 (GMAv1)](../../../../clusters/applications.md#install-with-one-click-deprecated) - [Cluster Management Project](../../../../clusters/management_project.md)
- [GitLab Managed Apps v2 (GMAv2)](../../../../clusters/management_project.md)

View file

@ -20,8 +20,8 @@ disabled by default, as they must usually be customized to match application-spe
See the [installation guide](quick_start_guide.md) for the recommended steps to install GitLab See the [installation guide](quick_start_guide.md) for the recommended steps to install GitLab
Container Network Security. This guide shows the recommended way of installing Container Network Container Network Security. This guide shows the recommended way of installing Container Network
Security through GMAv2. However, it's also possible to install Cilium manually through our Helm Security through the Cluster Management Project. However, it's also possible to install Cilium
chart. manually through our Helm chart.
## Features ## Features

View file

@ -6,9 +6,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
# Getting started with Container Network Security # Getting started with Container Network Security
The following steps are recommended for installing Container Network Security. Although you can The following steps are recommended for installing Container Network Security.
install some capabilities through GMAv1, we [recommend](#using-gmav1-with-gmav2) that you install
applications through GMAv2 exclusively when using Container Network Security.
## Installation steps ## Installation steps
@ -21,7 +19,7 @@ The following steps are recommended to install and use Container Network Securit
1. Install and configure an Ingress node: 1. Install and configure an Ingress node:
- [Install the Ingress node via CI/CD (GMAv2)](../../../../clusters/applications.md#install-ingress-using-gitlab-cicd). - [Install the Ingress node via CI/CD (Cluster Management Project)](../../../../clusters/applications.md#install-ingress-using-gitlab-cicd).
- [Determine the external endpoint via the manual method](../../../../clusters/applications.md#determining-the-external-endpoint-manually). - [Determine the external endpoint via the manual method](../../../../clusters/applications.md#determining-the-external-endpoint-manually).
- Navigate to the Kubernetes page and enter the [DNS address for the external endpoint](../../index.md#base-domain) - Navigate to the Kubernetes page and enter the [DNS address for the external endpoint](../../index.md#base-domain)
into the **Base domain** field on the **Details** tab. Save the changes to the Kubernetes into the **Base domain** field on the **Details** tab. Save the changes to the Kubernetes
@ -83,12 +81,8 @@ Additional information about the statistics page is available in the
## Forwarding logs to a SIEM ## Forwarding logs to a SIEM
Cilium logs can be forwarded to a SIEM or an external logging system through syslog protocol by Cilium logs can be forwarded to a SIEM or an external logging system through syslog protocol by
installing and configuring Fluentd. Fluentd can be installed through GitLab in two ways: installing and configuring Fluentd. Fluentd can be installed through the GitLab
[Cluster Management Project](../../../../clusters/applications.md#install-fluentd-using-gitlab-cicd).
- The [GMAv1 method](../../../../clusters/applications.md#fluentd)
- The [GMAv2 method](../../../../clusters/applications.md#install-fluentd-using-gitlab-cicd)
GitLab strongly encourages using only the GMAv2 method to install Fluentd.
## Viewing the logs ## Viewing the logs
@ -135,19 +129,6 @@ initial troubleshooting steps that resolve the most common problems:
- Delete the relevant namespace in Kubernetes by running `kubectl delete namespaces <insert-some-namespace-name>` in your Kubernetes cluster. - Delete the relevant namespace in Kubernetes by running `kubectl delete namespaces <insert-some-namespace-name>` in your Kubernetes cluster.
- Rerun the application project pipeline to redeploy the application. - Rerun the application project pipeline to redeploy the application.
### Using GMAv1 with GMAv2
When GMAv1 and GMAv2 are used together on the same cluster, users may experience problems with
applications being uninstalled or removed from the cluster. This is because GMAv2 actively
uninstalls applications that are installed with GMAv1 and not configured to be installed with GMAv2.
It's possible to use a mixture of applications installed with GMAv1 and GMAv2 by ensuring that the
GMAv1 applications are installed **after** the GMAv2 cluster management project pipeline runs. GMAv1
applications must be reinstalled after each run of that pipeline. This approach isn't recommended as
it's error-prone and can lead to downtime as applications are uninstalled and later reinstalled.
When using Container Network Security, the preferred and recommended path is to install all
necessary components with GMAv2 and the cluster management project.
**Related documentation links:** **Related documentation links:**
- [GitLab Managed Apps v1 (GMAv1)](../../../../clusters/applications.md#install-with-one-click-deprecated) - [Cluster Management Project](../../../../clusters/management_project.md)
- [GitLab Managed Apps v2 (GMAv2)](../../../../clusters/management_project.md)

View file

@ -9,9 +9,9 @@ type: index, reference
[Merge requests](../index.md) are the primary method of making changes to files in a [Merge requests](../index.md) are the primary method of making changes to files in a
GitLab project. [Create and submit a merge request](../creating_merge_requests.md) GitLab project. [Create and submit a merge request](../creating_merge_requests.md)
to propose changes. Your team makes [suggestions](suggestions.md) and leaves to propose changes. Your team leaves [comments](../../../discussions/index.md), and
[comments](../../../discussions/index.md). When your work is reviewed, your team makes [code suggestions](suggestions.md) you can accept from the user interface.
members can choose to accept or reject it. When your work is reviewed, your team members can choose to accept or reject it.
## View merge requests ## View merge requests

View file

@ -140,3 +140,7 @@ to your branch to address your reviewers' requests.
WARNING: WARNING:
Suggestions applied from multiple authors creates a commit authored by the user applying the suggestions. Suggestions applied from multiple authors creates a commit authored by the user applying the suggestions.
## Related links
- [Suggestions API](../../../../api/suggestions.md)

View file

@ -11,9 +11,11 @@ module Gitlab
end end
def self.too_large?(size) def self.too_large?(size)
return false unless size.to_i > Gitlab.config.extra['maximum_text_highlight_size_kilobytes'] file_size_limit = Gitlab.config.extra['maximum_text_highlight_size_kilobytes']
over_highlight_size_limit.increment(source: "text highlighter") if Feature.enabled?(:track_file_size_over_highlight_limit) return false unless size.to_i > file_size_limit
over_highlight_size_limit.increment(source: "file size: #{file_size_limit}") if Feature.enabled?(:track_file_size_over_highlight_limit)
true true
end end

View file

@ -18,7 +18,7 @@ module QA
end end
where(:template) do where(:template) do
%w[rails spring express] %w[express]
end end
with_them do with_them do
@ -45,7 +45,7 @@ module QA
Flow::Login.sign_in Flow::Login.sign_in
end end
it 'works with Auto DevOps', quarantine: { issue: 'https://gitlab.com/gitlab-org/gitlab/-/issues/240946', type: :flaky } do it 'works with Auto DevOps' do
%w[build code_quality test].each do |job| %w[build code_quality test].each do |job|
pipeline.visit! pipeline.visit!

View file

@ -1,12 +0,0 @@
#!/bin/sh
lint_paths="changelogs/unreleased"
[ -d "ee/" ] && lint_paths="$lint_paths ee/changelogs/unreleased"
invalid_files=$(find $lint_paths -type f -not -name "*.yml" -not -name ".gitkeep")
if [ -n "$invalid_files" ]; then
echo "Changelog files must end in .yml, but these did not:"
echo "$invalid_files" | sed -e "s/^/* /"
exit 1
fi

View file

@ -38,8 +38,7 @@ class StaticAnalysis
%w[yarn run block-dependencies] => 0.35, %w[yarn run block-dependencies] => 0.35,
%w[scripts/lint-rugged] => 0.23, %w[scripts/lint-rugged] => 0.23,
%w[scripts/gemfile_lock_changed.sh] => 0.02, %w[scripts/gemfile_lock_changed.sh] => 0.02,
%w[scripts/frontend/check_no_partial_karma_jest.sh] => 0.01, %w[scripts/frontend/check_no_partial_karma_jest.sh] => 0.01
%w[scripts/lint-changelog-filenames] => 0.01
}.reject { |k| k.nil? }.sort_by { |a| -a[1] }.to_h.keys.freeze }.reject { |k| k.nil? }.sort_by { |a| -a[1] }.to_h.keys.freeze
def run_tasks! def run_tasks!

View file

@ -23,13 +23,14 @@ const TEST_OTHER_PROPS = {
describe('~/nav/components/top_nav_container_view.vue', () => { describe('~/nav/components/top_nav_container_view.vue', () => {
let wrapper; let wrapper;
const createComponent = (props = {}) => { const createComponent = (props = {}, options = {}) => {
wrapper = shallowMount(TopNavContainerView, { wrapper = shallowMount(TopNavContainerView, {
propsData: { propsData: {
...DEFAULT_PROPS, ...DEFAULT_PROPS,
...TEST_OTHER_PROPS, ...TEST_OTHER_PROPS,
...props, ...props,
}, },
...options,
}); });
}; };
@ -44,6 +45,7 @@ describe('~/nav/components/top_nav_container_view.vue', () => {
return { return {
vuexModule: parent.props('vuexModule'), vuexModule: parent.props('vuexModule'),
props: parent.findComponent(FrequentItemsApp).props(), props: parent.findComponent(FrequentItemsApp).props(),
attributes: parent.findComponent(FrequentItemsApp).attributes(),
}; };
}; };
@ -67,14 +69,23 @@ describe('~/nav/components/top_nav_container_view.vue', () => {
); );
describe('default', () => { describe('default', () => {
const EXTRA_ATTRS = { 'data-test-attribute': 'foo' };
beforeEach(() => { beforeEach(() => {
createComponent(); createComponent({}, { attrs: EXTRA_ATTRS });
});
it('does not inherit extra attrs', () => {
expect(wrapper.attributes()).toEqual({
class: expect.any(String),
});
}); });
it('renders frequent items app', () => { it('renders frequent items app', () => {
expect(findFrequentItemsApp()).toEqual({ expect(findFrequentItemsApp()).toEqual({
vuexModule: DEFAULT_PROPS.frequentItemsVuexModule, vuexModule: DEFAULT_PROPS.frequentItemsVuexModule,
props: TEST_OTHER_PROPS, props: TEST_OTHER_PROPS,
attributes: expect.objectContaining(EXTRA_ATTRS),
}); });
}); });

View file

@ -54,7 +54,7 @@ RSpec.describe Gitlab::Highlight do
end end
it 'increments the metric for oversized files' do it 'increments the metric for oversized files' do
expect { result }.to change { over_highlight_size_limit('text highlighter') }.by(1) expect { result }.to change { over_highlight_size_limit('file size: 0.0001') }.by(1)
end end
it 'returns plain version for long content' do it 'returns plain version for long content' do

View file

@ -162,8 +162,6 @@ RSpec.describe Tooling::Danger::ProjectHelper do
'workhorse/main.go' | [:workhorse] 'workhorse/main.go' | [:workhorse]
'workhorse/internal/upload/upload.go' | [:workhorse] 'workhorse/internal/upload/upload.go' | [:workhorse]
'changelogs/foo' | [:none]
'ee/changelogs/foo' | [:none]
'locale/gitlab.pot' | [:none] 'locale/gitlab.pot' | [:none]
'FOO' | [:unknown] 'FOO' | [:unknown]

View file

@ -38,8 +38,6 @@ module Tooling
%r{\A(ee/)?config/feature_flags/} => :feature_flag, %r{\A(ee/)?config/feature_flags/} => :feature_flag,
%r{\A(ee/)?(changelogs/unreleased)(-ee)?/} => :changelog,
%r{\Adoc/development/usage_ping/dictionary\.md\z} => [:docs, :product_intelligence], %r{\Adoc/development/usage_ping/dictionary\.md\z} => [:docs, :product_intelligence],
%r{\Adoc/.*(\.(md|png|gif|jpg))\z} => :docs, %r{\Adoc/.*(\.(md|png|gif|jpg))\z} => :docs,
%r{\A(CONTRIBUTING|LICENSE|MAINTENANCE|PHILOSOPHY|PROCESS|README)(\.md)?\z} => :docs, %r{\A(CONTRIBUTING|LICENSE|MAINTENANCE|PHILOSOPHY|PROCESS|README)(\.md)?\z} => :docs,