Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
42d323de78
commit
f26782b146
32 changed files with 203 additions and 219 deletions
|
@ -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
|
||||||
|
|
|
@ -10,6 +10,7 @@ export default {
|
||||||
TopNavMenuItem,
|
TopNavMenuItem,
|
||||||
VuexModuleProvider,
|
VuexModuleProvider,
|
||||||
},
|
},
|
||||||
|
inheritAttrs: false,
|
||||||
props: {
|
props: {
|
||||||
frequentItemsVuexModule: {
|
frequentItemsVuexModule: {
|
||||||
type: String,
|
type: String,
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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. |
|
||||||
|
|
||||||
|
|
|
@ -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. |
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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:
|
||||||
|
|
||||||
|
|
|
@ -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).
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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 -->
|
||||||
|
|
|
@ -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`
|
||||||
|
|
||||||
|
|
|
@ -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 |
|
@ -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.
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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)
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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)
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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!
|
||||||
|
|
||||||
|
|
|
@ -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
|
|
|
@ -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!
|
||||||
|
|
|
@ -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),
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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]
|
||||||
|
|
|
@ -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,
|
||||||
|
|
Loading…
Reference in a new issue