Commit d04d9b2a authored by Enrique Alcántara's avatar Enrique Alcántara

Merge branch 'mjang-ux-MR-approvals-text' into 'master'

Update MR Approvals UI Text

See merge request gitlab-org/gitlab!49632
parents 92950bdd c6ba5120
---
title: Updated UI text to match style guidelines
merge_request: 49632
author:
type: other
...@@ -155,7 +155,7 @@ To add or edit the default merge request approval rule: ...@@ -155,7 +155,7 @@ To add or edit the default merge request approval rule:
1. Click **Add approval rule**, or **Edit**. 1. Click **Add approval rule**, or **Edit**.
- Add or change the **Rule name**. - Add or change the **Rule name**.
- Set the number of required approvals in **No. approvals required**. The minimum value is `0`. - Set the number of required approvals in **Approvals required**. The minimum value is `0`.
- (Optional) Search for users or groups that will be [eligible to approve](#eligible-approvers) - (Optional) Search for users or groups that will be [eligible to approve](#eligible-approvers)
merge requests and click the **Add** button to add them as approvers. Before typing merge requests and click the **Add** button to add them as approvers. Before typing
in the search field, approvers will be suggested based on the previous authors of in the search field, approvers will be suggested based on the previous authors of
...@@ -191,7 +191,7 @@ the same steps as [Adding / editing a default approval rule](#adding--editing-a- ...@@ -191,7 +191,7 @@ the same steps as [Adding / editing a default approval rule](#adding--editing-a-
MR approvals can be configured to be optional. MR approvals can be configured to be optional.
This can be useful if you're working on a team where approvals are appreciated, but not required. This can be useful if you're working on a team where approvals are appreciated, but not required.
To configure an approval to be optional, set the number of required approvals in **No. approvals required** to `0`. To configure an approval to be optional, set the number of required approvals in **Approvals required** to `0`.
You can also set an optional approval rule through the [Merge requests approvals API](../../../api/merge_request_approvals.md#update-merge-request-level-rule), by setting the `approvals_required` attribute to `0`. You can also set an optional approval rule through the [Merge requests approvals API](../../../api/merge_request_approvals.md#update-merge-request-level-rule), by setting the `approvals_required` attribute to `0`.
...@@ -273,7 +273,7 @@ Regardless of the approval rules you choose for your project, users can edit the ...@@ -273,7 +273,7 @@ Regardless of the approval rules you choose for your project, users can edit the
request, overriding the rules you set as [default](#adding--editing-a-default-approval-rule). request, overriding the rules you set as [default](#adding--editing-a-default-approval-rule).
To prevent that from happening: To prevent that from happening:
1. Uncheck the **Can override approvers and approvals required per merge request** checkbox. 1. Uncheck the **Allow overrides to approval lists per merge request (MR).** checkbox.
1. Click **Save changes**. 1. Click **Save changes**.
#### Resetting approvals on push #### Resetting approvals on push
...@@ -282,7 +282,7 @@ You can force all approvals on a merge request to be removed when new commits ar ...@@ -282,7 +282,7 @@ You can force all approvals on a merge request to be removed when new commits ar
pushed to the source branch of the merge request. If disabled, approvals will persist pushed to the source branch of the merge request. If disabled, approvals will persist
even if there are changes added to the merge request. To enable this feature: even if there are changes added to the merge request. To enable this feature:
1. Check the **Remove all approvals in a merge request when new commits are pushed to its source branch** 1. Check the **Require new approvals when new commits are added to an MR.**
checkbox. checkbox.
1. Click **Save changes**. 1. Click **Save changes**.
...@@ -298,7 +298,7 @@ By default, projects are configured to prevent merge requests from being approve ...@@ -298,7 +298,7 @@ By default, projects are configured to prevent merge requests from being approve
their own authors. To change this setting: their own authors. To change this setting:
1. Go to your project's **Settings > General**, expand **Merge request approvals**. 1. Go to your project's **Settings > General**, expand **Merge request approvals**.
1. Uncheck the **Prevent approval of merge requests by merge request author** checkbox. 1. Uncheck the **Prevent MR approval by the author.** checkbox.
1. Click **Save changes**. 1. Click **Save changes**.
Note that users can edit the approval rules in every merge request and override pre-defined settings unless it's set [**not to allow** overrides](#prevent-overriding-default-approvals). Note that users can edit the approval rules in every merge request and override pre-defined settings unless it's set [**not to allow** overrides](#prevent-overriding-default-approvals).
...@@ -310,7 +310,7 @@ Note that users can edit the approval rules in every merge request and override ...@@ -310,7 +310,7 @@ Note that users can edit the approval rules in every merge request and override
You can prevent users that have committed to a merge request from approving it. To You can prevent users that have committed to a merge request from approving it. To
enable this feature: enable this feature:
1. Check the **Prevent approval of merge requests by their committers** checkbox. 1. Check the **Prevent MR approvals from users who make commits to the MR.** checkbox.
1. Click **Save changes**. 1. Click **Save changes**.
#### Require authentication when approving a merge request #### Require authentication when approving a merge request
...@@ -327,7 +327,7 @@ the approval. This enables an Electronic Signature for approvals such as the one ...@@ -327,7 +327,7 @@ the approval. This enables an Electronic Signature for approvals such as the one
by [CFR Part 11](https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfcfr/CFRSearch.cfm?CFRPart=11&showFR=1&subpartNode=21:1.0.1.1.8.3)). by [CFR Part 11](https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfcfr/CFRSearch.cfm?CFRPart=11&showFR=1&subpartNode=21:1.0.1.1.8.3)).
To enable this feature: To enable this feature:
1. Check the **Require user password to approve** checkbox. 1. Check the **Require user password for approvals.** checkbox.
1. Click **Save changes**. 1. Click **Save changes**.
### Security approvals in merge requests **(ULTIMATE)** ### Security approvals in merge requests **(ULTIMATE)**
......
...@@ -35,12 +35,12 @@ export default { ...@@ -35,12 +35,12 @@ export default {
placement="top" placement="top"
triggers="hover focus" triggers="hover focus"
> >
<template #title>{{ __('Who can be an approver?') }}</template> <template #title>{{ __('Who can approve?') }}</template>
<ul class="pl-3"> <ul class="pl-3">
<li> <li>
{{ __('Any member with Developer or higher permissions to the project.') }} {{ __('Any member with at least Developer permissions on the project.') }}
</li> </li>
<li>{{ __('Code Owners to the merge request changes.') }}</li> <li>{{ __('Members listed as CODEOWNERS of affected files.') }}</li>
<li> <li>
{{ {{
__("Users or groups set as approvers in the project's or merge request's settings.") __("Users or groups set as approvers in the project's or merge request's settings.")
......
...@@ -335,7 +335,7 @@ export default { ...@@ -335,7 +335,7 @@ export default {
</div> </div>
<div class="form-group col-sm-6"> <div class="form-group col-sm-6">
<label class="label-wrapper"> <label class="label-wrapper">
<span class="mb-2 bold inline">{{ s__('ApprovalRule|No. approvals required') }}</span> <span class="mb-2 bold inline">{{ s__('ApprovalRule|Approvals required') }}</span>
<input <input
v-model.number="approvalsRequired" v-model.number="approvalsRequired"
:class="{ 'is-invalid': validation.approvalsRequired }" :class="{ 'is-invalid': validation.approvalsRequired }"
......
...@@ -63,7 +63,7 @@ export default { ...@@ -63,7 +63,7 @@ export default {
class="author-link suggestion-help-hover" class="author-link suggestion-help-hover"
/> />
<gl-popover :target="() => $refs.helpIcon.$el" placement="top" triggers="hover focus"> <gl-popover :target="() => $refs.helpIcon.$el" placement="top" triggers="hover focus">
<template #title>{{ __('Who can be an approver?') }}</template> <template #title>{{ __('Who can approve?') }}</template>
<p>{{ description }}</p> <p>{{ description }}</p>
<gl-link v-if="linkPath" :href="linkPath" class="gl-font-sm" target="_blank">{{ <gl-link v-if="linkPath" :href="linkPath" class="gl-font-sm" target="_blank">{{
__('More information') __('More information')
......
...@@ -4,7 +4,7 @@ import { s__ } from '~/locale'; ...@@ -4,7 +4,7 @@ import { s__ } from '~/locale';
const HEADERS = { const HEADERS = {
name: s__('ApprovalRule|Name'), name: s__('ApprovalRule|Name'),
members: s__('ApprovalRule|Approvers'), members: s__('ApprovalRule|Approvers'),
approvalsRequired: s__('ApprovalRule|No. approvals required'), approvalsRequired: s__('ApprovalRule|Approvals required'),
branches: s__('Target branch'), branches: s__('Target branch'),
}; };
......
...@@ -46,17 +46,17 @@ export default { ...@@ -46,17 +46,17 @@ export default {
{ {
name: VULNERABILITY_CHECK_NAME, name: VULNERABILITY_CHECK_NAME,
description: s__( description: s__(
'SecurityApprovals|One or more of the security scanners must be enabled. %{linkStart}More information%{linkEnd}', 'SecurityApprovals|Configurable if security scanners are enabled. %{linkStart}Learn more.%{linkEnd}',
), ),
enableDescription: s__( enableDescription: s__(
'SecurityApprovals|Requires approval for vulnerabilities of Critical, High, or Unknown severity. %{linkStart}More information%{linkEnd}', 'SecurityApprovals|Requires approval for vulnerabilities of Critical, High, or Unknown severity. %{linkStart}Learn more.%{linkEnd}',
), ),
docsPath: this.vulnerabilityCheckHelpPagePath, docsPath: this.vulnerabilityCheckHelpPagePath,
}, },
{ {
name: LICENSE_CHECK_NAME, name: LICENSE_CHECK_NAME,
description: s__( description: s__(
'SecurityApprovals|License Scanning must be enabled. %{linkStart}More information%{linkEnd}', 'SecurityApprovals|License Scanning must be enabled. %{linkStart}Learn more%{linkEnd}.',
), ),
enableDescription: s__( enableDescription: s__(
'SecurityApprovals|Requires approval for Denied licenses. %{linkStart}More information%{linkEnd}', 'SecurityApprovals|Requires approval for Denied licenses. %{linkStart}More information%{linkEnd}',
......
...@@ -6,8 +6,8 @@ ...@@ -6,8 +6,8 @@
%h4.settings-title.js-settings-toggle.js-settings-toggle-trigger-only= _("Merge request approvals") %h4.settings-title.js-settings-toggle.js-settings-toggle-trigger-only= _("Merge request approvals")
%button.btn.js-settings-toggle{ type: 'button' }= expanded ? _("Collapse") : _("Expand") %button.btn.js-settings-toggle{ type: 'button' }= expanded ? _("Collapse") : _("Expand")
%p %p
= _("Set a number of approvals required, the approvers and other approval settings.") = _("Define approval settings.")
= link_to _("Learn more about approvals."), help_page_path("user/project/merge_requests/merge_request_approvals"), target: '_blank' = link_to _("Learn more."), help_page_path("user/project/merge_requests/merge_request_approvals"), target: '_blank'
.settings-content .settings-content
= form_for @project, remote: true, html: { class: "merge-request-approval-settings-form js-mr-approvals-form" }, authenticity_token: true do |f| = form_for @project, remote: true, html: { class: "merge-request-approval-settings-form js-mr-approvals-form" }, authenticity_token: true do |f|
......
...@@ -23,20 +23,20 @@ ...@@ -23,20 +23,20 @@
.form-check .form-check
= form.check_box(:disable_overriding_approvers_per_merge_request, { class: 'form-check-input', disabled: !can_modify_approvers }, false, true) = form.check_box(:disable_overriding_approvers_per_merge_request, { class: 'form-check-input', disabled: !can_modify_approvers }, false, true)
= form.label :disable_overriding_approvers_per_merge_request, class: 'form-check-label' do = form.label :disable_overriding_approvers_per_merge_request, class: 'form-check-label' do
%span= _('Can override approvers and approvals required per merge request') %span= _('Allow overrides to approval lists per merge request (MR)')
= link_to sprite_icon('question-o'), help_page_path('user/project/merge_requests/merge_request_approvals', anchor: 'prevent-overriding-default-approvals'), target: '_blank' = link_to sprite_icon('question-o'), help_page_path('user/project/merge_requests/merge_request_approvals', anchor: 'prevent-overriding-default-approvals'), target: '_blank'
.form-group.reset-approvals-on-push .form-group.reset-approvals-on-push
.form-check .form-check
= form.check_box :reset_approvals_on_push, class: 'form-check-input' = form.check_box :reset_approvals_on_push, class: 'form-check-input'
= form.label :reset_approvals_on_push, class: 'form-check-label' do = form.label :reset_approvals_on_push, class: 'form-check-label' do
%span= _('Remove all approvals in a merge request when new commits are pushed to its source branch') %span= _('Require new approvals when new commits are added to an MR.')
.form-group.self-approval .form-group.self-approval
.form-check .form-check
= form.check_box :merge_requests_author_approval, { class: 'form-check-input', disabled: !can_modify_merge_request_author_settings }, false, true = form.check_box :merge_requests_author_approval, { class: 'form-check-input', disabled: !can_modify_merge_request_author_settings }, false, true
= form.label :merge_requests_author_approval, class: 'form-check-label' do = form.label :merge_requests_author_approval, class: 'form-check-label' do
%span= _('Prevent approval of merge requests by merge request author') %span= _('Prevent MR approvals by the author.')
= link_to sprite_icon('question-o'), help_page_path('user/project/merge_requests/merge_request_approvals', = link_to sprite_icon('question-o'), help_page_path('user/project/merge_requests/merge_request_approvals',
anchor: 'allowing-merge-request-authors-to-approve-their-own-merge-requests'), target: '_blank' anchor: 'allowing-merge-request-authors-to-approve-their-own-merge-requests'), target: '_blank'
...@@ -44,7 +44,7 @@ ...@@ -44,7 +44,7 @@
.form-check .form-check
= form.check_box :merge_requests_disable_committers_approval, { disabled: !can_modify_merge_request_committer_settings, class: 'form-check-input' } = form.check_box :merge_requests_disable_committers_approval, { disabled: !can_modify_merge_request_committer_settings, class: 'form-check-input' }
= form.label :merge_requests_disable_committers_approval, class: 'form-check-label' do = form.label :merge_requests_disable_committers_approval, class: 'form-check-label' do
%span= _('Prevent approval of merge requests by merge request committers') %span= _('Prevent MR approvals from users who make commits to the MR.')
= link_to sprite_icon('question-o'), help_page_path('user/project/merge_requests/merge_request_approvals', = link_to sprite_icon('question-o'), help_page_path('user/project/merge_requests/merge_request_approvals',
anchor: 'allowing-merge-request-authors-to-approve-their-own-merge-requests'), target: '_blank' anchor: 'allowing-merge-request-authors-to-approve-their-own-merge-requests'), target: '_blank'
...@@ -53,6 +53,6 @@ ...@@ -53,6 +53,6 @@
.form-check .form-check
= form.check_box :require_password_to_approve, class: 'form-check-input' = form.check_box :require_password_to_approve, class: 'form-check-input'
= form.label :require_password_to_approve, class: 'form-check-label' do = form.label :require_password_to_approve, class: 'form-check-label' do
%span= _('Require user password to approve') %span= _('Require user password for approvals.')
= link_to sprite_icon('question-o'), help_page_path('user/project/merge_requests/merge_request_approvals', = link_to sprite_icon('question-o'), help_page_path('user/project/merge_requests/merge_request_approvals',
anchor: 'require-authentication-when-approving-a-merge-request'), target: '_blank' anchor: 'require-authentication-when-approving-a-merge-request'), target: '_blank'
...@@ -238,9 +238,9 @@ RSpec.describe 'Merge request > User sets approvers', :js do ...@@ -238,9 +238,9 @@ RSpec.describe 'Merge request > User sets approvers', :js do
find('.merge-request').click_on 'Edit' find('.merge-request').click_on 'Edit'
open_modal open_modal
expect(page).to have_field 'No. approvals required', exact: 2 expect(page).to have_field 'Approvals required', exact: 2
fill_in 'No. approvals required', with: '3' fill_in 'Approvals required', with: '3'
click_button 'Update approval rule' click_button 'Update approval rule'
click_on('Save changes') click_on('Save changes')
...@@ -255,7 +255,7 @@ RSpec.describe 'Merge request > User sets approvers', :js do ...@@ -255,7 +255,7 @@ RSpec.describe 'Merge request > User sets approvers', :js do
open_modal open_modal
expect(page).to have_field 'No. approvals required', exact: 3 expect(page).to have_field 'Approvals required', exact: 3
end end
end end
end end
......
...@@ -2880,6 +2880,9 @@ msgstr "" ...@@ -2880,6 +2880,9 @@ msgstr ""
msgid "Allow only the selected protocols to be used for Git access." msgid "Allow only the selected protocols to be used for Git access."
msgstr "" msgstr ""
msgid "Allow overrides to approval lists per merge request (MR)"
msgstr ""
msgid "Allow owners to manage default branch protection per group" msgid "Allow owners to manage default branch protection per group"
msgstr "" msgstr ""
...@@ -3441,7 +3444,7 @@ msgstr "" ...@@ -3441,7 +3444,7 @@ msgstr ""
msgid "Any label" msgid "Any label"
msgstr "" msgstr ""
msgid "Any member with Developer or higher permissions to the project." msgid "Any member with at least Developer permissions on the project."
msgstr "" msgstr ""
msgid "Any milestone" msgid "Any milestone"
...@@ -3590,13 +3593,13 @@ msgstr[1] "" ...@@ -3590,13 +3593,13 @@ msgstr[1] ""
msgid "ApprovalRule|Approval rules" msgid "ApprovalRule|Approval rules"
msgstr "" msgstr ""
msgid "ApprovalRule|Approvers" msgid "ApprovalRule|Approvals required"
msgstr "" msgstr ""
msgid "ApprovalRule|Name" msgid "ApprovalRule|Approvers"
msgstr "" msgstr ""
msgid "ApprovalRule|No. approvals required" msgid "ApprovalRule|Name"
msgstr "" msgstr ""
msgid "ApprovalRule|Rule name" msgid "ApprovalRule|Rule name"
...@@ -4963,9 +4966,6 @@ msgstr "" ...@@ -4963,9 +4966,6 @@ msgstr ""
msgid "Can be manually deployed to" msgid "Can be manually deployed to"
msgstr "" msgstr ""
msgid "Can override approvers and approvals required per merge request"
msgstr ""
msgid "Can't apply as the source branch was deleted." msgid "Can't apply as the source branch was deleted."
msgstr "" msgstr ""
...@@ -6910,9 +6910,6 @@ msgstr "" ...@@ -6910,9 +6910,6 @@ msgstr ""
msgid "Code Owners" msgid "Code Owners"
msgstr "" msgstr ""
msgid "Code Owners to the merge request changes."
msgstr ""
msgid "Code Quality" msgid "Code Quality"
msgstr "" msgstr ""
...@@ -8962,6 +8959,9 @@ msgstr "" ...@@ -8962,6 +8959,9 @@ msgstr ""
msgid "Define a custom pattern with cron syntax" msgid "Define a custom pattern with cron syntax"
msgstr "" msgstr ""
msgid "Define approval settings."
msgstr ""
msgid "Define custom rules for what constitutes spam, independent of Akismet" msgid "Define custom rules for what constitutes spam, independent of Akismet"
msgstr "" msgstr ""
...@@ -16232,9 +16232,6 @@ msgstr "" ...@@ -16232,9 +16232,6 @@ msgstr ""
msgid "Learn more about adding certificates to your project by following the %{docs_link_start}documentation on GitLab Pages%{docs_link_end}." msgid "Learn more about adding certificates to your project by following the %{docs_link_start}documentation on GitLab Pages%{docs_link_end}."
msgstr "" msgstr ""
msgid "Learn more about approvals."
msgstr ""
msgid "Learn more about custom project templates" msgid "Learn more about custom project templates"
msgstr "" msgstr ""
...@@ -16259,6 +16256,9 @@ msgstr "" ...@@ -16259,6 +16256,9 @@ msgstr ""
msgid "Learn more in the|pipeline schedules documentation" msgid "Learn more in the|pipeline schedules documentation"
msgstr "" msgstr ""
msgid "Learn more."
msgstr ""
msgid "Leave" msgid "Leave"
msgstr "" msgstr ""
...@@ -17092,6 +17092,9 @@ msgstr "" ...@@ -17092,6 +17092,9 @@ msgstr ""
msgid "Members invited to %{strong_start}%{group_name}%{strong_end}" msgid "Members invited to %{strong_start}%{group_name}%{strong_end}"
msgstr "" msgstr ""
msgid "Members listed as CODEOWNERS of affected files."
msgstr ""
msgid "Members of %{group} can also merge into this branch: %{branch}" msgid "Members of %{group} can also merge into this branch: %{branch}"
msgstr "" msgstr ""
...@@ -20941,6 +20944,12 @@ msgstr "" ...@@ -20941,6 +20944,12 @@ msgstr ""
msgid "Prev" msgid "Prev"
msgstr "" msgstr ""
msgid "Prevent MR approvals by the author."
msgstr ""
msgid "Prevent MR approvals from users who make commits to the MR."
msgstr ""
msgid "Prevent adding new members to project membership within this group" msgid "Prevent adding new members to project membership within this group"
msgstr "" msgstr ""
...@@ -23048,9 +23057,6 @@ msgstr "" ...@@ -23048,9 +23057,6 @@ msgstr ""
msgid "Remove Zoom meeting" msgid "Remove Zoom meeting"
msgstr "" msgstr ""
msgid "Remove all approvals in a merge request when new commits are pushed to its source branch"
msgstr ""
msgid "Remove all or specific assignee(s)" msgid "Remove all or specific assignee(s)"
msgstr "" msgstr ""
...@@ -23591,7 +23597,10 @@ msgstr "" ...@@ -23591,7 +23597,10 @@ msgstr ""
msgid "Require all users to accept Terms of Service and Privacy Policy when they access GitLab." msgid "Require all users to accept Terms of Service and Privacy Policy when they access GitLab."
msgstr "" msgstr ""
msgid "Require user password to approve" msgid "Require new approvals when new commits are added to an MR."
msgstr ""
msgid "Require user password for approvals."
msgstr "" msgstr ""
msgid "Require users to prove ownership of custom domains" msgid "Require users to prove ownership of custom domains"
...@@ -24455,16 +24464,16 @@ msgstr "" ...@@ -24455,16 +24464,16 @@ msgstr ""
msgid "Security report is out of date. Run %{newPipelineLinkStart}a new pipeline%{newPipelineLinkEnd} for the target branch (%{targetBranchName})" msgid "Security report is out of date. Run %{newPipelineLinkStart}a new pipeline%{newPipelineLinkEnd} for the target branch (%{targetBranchName})"
msgstr "" msgstr ""
msgid "SecurityApprovals|License Scanning must be enabled. %{linkStart}More information%{linkEnd}" msgid "SecurityApprovals|Configurable if security scanners are enabled. %{linkStart}Learn more.%{linkEnd}"
msgstr "" msgstr ""
msgid "SecurityApprovals|One or more of the security scanners must be enabled. %{linkStart}More information%{linkEnd}" msgid "SecurityApprovals|License Scanning must be enabled. %{linkStart}Learn more%{linkEnd}."
msgstr "" msgstr ""
msgid "SecurityApprovals|Requires approval for Denied licenses. %{linkStart}More information%{linkEnd}" msgid "SecurityApprovals|Requires approval for Denied licenses. %{linkStart}More information%{linkEnd}"
msgstr "" msgstr ""
msgid "SecurityApprovals|Requires approval for vulnerabilities of Critical, High, or Unknown severity. %{linkStart}More information%{linkEnd}" msgid "SecurityApprovals|Requires approval for vulnerabilities of Critical, High, or Unknown severity. %{linkStart}Learn more.%{linkEnd}"
msgstr "" msgstr ""
msgid "SecurityConfiguration|An error occurred while creating the merge request." msgid "SecurityConfiguration|An error occurred while creating the merge request."
...@@ -25168,9 +25177,6 @@ msgstr "" ...@@ -25168,9 +25177,6 @@ msgstr ""
msgid "Set a default template for issue descriptions." msgid "Set a default template for issue descriptions."
msgstr "" msgstr ""
msgid "Set a number of approvals required, the approvers and other approval settings."
msgstr ""
msgid "Set a password on your account to pull or push via %{protocol}." msgid "Set a password on your account to pull or push via %{protocol}."
msgstr "" msgstr ""
...@@ -31234,7 +31240,7 @@ msgstr "" ...@@ -31234,7 +31240,7 @@ msgstr ""
msgid "While it's rare to have no vulnerabilities, it can happen. In any event, we ask that you please double check your settings to make sure you've set up your dashboard correctly." msgid "While it's rare to have no vulnerabilities, it can happen. In any event, we ask that you please double check your settings to make sure you've set up your dashboard correctly."
msgstr "" msgstr ""
msgid "Who can be an approver?" msgid "Who can approve?"
msgstr "" msgstr ""
msgid "Who can see this group?" msgid "Who can see this group?"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment