Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
0cd6804039
commit
37939fbd29
|
|
@ -114,7 +114,7 @@ export default {
|
|||
class="col-md-6"
|
||||
type="text"
|
||||
/>
|
||||
<div class="form-text text-muted gl-inline-block">
|
||||
<div class="form-text gl-inline-block gl-text-subtle">
|
||||
<gl-sprintf
|
||||
:message="
|
||||
s__(
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ export default {
|
|||
placeholder="https://mysentryserver.com"
|
||||
@input="updateApiHost"
|
||||
/>
|
||||
<p class="form-text text-muted">
|
||||
<p class="form-text gl-text-subtle">
|
||||
{{
|
||||
s__(
|
||||
"ErrorTracking|If you self-host Sentry, enter your Sentry instance's full URL. If you use Sentry's hosted solution, enter https://sentry.io",
|
||||
|
|
@ -78,7 +78,7 @@ export default {
|
|||
<p v-if="connectError" class="gl-field-error">
|
||||
{{ s__('ErrorTracking|Connection failed. Check Auth Token and try again.') }}
|
||||
</p>
|
||||
<p v-else class="form-text text-muted">
|
||||
<p v-else class="form-text gl-text-subtle">
|
||||
{{
|
||||
s__(
|
||||
'ErrorTracking|After adding your Auth Token, select the Connect button to load projects.',
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@ export default {
|
|||
<p v-if="isProjectInvalid" class="js-project-dropdown-error gl-field-error">
|
||||
{{ invalidProjectLabel }}
|
||||
</p>
|
||||
<p v-else-if="!hasProjects" class="js-project-dropdown-label form-text text-muted">
|
||||
<p v-else-if="!hasProjects" class="js-project-dropdown-label form-text gl-text-subtle">
|
||||
{{ projectSelectionLabel }}
|
||||
</p>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ export default {
|
|||
<li>
|
||||
{{ __('Commit Message') }}
|
||||
<div id="ide-commit-message-popover-container">
|
||||
<span id="ide-commit-message-question" class="form-text text-muted gl-ml-3">
|
||||
<span id="ide-commit-message-question" class="form-text gl-ml-3 gl-text-subtle">
|
||||
<gl-icon name="question-o" />
|
||||
</span>
|
||||
<gl-popover
|
||||
|
|
|
|||
|
|
@ -853,7 +853,7 @@ export default {
|
|||
s__('ProjectSettings|Every project can have its own space to store its Docker images')
|
||||
"
|
||||
>
|
||||
<div v-if="showContainerRegistryPublicNote" class="text-muted">
|
||||
<div v-if="showContainerRegistryPublicNote" class="gl-text-subtle">
|
||||
<gl-sprintf
|
||||
:message="
|
||||
s__(
|
||||
|
|
|
|||
|
|
@ -119,7 +119,7 @@ Please update your Git repository remotes as soon as possible.`),
|
|||
required="required"
|
||||
/>
|
||||
</div>
|
||||
<p class="form-text text-muted">{{ path }}</p>
|
||||
<p class="form-text gl-text-subtle">{{ path }}</p>
|
||||
</div>
|
||||
<gl-button
|
||||
v-gl-modal-directive="$options.modalId"
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ export default {
|
|||
|
||||
<template>
|
||||
<div class="gl-flex gl-items-center">
|
||||
<span class="text-muted">{{ s__('mrWidget|Approval is optional') }}</span>
|
||||
<span class="gl-text-subtle">{{ s__('mrWidget|Approval is optional') }}</span>
|
||||
<gl-link
|
||||
v-if="canApprove && helpPath"
|
||||
v-gl-tooltip
|
||||
|
|
|
|||
|
|
@ -243,7 +243,7 @@ export default {
|
|||
</template>
|
||||
<template v-else-if="retargeted">
|
||||
<gl-icon name="status_canceled" class="gl-mr-3 gl-self-center" />
|
||||
<p class="text-muted gl-mb-0 gl-ml-3 gl-flex gl-grow" data-testid="retargeted-message">
|
||||
<p class="gl-mb-0 gl-ml-3 gl-flex gl-grow gl-text-subtle" data-testid="retargeted-message">
|
||||
{{
|
||||
__(
|
||||
'You should run a new pipeline, because the target branch has changed for this merge request.',
|
||||
|
|
|
|||
|
|
@ -646,7 +646,7 @@ export default {
|
|||
</template>
|
||||
</commit-edit>
|
||||
<li class="!gl-m-0 !gl-p-0">
|
||||
<p class="form-text text-muted">
|
||||
<p class="form-text gl-text-subtle">
|
||||
<gl-sprintf :message="commitTemplateHintText">
|
||||
<template #link="{ content }">
|
||||
<gl-link
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ export default {
|
|||
</div>
|
||||
<p
|
||||
v-if="branchFilterStrategyData === 'wildcard'"
|
||||
class="form-text text-muted custom-control"
|
||||
class="form-text custom-control gl-text-subtle"
|
||||
>
|
||||
<gl-sprintf :message="$options.descriptionText.wildcard">
|
||||
<template #WILDCARD_CODE_STABLE>
|
||||
|
|
@ -97,7 +97,10 @@ export default {
|
|||
/>
|
||||
</div>
|
||||
|
||||
<p v-if="branchFilterStrategyData === 'regex'" class="form-text text-muted custom-control">
|
||||
<p
|
||||
v-if="branchFilterStrategyData === 'regex'"
|
||||
class="form-text custom-control gl-text-subtle"
|
||||
>
|
||||
<gl-sprintf :message="$options.descriptionText.regex">
|
||||
<template #REGEX_CODE>
|
||||
<code>{{ $options.REGEX_CODE }}</code>
|
||||
|
|
|
|||
|
|
@ -156,7 +156,7 @@ label {
|
|||
}
|
||||
}
|
||||
|
||||
.form-text.text-muted {
|
||||
.form-text {
|
||||
margin-bottom: 0;
|
||||
margin-top: #{$grid-size / 2};
|
||||
font-size: $gl-font-size;
|
||||
|
|
|
|||
|
|
@ -343,7 +343,7 @@ $ide-commit-header-height: 48px;
|
|||
padding: $grid-size 0;
|
||||
min-height: 60px;
|
||||
|
||||
&.form-text.text-muted {
|
||||
&.form-text {
|
||||
margin-left: 0;
|
||||
right: 0;
|
||||
}
|
||||
|
|
@ -574,7 +574,7 @@ $ide-commit-header-height: 48px;
|
|||
height: 30px;
|
||||
}
|
||||
|
||||
.form-text.text-muted {
|
||||
.form-text {
|
||||
margin-top: 2px;
|
||||
color: var(--ide-link-color, $blue-500);
|
||||
cursor: pointer;
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
.new_project,
|
||||
.edit-project,
|
||||
.import-project {
|
||||
.form-text.text-muted {
|
||||
.form-text {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -139,8 +139,8 @@
|
|||
}
|
||||
|
||||
.form-check:first-child,
|
||||
.form-check .form-text.text-muted,
|
||||
.form-check + .form-text.text-muted {
|
||||
.form-check .form-text,
|
||||
.form-check + .form-text {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
|
|
@ -153,7 +153,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
.form-check .form-text.text-muted {
|
||||
.form-check .form-text {
|
||||
margin-bottom: $grid-size;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,10 +18,6 @@ module Mutations
|
|||
null: false,
|
||||
description: 'Number of artifacts deleted.'
|
||||
|
||||
def find_object(id:)
|
||||
GlobalID::Locator.locate(id)
|
||||
end
|
||||
|
||||
def resolve(id:)
|
||||
job = authorized_find!(id: id)
|
||||
|
||||
|
|
|
|||
|
|
@ -9,10 +9,6 @@ module Mutations
|
|||
argument :id, JobID,
|
||||
required: true,
|
||||
description: 'ID of the job to mutate.'
|
||||
|
||||
def find_object(id:)
|
||||
GlobalID::Locator.locate(id)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
|
||||
# rubocop:disable Gitlab/NamespacedClass -- We want this to be top level due to scope of use and no namespace due to ease of calling
|
||||
class Current < ActiveSupport::CurrentAttributes
|
||||
include Gitlab::InternalEventsTracking
|
||||
|
||||
class OrganizationNotAssignedError < RuntimeError
|
||||
def message
|
||||
'Assign an organization to Current.organization before calling it.'
|
||||
|
|
@ -39,6 +41,8 @@ class Current < ActiveSupport::CurrentAttributes
|
|||
Gitlab::ErrorTracking.track_and_raise_for_dev_exception(OrganizationNotAssignedError.new)
|
||||
end
|
||||
|
||||
track_organization_call
|
||||
|
||||
super
|
||||
end
|
||||
|
||||
|
|
@ -52,5 +56,17 @@ class Current < ActiveSupport::CurrentAttributes
|
|||
def organization_assigned=(value)
|
||||
organization_assigned || super(value)
|
||||
end
|
||||
|
||||
def track_organization_call
|
||||
return unless Feature.enabled?(:track_organization_fallback, Feature.current_request)
|
||||
return unless Gitlab::SafeRequestStore[:fallback_organization_used]
|
||||
|
||||
track_internal_event(
|
||||
'fallback_current_organization_to_default',
|
||||
additional_properties: {
|
||||
label: Gitlab::ApplicationContext.current_context_attribute(:caller_id)
|
||||
}
|
||||
)
|
||||
end
|
||||
end
|
||||
# rubocop:enable Gitlab/NamespacedClass
|
||||
|
|
|
|||
|
|
@ -71,7 +71,11 @@ class PersonalAccessToken < ApplicationRecord
|
|||
validate :expires_at_before_instance_max_expiry_date, on: :create
|
||||
|
||||
def revoke!
|
||||
update!(revoked: true)
|
||||
if persisted?
|
||||
update_columns(revoked: true, updated_at: Time.zone.now)
|
||||
else
|
||||
self.revoked = true
|
||||
end
|
||||
end
|
||||
|
||||
def active?
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@
|
|||
.col-lg-8
|
||||
= f.label :reason
|
||||
= f.text_area :message, class: "form-control", rows: 4, required: true
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _("Explain why you're reporting the user.")
|
||||
|
||||
.gl-flex.gl-gap-3
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
.form-group
|
||||
= f.label :session_expire_delay, _('Session duration (minutes)'), class: 'label-light'
|
||||
= f.number_field :session_expire_delay, class: 'form-control gl-form-input', title: _('Maximum duration of a session.'), data: { toggle: 'tooltip', container: 'body' }
|
||||
%span.form-text.text-muted#session_expire_delay_help_block= _('Restart GitLab to apply changes.')
|
||||
%span.form-text.gl-text-subtle#session_expire_delay_help_block= _('Restart GitLab to apply changes.')
|
||||
.form-group
|
||||
= f.label :remember_me_enabled, _('Remember me'), class: 'label-light'
|
||||
- remember_me_help_link = help_page_path('user/profile/index.md', anchor: 'stay-signed-in-for-two-weeks')
|
||||
|
|
@ -44,7 +44,7 @@
|
|||
.gl-mt-3
|
||||
= _('Internal users')
|
||||
= f.text_field :user_default_internal_regex, placeholder: _('Regex pattern'), class: 'form-control gl-form-input gl-mt-2'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _('Specify an email address regex pattern to identify default internal users.')
|
||||
#{link_to _('Learn more'), help_page_path('administration/external_users.md', anchor: 'set-a-new-user-to-external'), target: '_blank', rel: 'noopener noreferrer'}.
|
||||
- unless Gitlab.com?
|
||||
|
|
@ -58,7 +58,7 @@
|
|||
= f.number_field :deactivate_dormant_users_period, class: 'form-control gl-form-input', min: 90, required: true
|
||||
#application_setting_deactivate_dormant_users_period_error.form-text.gl-text-red-500.gl-hidden
|
||||
= _('Please enter a value of 90 days or more')
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _('Must be 90 days or more.')
|
||||
|
||||
.form-group
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
.form-group
|
||||
= f.label :auto_devops_domain, s_('AdminSettings|Auto DevOps domain'), class: 'label-bold'
|
||||
= f.text_field :auto_devops_domain, class: 'form-control gl-form-input', placeholder: 'example.com'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= s_("AdminSettings|The default domain to use for Auto Review Apps and Auto Deploy stages in all projects.")
|
||||
= link_to _('Learn more.'), help_page_path('topics/autodevops/stages.md', anchor: 'auto-review-apps'), target: '_blank', rel: 'noopener noreferrer'
|
||||
|
||||
|
|
@ -22,22 +22,22 @@
|
|||
.form-group
|
||||
= f.label :shared_runners_text, s_('AdminSettings|Instance runners details'), class: 'label-bold'
|
||||
= f.text_area :shared_runners_text, class: 'form-control gl-form-input', rows: 4
|
||||
.form-text.text-muted= s_('AdminSettings|Add a custom message with details about instance runners. The message is visible when you view runners for projects and groups. Markdown is supported.')
|
||||
.form-text.gl-text-subtle= s_('AdminSettings|Add a custom message with details about instance runners. The message is visible when you view runners for projects and groups. Markdown is supported.')
|
||||
.form-group
|
||||
= f.label :max_artifacts_size, _('Maximum artifacts size (MB)'), class: 'label-bold'
|
||||
= f.number_field :max_artifacts_size, class: 'form-control gl-form-input'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _("The maximum file size for job artifacts.")
|
||||
= link_to _('Learn more.'), help_page_path('administration/settings/continuous_integration.md', anchor: 'maximum-artifacts-size')
|
||||
.form-group
|
||||
= f.label :max_artifacts_content_include_size, _('Maximum artifacts archive size (bytes)'), class: 'label-bold'
|
||||
= f.number_field :max_artifacts_content_include_size, class: 'form-control gl-form-input'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _("The maximum file size for job artifacts archive.")
|
||||
.form-group
|
||||
= f.label :default_artifacts_expire_in, _('Default artifacts expiration'), class: 'label-bold'
|
||||
= f.text_field :default_artifacts_expire_in, class: 'form-control gl-form-input'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= html_escape(_("Set the default expiration time for job artifacts in all projects. Set to %{code_open}0%{code_close} to never expire artifacts by default. If no unit is written, it defaults to seconds. For example, these are all equivalent: %{code_open}3600%{code_close}, %{code_open}60 minutes%{code_close}, or %{code_open}one hour%{code_close}.")) % { code_open: '<code>'.html_safe, code_close: '</code>'.html_safe }
|
||||
= link_to _('Learn more.'), help_page_path('administration/settings/continuous_integration.md', anchor: 'default-artifacts-expiration')
|
||||
.form-group
|
||||
|
|
@ -45,7 +45,7 @@
|
|||
.form-group
|
||||
= f.label :archive_builds_in_human_readable, _('Archive jobs'), class: 'label-bold'
|
||||
= f.text_field :archive_builds_in_human_readable, class: 'form-control gl-form-input'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= html_escape(_("Jobs older than the configured time are considered expired and are archived. Archived jobs can no longer be retried. Leave empty to never archive jobs automatically. The default unit is in days, but you can use other units, for example %{code_open}15 days%{code_close}, %{code_open}1 month%{code_close}, %{code_open}2 years%{code_close}. Minimum value is 1 day.")) % { code_open: '<code>'.html_safe, code_close: '</code>'.html_safe }
|
||||
= link_to _('Learn more.'), help_page_path('administration/settings/continuous_integration.md', anchor: 'archive-jobs')
|
||||
.form-group
|
||||
|
|
@ -53,17 +53,17 @@
|
|||
.form-group
|
||||
= f.label :ci_max_includes, s_('AdminSettings|Maximum includes'), class: 'label-bold'
|
||||
= f.number_field :ci_max_includes, class: 'form-control gl-form-input'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= s_('AdminSettings|The maximum number of included files per pipeline.')
|
||||
.form-group
|
||||
= f.label :downstream_pipeline_trigger_limit_per_project_user_sha, s_('AdminSettings|Maximum downstream pipeline trigger rate'), class: 'label-bold'
|
||||
= f.number_field :downstream_pipeline_trigger_limit_per_project_user_sha, min: 0, class: 'form-control gl-form-input'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= s_('AdminSettings|The maximum number of downstream pipelines that can be triggered per minute (for a given project, user, and commit).')
|
||||
.form-group
|
||||
= f.label :ci_config_path, _('Default CI/CD configuration file'), class: 'label-bold'
|
||||
= f.text_field :default_ci_config_path, class: 'form-control gl-form-input', placeholder: '.gitlab-ci.yml'
|
||||
%p.form-text.text-muted
|
||||
%p.form-text.gl-text-subtle
|
||||
= _("The default CI/CD configuration file and path for new projects.").html_safe
|
||||
= link_to sprite_icon('question-o'), help_page_path('ci/pipelines/settings.md', anchor: 'specify-a-custom-cicd-configuration-file'), target: '_blank', rel: 'noopener noreferrer'
|
||||
.form-group
|
||||
|
|
@ -119,7 +119,7 @@
|
|||
.form-group
|
||||
= f.label :ci_needs_size_limit, plan_limit_setting_description(:ci_needs_size_limit)
|
||||
= f.number_field :ci_needs_size_limit, class: 'form-control gl-form-input'
|
||||
.form-text.text-muted= s_('AdminSettings|This limit cannot be disabled. Set to 0 to block all job (needs) dependencies.')
|
||||
.form-text.gl-text-subtle= s_('AdminSettings|This limit cannot be disabled. Set to 0 to block all job (needs) dependencies.')
|
||||
.form-group
|
||||
= f.label :ci_registered_group_runners, plan_limit_setting_description(:ci_registered_group_runners)
|
||||
= f.number_field :ci_registered_group_runners, class: 'form-control gl-form-input'
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
.form-group
|
||||
= f.label :default_branch_name, _('Initial default branch name'), class: 'label-light'
|
||||
= f.text_field :default_branch_name, placeholder: Gitlab::DefaultBranch.value, class: 'form-control gl-form-input'
|
||||
%span.form-text.text-muted
|
||||
%span.form-text.gl-text-subtle
|
||||
= (s_("AdminSettings|If not specified at the group or instance level, the default is %{default_initial_branch_name}. Does not affect existing repositories.") % { default_initial_branch_name: fallback_branch_name }).html_safe
|
||||
|
||||
= render 'shared/default_branch_protection_defaults', f: f, field: :application_setting, value: @application_setting.default_branch_protection_defaults
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
.form-group
|
||||
= f.label :diagramsnet_url, _('Diagrams.net URL'), class: 'label-bold'
|
||||
= f.text_field :diagramsnet_url, class: 'form-control gl-form-input', placeholder: 'https://embed.diagrams.net'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _('The hostname of your diagrams.net server.')
|
||||
|
||||
= f.submit _('Save changes'), pajamas_button: true
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
.form-group
|
||||
= f.label :diff_max_patch_bytes, _('Maximum diff patch size (bytes)'), class: 'label-light'
|
||||
= f.number_field :diff_max_patch_bytes, class: 'form-control gl-form-input'
|
||||
%span.form-text.text-muted
|
||||
%span.form-text.gl-text-subtle
|
||||
= _("Diff files surpassing this limit will be presented as 'too large' and won't be expandable.")
|
||||
|
||||
= link_to sprite_icon('question-o'),
|
||||
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
= f.label :diff_max_files, _('Maximum files in a diff'), class: 'label-light'
|
||||
= f.number_field :diff_max_files, class: 'form-control gl-form-input'
|
||||
%span.form-text.text-muted
|
||||
%span.form-text.gl-text-subtle
|
||||
= _("Diff files surpassing this limit will be presented as 'too large' and won't be expandable.")
|
||||
|
||||
= link_to sprite_icon('question-o'),
|
||||
|
|
@ -23,7 +23,7 @@
|
|||
|
||||
= f.label :diff_max_lines, _('Maximum lines in a diff'), class: 'label-light'
|
||||
= f.number_field :diff_max_lines, class: 'form-control gl-form-input'
|
||||
%span.form-text.text-muted
|
||||
%span.form-text.gl-text-subtle
|
||||
= _("Diff files surpassing this limit will be presented as 'too large' and won't be expandable.")
|
||||
|
||||
= link_to sprite_icon('question-o'),
|
||||
|
|
|
|||
|
|
@ -19,13 +19,13 @@
|
|||
.form-group
|
||||
= f.label :eks_access_key_id, _('AWS access key ID (Optional)'), class: 'label-bold'
|
||||
= f.text_field :eks_access_key_id, class: 'form-control gl-form-input'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _('Only required if not using role instance credentials.')
|
||||
|
||||
.form-group
|
||||
= f.label :eks_secret_access_key, _('AWS secret access key (Optional)'), class: 'label-bold'
|
||||
= f.password_field :eks_secret_access_key, autocomplete: 'off', class: 'form-control gl-form-input'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _('Only required if not using role instance credentials.')
|
||||
|
||||
= f.submit _('Save changes'), pajamas_button: true
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
.form-group
|
||||
= f.label :commit_email_hostname, _('Custom hostname (for private commit emails)'), class: 'label-bold'
|
||||
= f.text_field :commit_email_hostname, class: 'form-control gl-form-input'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
- commit_email_hostname_docs_link = link_to _('Learn more'), help_page_path('administration/settings/email.md', anchor: 'custom-hostname-for-private-commit-emails'), target: '_blank', rel: 'noopener noreferrer'
|
||||
= _("Hostname used in private commit emails. %{learn_more}").html_safe % { learn_more: commit_email_hostname_docs_link }
|
||||
|
||||
|
|
@ -21,7 +21,7 @@
|
|||
.form-group
|
||||
= f.label :deactivation_email_additional_text, _('Additional text for deactivation email')
|
||||
= f.text_area :deactivation_email_additional_text, class: 'form-control gl-form-input', rows: 4
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _('Text added to the body of user deactivation email messages. 1000 character limit.')
|
||||
|
||||
- if Feature.enabled?(:pat_expiry_inherited_members_notification, :instance)
|
||||
|
|
|
|||
|
|
@ -20,31 +20,31 @@
|
|||
.form-group
|
||||
= f.label :external_authorization_service_url, s_('ExternalAuthorization|Service URL'), class: 'label-bold'
|
||||
= f.text_field :external_authorization_service_url, class: 'form-control gl-form-input'
|
||||
%span.form-text.text-muted
|
||||
%span.form-text.gl-text-subtle
|
||||
= external_authorization_url_help_text
|
||||
.form-group
|
||||
= f.label :external_authorization_service_timeout, s_('ExternalAuthorization|External authorization request timeout (seconds)'), class: 'label-bold'
|
||||
= f.number_field :external_authorization_service_timeout, class: 'form-control gl-form-input', min: 0.001, max: 10, step: 0.001
|
||||
%span.form-text.text-muted
|
||||
%span.form-text.gl-text-subtle
|
||||
= external_authorization_timeout_help_text
|
||||
.form-group
|
||||
= f.label :external_auth_client_cert, s_('ExternalAuthorization|Client authorization certificate'), class: 'label-bold'
|
||||
= f.text_area :external_auth_client_cert, class: 'form-control gl-form-input'
|
||||
%span.form-text.text-muted
|
||||
%span.form-text.gl-text-subtle
|
||||
= external_authorization_client_certificate_help_text
|
||||
.form-group
|
||||
= f.label :external_auth_client_key, s_('ExternalAuthorization|Client authorization key'), class: 'label-bold'
|
||||
= f.text_area :external_auth_client_key, class: 'form-control gl-form-input'
|
||||
%span.form-text.text-muted
|
||||
%span.form-text.gl-text-subtle
|
||||
= external_authorization_client_key_help_text
|
||||
.form-group
|
||||
= f.label :external_auth_client_key_pass, s_('ExternalAuthorization|Client authorization key password (optional)'), class: 'label-bold'
|
||||
= f.password_field :external_auth_client_key_pass, class: 'form-control gl-form-input'
|
||||
%span.form-text.text-muted
|
||||
%span.form-text.gl-text-subtle
|
||||
= external_authorization_client_pass_help_text
|
||||
.form-group
|
||||
= f.label :external_authorization_service_default_label, s_('ExternalAuthorization|Default classification label'), class: 'label-bold'
|
||||
= f.text_field :external_authorization_service_default_label, class: 'form-control gl-form-input'
|
||||
%span.form-text.text-muted
|
||||
%span.form-text.gl-text-subtle
|
||||
= external_authorization_client_url_help_text
|
||||
= f.submit _('Save changes'), pajamas_button: true
|
||||
|
|
|
|||
|
|
@ -5,17 +5,17 @@
|
|||
.form-group
|
||||
= f.label :gitaly_timeout_default, _('Default timeout'), class: 'label-bold'
|
||||
= f.number_field :gitaly_timeout_default, class: 'form-control gl-form-input'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _('Timeout for most Gitaly operations (in seconds).')
|
||||
.form-group
|
||||
= f.label :gitaly_timeout_fast, _('Fast timeout'), class: 'label-bold'
|
||||
= f.number_field :gitaly_timeout_fast, class: 'form-control gl-form-input'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _('Timeout for the fastest Gitaly operations (in seconds).')
|
||||
.form-group
|
||||
= f.label :gitaly_timeout_medium, _('Medium timeout'), class: 'label-bold'
|
||||
= f.number_field :gitaly_timeout_medium, class: 'form-control gl-form-input'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _('Timeout for moderately fast Gitaly operations (in seconds). Provide a value between Default timeout and Fast timeout.')
|
||||
|
||||
= f.submit _('Save changes'), pajamas_button: true
|
||||
|
|
|
|||
|
|
@ -13,5 +13,5 @@
|
|||
.form-group
|
||||
= f.label :gitlab_shell_operation_limit, s_('ShellOperations|Maximum number of Git operations per minute'), class: 'gl-font-bold'
|
||||
= f.number_field :gitlab_shell_operation_limit, class: 'form-control gl-form-input'
|
||||
%span.form-text.text-muted= _('Set to 0 to disable the limit.')
|
||||
%span.form-text.gl-text-subtle= _('Set to 0 to disable the limit.')
|
||||
= f.submit _('Save changes'), pajamas_button: true
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
.form-group
|
||||
= f.label :gitpod_url, s_('Gitpod|Gitpod URL'), class: 'label-bold'
|
||||
= f.text_field :gitpod_url, class: 'form-control gl-form-input', placeholder: s_('Gitpod|https://gitpod.example.com')
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
- help_link = link_to('', help_page_path('integration/gitpod.md', anchor: 'enable-gitpod-in-your-user-preferences', target: '_blank', rel: 'noopener noreferrer'))
|
||||
= s_('Gitpod|The URL to your Gitpod instance configured to read your GitLab projects, such as https://gitpod.example.com.')
|
||||
= safe_format(s_('Gitpod|To use the integration, each user must also enable Gitpod on their GitLab account. %{help_link_start}How do I enable it?%{help_link_end}'), tag_pair(help_link, :help_link_start, :help_link_end))
|
||||
|
|
|
|||
|
|
@ -9,6 +9,6 @@
|
|||
.form-group
|
||||
= f.label :grafana_url, _('Grafana URL'), class: 'label-bold'
|
||||
= f.text_field :grafana_url, class: 'form-control gl-form-input', placeholder: '/-/grafana'
|
||||
%span.form-text.text-muted#support_help_block= _('URL of the Grafana instance to link to from the Metrics Dashboard menu item.')
|
||||
%span.form-text.gl-text-subtle#support_help_block= _('URL of the Grafana instance to link to from the Metrics Dashboard menu item.')
|
||||
|
||||
= f.submit _('Save changes'), pajamas_button: true
|
||||
|
|
|
|||
|
|
@ -5,18 +5,18 @@
|
|||
.form-group
|
||||
= f.label :help_page_text, _('Additional text to show on the Help page'), class: 'label-bold'
|
||||
= f.text_area :help_page_text, class: 'form-control gl-form-input', rows: 4
|
||||
.form-text.text-muted= _('Markdown enabled.')
|
||||
.form-text.gl-text-subtle= _('Markdown enabled.')
|
||||
.form-group
|
||||
= f.gitlab_ui_checkbox_component :help_page_hide_commercial_content, _('Hide marketing-related entries from the Help page')
|
||||
.form-group
|
||||
= f.label :help_page_support_url, _('Support page URL'), class: 'label-bold'
|
||||
= f.text_field :help_page_support_url, class: 'form-control gl-form-input', placeholder: 'https://company.example.com/get-help', :'aria-describedby' => 'support_help_block'
|
||||
%span.form-text.text-muted#support_help_block= _('Alternate support URL for Help page and Help dropdown.')
|
||||
%span.form-text.gl-text-subtle#support_help_block= _('Alternate support URL for Help page and Help dropdown.')
|
||||
|
||||
.form-group
|
||||
= f.label :help_page_documentation_base_url, _('Documentation pages URL'), class: 'gl-font-bold'
|
||||
= f.text_field :help_page_documentation_base_url, class: 'form-control gl-form-input', placeholder: 'https://docs.gitlab.com'
|
||||
- docs_link_url = help_page_path('administration/settings/help_page.md', anchor: 'destination-requirements')
|
||||
- docs_link_start = '<a href="%{url}" target="_blank" rel="noopener noreferrer">'.html_safe % { url: docs_link_url }
|
||||
%span.form-text.text-muted#support_help_block= html_escape(_('Requests for pages at %{code_start}%{help_text_url}%{code_end} redirect to the URL. The destination must meet certain requirements. %{docs_link_start}Learn more%{docs_link_end}.')) % { code_start: '<code>'.html_safe, help_text_url: help_url, code_end: '</code>'.html_safe, docs_link_start: docs_link_start, docs_link_end: '</a>'.html_safe }
|
||||
%span.form-text.gl-text-subtle#support_help_block= html_escape(_('Requests for pages at %{code_start}%{help_text_url}%{code_end} redirect to the URL. The destination must meet certain requirements. %{docs_link_start}Learn more%{docs_link_end}.')) % { code_start: '<code>'.html_safe, help_text_url: help_url, code_end: '</code>'.html_safe, docs_link_start: docs_link_start, docs_link_end: '</a>'.html_safe }
|
||||
= f.submit _('Save changes'), pajamas_button: true
|
||||
|
|
|
|||
|
|
@ -31,26 +31,26 @@
|
|||
.form-group
|
||||
= f.label :max_export_size, _('Maximum export size (MiB)'), class: 'label-light'
|
||||
= f.number_field :max_export_size, class: 'form-control gl-form-input', title: _('Maximum size of export files.'), data: { toggle: 'tooltip', container: 'body' }
|
||||
%span.form-text.text-muted= _('Set to 0 for no size limit.')
|
||||
%span.form-text.gl-text-subtle= _('Set to 0 for no size limit.')
|
||||
.form-group
|
||||
= f.label :max_import_size, _('Maximum import size (MiB)'), class: 'label-light'
|
||||
= f.number_field :max_import_size, class: 'form-control gl-form-input', title: _('Maximum size of import files.'), data: { toggle: 'tooltip', container: 'body' }
|
||||
%span.form-text.text-muted= _('Only effective when remote storage is enabled. Set to 0 for no size limit.')
|
||||
%span.form-text.gl-text-subtle= _('Only effective when remote storage is enabled. Set to 0 for no size limit.')
|
||||
.form-group
|
||||
= f.label :max_import_remote_file_size, s_('Import|Maximum import remote file size (MiB)'), class: 'label-light'
|
||||
= f.number_field :max_import_remote_file_size, class: 'form-control gl-form-input', title: s_('Import|Maximum remote file size for imports from external object storages. For example, AWS S3.'), data: { toggle: 'tooltip', container: 'body' }
|
||||
%span.form-text.text-muted= _('Set to 0 for no size limit.')
|
||||
%span.form-text.gl-text-subtle= _('Set to 0 for no size limit.')
|
||||
.form-group
|
||||
= f.label :bulk_import_max_download_file_size, s_('BulkImport|Direct transfer maximum download file size (MiB)'), class: 'label-light'
|
||||
= f.number_field :bulk_import_max_download_file_size, class: 'form-control gl-form-input', title: s_('BulkImport|Maximum download file size when importing from source GitLab instances by direct transfer.'), data: { toggle: 'tooltip', container: 'body' }
|
||||
.form-group
|
||||
= f.label :max_decompressed_archive_size, s_('Import|Maximum decompressed file size for archives from imports (MiB)'), class: 'label-light'
|
||||
= f.number_field :max_decompressed_archive_size, class: 'form-control gl-form-input', title: s_('Import|Maximum size of decompressed archive.'), data: { toggle: 'tooltip', container: 'body' }
|
||||
%span.form-text.text-muted= _('Set to 0 for no size limit.')
|
||||
%span.form-text.gl-text-subtle= _('Set to 0 for no size limit.')
|
||||
.form-group
|
||||
= f.label :decompress_archive_file_timeout, s_('Import|Timeout for decompressing archived files (seconds)'), class: 'label-light'
|
||||
= f.number_field :decompress_archive_file_timeout, class: 'form-control gl-form-input', title: s_('Import|Timeout for decompressing archived files.'), data: { toggle: 'tooltip', container: 'body' }
|
||||
%span.form-text.text-muted= _('Set to 0 to disable timeout.')
|
||||
%span.form-text.gl-text-subtle= _('Set to 0 to disable timeout.')
|
||||
.form-group
|
||||
= f.label :concurrent_github_import_jobs_limit, s_('Import|Maximum number of simultaneous import jobs for GitHub importer'), class: 'label-light'
|
||||
= f.number_field :concurrent_github_import_jobs_limit, class: 'form-control gl-form-input', title: s_('Import|Maximum number of simultaneous import jobs for GitHub importer'), data: { toggle: 'tooltip', container: 'body' }
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@
|
|||
= f.label :rate_limiting_response_text, class: 'label-bold' do
|
||||
= _('Plain-text response to send to clients that hit a rate limit')
|
||||
= f.text_area :rate_limiting_response_text, placeholder: ::Gitlab::Throttle::DEFAULT_RATE_LIMITING_RESPONSE_TEXT, class: 'form-control gl-form-input', rows: 5
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= html_escape(_("If blank, defaults to %{code_open}Retry later%{code_close}.")) % { code_open: '<code>'.html_safe, code_close: '</code>'.html_safe }
|
||||
|
||||
= f.submit _('Save changes'), data: { testid: 'save-changes-button' }, pajamas_button: true
|
||||
|
|
|
|||
|
|
@ -17,13 +17,13 @@
|
|||
.form-group
|
||||
= f.label :kroki_url, 'Kroki URL', class: 'label-bold'
|
||||
= f.text_field :kroki_url, class: 'form-control gl-form-input', placeholder: 'http://your-kroki-instance:8000'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
- install_link_url = 'https://docs.kroki.io/kroki/setup/install/'
|
||||
- install_link_start = '<a href="%{url}" target="_blank" rel="noopener noreferrer">'.html_safe % { url: install_link_url }
|
||||
= html_escape(_('Use the public cloud instance URL (%{kroki_public_url}) or %{install_link_start}install Kroki%{install_link_end} on your own infrastructure and use your own instance URL.')) % { kroki_public_url: '<code>https://kroki.io</code>'.html_safe, install_link_start: install_link_start, install_link_end: '</a>'.html_safe }
|
||||
.form-group
|
||||
= f.label :kroki_formats, _('Additional diagram formats'), class: 'label-bold'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
- container_link_url = 'https://docs.kroki.io/kroki/setup/install/#images'
|
||||
- container_link_start = '<a href="%{url}" target="_blank" rel="noopener noreferrer">'.html_safe % { url: container_link_url }
|
||||
= html_escape(_('To use the additional formats, you must start the required %{container_link_start}companion containers%{container_link_end}.')) % { container_link_start: container_link_start, container_link_end: '</a>'.html_safe }
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
.form-group
|
||||
= f.label :first_day_of_week, _('Default first day of the week'), class: 'label-bold'
|
||||
= f.select :first_day_of_week, first_day_of_week_choices, {}, class: 'form-control'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _('Default first day of the week in calendars and date pickers.')
|
||||
= link_to _('Learn more.'), help_page_path('administration/settings/localization.md', anchor: 'change-the-default-first-day-of-the-week'), target: '_blank', rel: 'noopener noreferrer'
|
||||
|
||||
|
|
@ -19,7 +19,7 @@
|
|||
= f.label :default_preferred_language, class: 'label-bold' do
|
||||
= _('Default language')
|
||||
= f.select :default_preferred_language, default_preferred_language_choices, {}, class: 'gl-form-select custom-select'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _('Default language for users who are not logged in.')
|
||||
|
||||
= f.submit _('Save changes'), pajamas_button: true
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
.form-group
|
||||
= f.label :notes_create_limit_allowlist, _('Users to exclude from the rate limit'), class: 'label-bold'
|
||||
= f.text_area :notes_create_limit_allowlist_raw, class: 'form-control gl-form-input', rows: 5, aria: { describedBy: 'note-create-limits-allowlist-field-description' }
|
||||
.form-text.text-muted{ id: 'note-create-limits-allowlist-field-description' }
|
||||
.form-text.gl-text-subtle{ id: 'note-create-limits-allowlist-field-description' }
|
||||
= _('List of users who are allowed to exceed the rate limit. Example: username1, username2')
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@
|
|||
= f.label :outbound_local_requests_allowlist_raw, class: 'label-bold' do
|
||||
= s_('OutboundRequests|Local IP addresses and domain names that hooks and integrations can access')
|
||||
= f.text_area :outbound_local_requests_allowlist_raw, placeholder: "example.com, 192.168.1.1, xn--itlab-j1a.com", class: 'form-control gl-form-input', rows: 8
|
||||
%span.form-text.text-muted
|
||||
%span.form-text.gl-text-subtle
|
||||
= s_('OutboundRequests|Requests can be made to these IP addresses and domains even when local requests are not allowed. IP ranges such as %{code_start}1:0:0:0:0:0:0:0/124%{code_end} and %{code_start}127.0.0.0/28%{code_end} are supported. Domain wildcards are not supported. To separate entries, use commas, semicolons, or newlines. The allowlist can have a maximum of 1000 entries. Domains must be IDNA-encoded.').html_safe % { code_start: '<code>'.html_safe, code_end: '</code>'.html_safe }
|
||||
= link_to _('Learn more.'), help_page_path('security/webhooks.md', anchor: 'allow-outbound-requests-to-certain-ip-addresses-and-domains'), target: '_blank', rel: 'noopener noreferrer'
|
||||
|
||||
|
|
|
|||
|
|
@ -18,19 +18,19 @@
|
|||
.form-group
|
||||
= f.label :max_pages_size, _('Maximum size of pages (MiB)'), class: 'label-bold'
|
||||
= f.number_field :max_pages_size, class: 'form-control gl-form-input'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
- link = link_to('', help_page_path('administration/pages/index.md', anchor: 'set-maximum-size-of-gitlab-pages-site-in-a-project'), target: '_blank', rel: 'noopener noreferrer')
|
||||
= safe_format(s_('AdminSettings|Set the maximum size of GitLab Pages per project (0 for unlimited). %{link_start}Learn more%{link_end}.'), tag_pair(link, :link_start, :link_end))
|
||||
.form-group
|
||||
= f.label :max_pages_custom_domains_per_project, s_('AdminSettings|Maximum number of custom domains per project'), class: 'label-bold'
|
||||
= f.number_field :max_pages_custom_domains_per_project, class: 'form-control gl-form-input'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
- link = link_to('', help_page_path('administration/pages/index.md', anchor: 'set-maximum-number-of-gitlab-pages-custom-domains-for-a-project'), target: '_blank', rel: 'noopener noreferrer')
|
||||
= safe_format(s_('AdminSettings|Set the maximum number of GitLab Pages custom domains per project (0 for unlimited). %{link_start}Learn more%{link_end}.'), tag_pair(link, :link_start, :link_end))
|
||||
.form-group
|
||||
= f.label :pages_extra_deployments_default_expiry_seconds, s_('AdminSettings|Default expiration time for parallel deployments (in seconds)'), class: 'label-bold'
|
||||
= f.number_field :pages_extra_deployments_default_expiry_seconds, class: 'form-control gl-form-input'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
- link = link_to('', help_page_path('user/project/pages/index.md', anchor: 'parallel-deployments'), target: '_blank', rel: 'noopener noreferrer')
|
||||
= safe_format(s_('AdminSettings|Set the default time after which parallel deployments expire (0 for unlimited). %{link_start}What are parallel deployments%{link_end}?'), tag_pair(link, :link_start, :link_end))
|
||||
%h5
|
||||
|
|
@ -41,7 +41,7 @@
|
|||
.form-group
|
||||
= f.label :lets_encrypt_notification_email, s_("AdminSettings|Let's Encrypt email"), class: 'label-bold'
|
||||
= f.text_field :lets_encrypt_notification_email, class: 'form-control gl-form-input'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
- link = link_to('', help_page_path('administration/pages/index.md', anchor: 'lets-encrypt-integration'), target: '_blank', rel: 'noopener noreferrer')
|
||||
= safe_format(s_("AdminSettings|A Let's Encrypt account will be configured for this GitLab instance using this email address. You will receive emails to warn of expiring certificates. %{link_start}Learn more%{link_end}."), tag_pair(link, :link_start, :link_end))
|
||||
.form-group
|
||||
|
|
|
|||
|
|
@ -10,17 +10,17 @@
|
|||
.form-group
|
||||
= f.label :raw_blob_request_limit, _('Raw blob request rate limit per minute'), class: 'label-bold'
|
||||
= f.number_field :raw_blob_request_limit, class: 'form-control gl-form-input'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _('Maximum number of requests per minute for each raw path (default is 300). Set to 0 to disable throttling.')
|
||||
.form-group
|
||||
= f.label :push_event_hooks_limit, class: 'label-bold'
|
||||
= f.number_field :push_event_hooks_limit, class: 'form-control gl-form-input'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _('Maximum number of changes (branches or tags) in a single push above which webhooks and integrations are not triggered (default is 3). Setting to 0 does not disable throttling.')
|
||||
.form-group
|
||||
= f.label :push_event_activities_limit, class: 'label-bold'
|
||||
= f.number_field :push_event_activities_limit, class: 'form-control gl-form-input'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _('Maximum number of changes (branches or tags) in a single push above which a bulk push event is created (default is 3). Setting to 0 does not disable throttling.')
|
||||
|
||||
= f.submit _('Save changes'), pajamas_button: true
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
.form-group
|
||||
= f.label :plantuml_url, _('PlantUML URL'), class: 'label-bold'
|
||||
= f.text_field :plantuml_url, class: 'form-control gl-form-input', placeholder: 'http://your-plantuml-instance:8080'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _('The hostname of your PlantUML server.')
|
||||
|
||||
= f.submit _('Save changes'), pajamas_button: true
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
.form-group
|
||||
= f.label :metrics_method_call_threshold, _('Method call threshold (ms)'), class: 'label-bold'
|
||||
= f.number_field :metrics_method_call_threshold, class: 'form-control gl-form-input'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
Only track method calls that take longer to complete than the given duration.
|
||||
|
||||
= f.submit _('Save changes'), pajamas_button: true
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@
|
|||
= f.label :protected_paths_for_get_request, class: 'label-bold' do
|
||||
= _('Paths with rate limiting for GET requests')
|
||||
= f.text_area :protected_paths_for_get_request_raw, class: 'form-control gl-form-input', rows: 10
|
||||
%span.form-text.text-muted
|
||||
%span.form-text.gl-text-subtle
|
||||
- link = link_to('', 'https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-a-relative-url-for-gitlab', target: '_blank', rel: 'noopener noreferrer')
|
||||
= safe_format(_('All paths are relative to the GitLab URL. Do not include %{relative_url_link_start}relative URLs%{relative_url_link_end}.'), tag_pair(link, :relative_url_link_start, :relative_url_link_end))
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
.form-group
|
||||
= f.label :polling_interval_multiplier, _('Polling interval multiplier'), class: 'label-bold'
|
||||
= f.text_field :polling_interval_multiplier, class: 'form-control gl-form-input'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _('Multiplier to apply to polling intervals. Decimal values are supported. Defaults to 1.')
|
||||
|
||||
= f.submit _('Save changes'), pajamas_button: true
|
||||
|
|
|
|||
|
|
@ -16,17 +16,17 @@
|
|||
.form-group
|
||||
= f.label :container_registry_delete_tags_service_timeout, _('Cleanup policy maximum processing time (seconds)'), class: 'label-bold'
|
||||
= f.number_field :container_registry_delete_tags_service_timeout, min: 0, class: 'form-control gl-form-input'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _("Tags are deleted until the timeout is reached. Any remaining tags are included the next time the policy runs. To remove the time limit, set it to 0.")
|
||||
.form-group
|
||||
= f.label :container_registry_expiration_policies_worker_capacity, _('Cleanup policy maximum workers running concurrently'), class: 'label-bold'
|
||||
= f.number_field :container_registry_expiration_policies_worker_capacity, min: 0, class: 'form-control'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _("Cleanup policies are executed by background workers. This setting defines the maximum number of workers that can run concurrently. Set it to 0 to remove all workers and not execute the cleanup policies.")
|
||||
.form-group
|
||||
= f.label :container_registry_cleanup_tags_service_max_list_size, _('Cleanup policy maximum number of tags to be deleted'), class: 'label-bold'
|
||||
= f.number_field :container_registry_cleanup_tags_service_max_list_size, min: 0, class: 'form-control'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _("The maximum number of tags that a single worker accepts for cleanup. If the number of tags goes above this limit, the list of tags to delete is truncated to this number. To remove this limit, set it to 0.")
|
||||
.form-group
|
||||
- help_text = _("When enabled, cleanup policies execute faster but put more load on Redis.")
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
_("Enable repository checks"),
|
||||
help_text: html_escape(s_('Run %{code_start}git fsck%{code_end} periodically in all project and wiki repositories to look for silent disk corruption issues.')) % { code_start: '<code>'.html_safe, code_end: '</code>'.html_safe }
|
||||
.form-group
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _("If you get a lot of false alarms from repository checks, you can clear all repository check information from the database.")
|
||||
- clear_repository_checks_link = _('Clear all repository checks')
|
||||
- clear_repository_checks_message = _('This clears repository check states for all projects in the database and cannot be undone. Are you sure?')
|
||||
|
|
@ -28,7 +28,7 @@
|
|||
.form-group
|
||||
= f.label :housekeeping_optimize_repository_period, _('Optimize repository period'), class: 'label-bold'
|
||||
= f.number_field :housekeeping_optimize_repository_period, class: 'form-control gl-form-input'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _('Number of Git pushes after which Gitaly is asked to optimize a repository.')
|
||||
.sub-section
|
||||
%h4= s_("AdminSettings|Inactive project deletion")
|
||||
|
|
|
|||
|
|
@ -4,5 +4,5 @@
|
|||
= form.label :disabled_repository_size_limit, class: 'label-bold' do
|
||||
= _('Size limit per repository (MiB)')
|
||||
= form.number_field :disabled_repository_size_limit, value: '', class: 'form-control gl-form-input', disabled: true
|
||||
%span.form-text.text-muted
|
||||
%span.form-text.gl-text-subtle
|
||||
= render 'shared/registration_features_discovery_message'
|
||||
|
|
|
|||
|
|
@ -6,13 +6,13 @@
|
|||
= f.label :static_objects_external_storage_url, class: 'label-bold' do
|
||||
= _('External storage URL')
|
||||
= f.text_field :static_objects_external_storage_url, class: 'form-control gl-form-input'
|
||||
%span.form-text.text-muted#static_objects_external_storage_url_help_block
|
||||
%span.form-text.gl-text-subtle#static_objects_external_storage_url_help_block
|
||||
= _('URL of the external storage to serve the repository static objects.')
|
||||
.form-group
|
||||
= f.label :static_objects_external_storage_auth_token, class: 'label-bold' do
|
||||
= _('External storage authentication token')
|
||||
= f.text_field :static_objects_external_storage_auth_token, class: 'form-control gl-form-input'
|
||||
%span.form-text.text-muted#static_objects_external_storage_auth_token_help_block
|
||||
%span.form-text.gl-text-subtle#static_objects_external_storage_auth_token_help_block
|
||||
= _('Secure token that identifies an external storage request.')
|
||||
|
||||
= f.submit _('Save changes'), pajamas_button: true
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
.form-group
|
||||
= f.label :search_rate_limit_allowlist, _('Users to exclude from the rate limit'), class: 'label-bold'
|
||||
= f.text_area :search_rate_limit_allowlist_raw, class: 'form-control gl-form-input', rows: 5, aria: { describedBy: 'search-rate-limit-allowlist-field-description' }
|
||||
.form-text.text-muted{ id: 'search-rate-limit-allowlist-field-description' }
|
||||
.form-text.gl-text-subtle{ id: 'search-rate-limit-allowlist-field-description' }
|
||||
= _('List of users who are allowed to exceed the rate limit. Example: username1, username2')
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -12,6 +12,6 @@
|
|||
= f.label :security_txt_content do
|
||||
= s_("SecurityTxt|Content for security.txt")
|
||||
= f.text_area :security_txt_content, class: 'form-control gl-form-input', rows: 8
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= s_('SecurityTxt|When present, this will be publicly available at %{codeOpen}https://gitlab.example.com/.well-known/security.txt%{codeClose}. Maximum 2048 characters.').html_safe % {codeOpen: '<code>'.html_safe, codeClose: '</code>'.html_safe}
|
||||
= f.submit _('Save changes'), pajamas_button: true
|
||||
|
|
|
|||
|
|
@ -10,22 +10,22 @@
|
|||
.form-group
|
||||
= f.label :sentry_environment, _('Environment'), class: 'label-light'
|
||||
= f.text_field :sentry_environment, class: 'form-control gl-form-input', placeholder: Rails.env
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= safe_format(s_('AdminSettings|%{setting_name} value used by both Rails and Browser JavaScript SDKs.'), setting_name: content_tag(:code, 'environment'))
|
||||
.form-group
|
||||
= f.label :sentry_dsn, _('DSN'), class: 'label-light'
|
||||
= f.text_field :sentry_dsn, class: 'form-control gl-form-input', placeholder: 'https://public@sentry.example.com/1'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= safe_format(s_('AdminSettings|%{setting_name} value used by the Rails SDK.'), setting_name: content_tag(:code, 'dsn'))
|
||||
.form-group
|
||||
= f.label :sentry_clientside_dsn, _('Clientside DSN'), class: 'label-light'
|
||||
= f.text_field :sentry_clientside_dsn, class: 'form-control gl-form-input', placeholder: 'https://public@sentry.example.com/2'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= safe_format(s_('AdminSettings|%{setting_name} value used by the Browser JavaScript SDK.'), setting_name: content_tag(:code, 'dsn'))
|
||||
.form-group
|
||||
= f.label :sentry_clientside_traces_sample_rate, _('Clientside traces sample rate'), class: 'label-light'
|
||||
= f.number_field :sentry_clientside_traces_sample_rate, class: 'form-control gl-form-input', placeholder: '0.5', min: 0, max: 1, step: 0.001
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= safe_format(s_('AdminSettings|%{setting_name} value used by the Browser JavaScript SDK.'), setting_name: content_tag(:code, 'tracesSampleRate'))
|
||||
|
||||
= f.submit _('Save changes'), pajamas_button: true
|
||||
|
|
|
|||
|
|
@ -5,17 +5,17 @@
|
|||
.form-group
|
||||
= f.label :sidekiq_job_limiter_mode, _('Limiting mode'), class: 'label-bold'
|
||||
= f.select :sidekiq_job_limiter_mode, sidekiq_job_limiter_modes_for_select, {}, class: 'form-control'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= sidekiq_job_limiter_mode_help_text
|
||||
.form-group
|
||||
= f.label :sidekiq_job_limiter_compression_threshold_bytes, _('Sidekiq job compression threshold (bytes)'), class: 'label-bold'
|
||||
= f.number_field :sidekiq_job_limiter_compression_threshold_bytes, class: 'form-control gl-form-input'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _('Threshold in bytes at which to compress Sidekiq job arguments.')
|
||||
.form-group
|
||||
= f.label :sidekiq_job_limiter_limit_bytes, _('Sidekiq job size limit (bytes)'), class: 'label-bold'
|
||||
= f.number_field :sidekiq_job_limiter_limit_bytes, class: 'form-control gl-form-input'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _("Threshold in bytes at which to reject Sidekiq jobs. Set this to 0 to if you don't want to limit Sidekiq jobs.")
|
||||
|
||||
= f.submit _('Save changes'), pajamas_button: true
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@
|
|||
.form-group
|
||||
= f.label :two_factor_authentication, _('Two-factor grace period'), class: 'label-bold'
|
||||
= f.number_field :two_factor_grace_period, min: 0, class: 'form-control gl-form-input', placeholder: '0'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _('Maximum time that users are allowed to skip the setup of two-factor authentication (in hours). Set to 0 (zero) to enforce at next sign in.')
|
||||
.form-group
|
||||
= f.label :admin_mode, _('Admin Mode'), class: 'label-bold'
|
||||
|
|
@ -52,9 +52,9 @@
|
|||
.form-group
|
||||
= f.label :home_page_url, _('Home page URL'), class: 'label-bold'
|
||||
= f.text_field :home_page_url, class: 'form-control gl-form-input', placeholder: 'http://company.example.com', :'aria-describedby' => 'home_help_block'
|
||||
%span.form-text.text-muted#home_help_block= _("Direct non-authenticated users to this page.")
|
||||
%span.form-text.gl-text-subtle#home_help_block= _("Direct non-authenticated users to this page.")
|
||||
.form-group
|
||||
= f.label :after_sign_out_path, _('Sign-out page URL'), class: 'label-bold'
|
||||
= f.text_field :after_sign_out_path, class: 'form-control gl-form-input', placeholder: 'http://company.example.com', :'aria-describedby' => 'after_sign_out_path_help_block'
|
||||
%span.form-text.text-muted#home_help_block= _("Direct users to this page after they sign out.")
|
||||
%span.form-text.gl-text-subtle#home_help_block= _("Direct users to this page after they sign out.")
|
||||
= f.submit _('Save changes'), pajamas_button: true
|
||||
|
|
|
|||
|
|
@ -36,17 +36,17 @@
|
|||
.form-group
|
||||
= f.label :slack_app_secret, s_('SlackIntegration|Client secret'), class: 'label-bold'
|
||||
= f.text_field :slack_app_secret, class: 'form-control gl-form-input'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= s_('SlackIntegration|Used for authenticating OAuth requests from the GitLab for Slack app.')
|
||||
.form-group
|
||||
= f.label :slack_app_signing_secret, s_('SlackIntegration|Signing secret'), class: 'label-bold'
|
||||
= f.text_field :slack_app_signing_secret, class: 'form-control gl-form-input'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= s_('SlackIntegration|Used for authenticating API requests from the GitLab for Slack app.')
|
||||
.form-group
|
||||
= f.label :slack_app_verification_token, s_('SlackIntegration|Verification token'), class: 'label-bold'
|
||||
= f.text_field :slack_app_verification_token, class: 'form-control gl-form-input'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= s_('SlackIntegration|Used only for authenticating slash commands from the GitLab for Slack app. This method of authentication is deprecated by Slack.')
|
||||
= f.submit _('Save changes'), pajamas_button: true
|
||||
|
||||
|
|
|
|||
|
|
@ -18,17 +18,17 @@
|
|||
.form-group
|
||||
= f.label :snowplow_collector_hostname, _('Collector hostname'), class: 'label-light'
|
||||
= f.text_field :snowplow_collector_hostname, class: 'form-control gl-form-input', placeholder: 'snowplow.example.com'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _('The hostname of your Snowplow collector.')
|
||||
.form-group
|
||||
= f.label :snowplow_app_id, _('App ID'), class: 'label-light'
|
||||
= f.text_field :snowplow_app_id, class: 'form-control gl-form-input', placeholder: 'gitlab'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _('The ID of the application.')
|
||||
.form-group
|
||||
= f.label :snowplow_cookie_domain, _('Cookie domain'), class: 'label-light'
|
||||
= f.text_field :snowplow_cookie_domain, class: 'form-control gl-form-input', placeholder: '.your-gitlab-instance.com'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _('The Snowplow cookie domain.')
|
||||
|
||||
= f.submit _('Save changes'), data: { testid: 'save-changes-button' }, pajamas_button: true
|
||||
|
|
|
|||
|
|
@ -21,6 +21,6 @@
|
|||
.form-group
|
||||
= f.label :sourcegraph_url, s_('SourcegraphAdmin|Sourcegraph URL'), class: 'label-bold'
|
||||
= f.text_field :sourcegraph_url, class: 'form-control gl-form-input', placeholder: s_('SourcegraphAdmin|https://sourcegraph.example.com')
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= s_('SourcegraphAdmin|Configure the URL to a Sourcegraph instance which can read your GitLab projects.')
|
||||
= f.submit s_('SourcegraphAdmin|Save changes'), pajamas_button: true
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
.form-group
|
||||
= f.label :recaptcha_site_key, _('reCAPTCHA site key'), class: 'label-bold'
|
||||
= f.text_field :recaptcha_site_key, class: 'form-control gl-form-input'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _("Generate site and private keys at")
|
||||
%a{ href: 'http://www.google.com/recaptcha', target: 'blank', rel: 'noopener noreferrer' } http://www.google.com/recaptcha
|
||||
|
||||
|
|
@ -53,7 +53,7 @@
|
|||
.form-group
|
||||
= f.label :akismet_api_key, _('Akismet API Key'), class: 'label-bold'
|
||||
= f.text_field :akismet_api_key, class: 'form-control gl-form-input'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _("Generate API key at %{site}").html_safe % { site: link_to('http://www.akismet.com', 'http://www.akismet.com', target: 'blank', ref: 'noopener noreferrer') }
|
||||
|
||||
%h5
|
||||
|
|
@ -66,13 +66,13 @@
|
|||
.form-group
|
||||
= f.label :unique_ips_limit_per_user, _('IP addresses per user'), class: 'label-bold'
|
||||
= f.number_field :unique_ips_limit_per_user, class: 'form-control gl-form-input'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _("Maximum number of unique IP addresses per user.")
|
||||
|
||||
.form-group
|
||||
= f.label :unique_ips_limit_time_window, _('IP address expiration time'), class: 'label-bold'
|
||||
= f.number_field :unique_ips_limit_time_window, class: 'form-control gl-form-input'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _("How many seconds an IP counts toward the IP address limit.")
|
||||
|
||||
%h5
|
||||
|
|
@ -87,6 +87,6 @@
|
|||
.form-group
|
||||
= f.label :spam_check_api_key, _('Spam Check API key'), class: 'gl-font-bold'
|
||||
= f.text_field :spam_check_api_key, class: 'form-control gl-form-input'
|
||||
.form-text.text-muted= _('The API key used by GitLab for accessing the Spam Check service endpoint.')
|
||||
.form-text.gl-text-subtle= _('The API key used by GitLab for accessing the Spam Check service endpoint.')
|
||||
|
||||
= f.submit _('Save changes'), pajamas_button: true
|
||||
|
|
|
|||
|
|
@ -5,6 +5,6 @@
|
|||
.form-group
|
||||
= f.label :terminal_max_session_time, _('Max session time'), class: 'label-bold'
|
||||
= f.number_field :terminal_max_session_time, class: 'form-control gl-form-input'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _('Maximum time, in seconds, for a web terminal websocket connection. 0 for unlimited.')
|
||||
= f.submit _('Save changes'), pajamas_button: true
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
= f.label :terms do
|
||||
= _("Terms of Service Agreement and Privacy Policy")
|
||||
= f.text_area :terms, class: 'form-control gl-form-input', rows: 8
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _("Markdown supported.")
|
||||
= link_to _('What is Markdown?'), help_page_path('user/markdown.md'), target: '_blank', rel: 'noopener noreferrer'
|
||||
= f.submit _("Save changes"), pajamas_button: true
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
.form-group
|
||||
= f.label :max_terraform_state_size_bytes, s_('TerraformLimits|Terraform state size limit (bytes)'), class: 'label-bold'
|
||||
= f.number_field :max_terraform_state_size_bytes, class: 'form-control gl-form-input'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= s_("TerraformLimits|Maximum file size (in bytes) of Terraform state files. Set to 0 for no limit.")
|
||||
|
||||
= f.submit _('Save changes'), pajamas_button: true
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
.form-group
|
||||
= f.label :users_get_by_id_limit_allowlist_raw, _('Users to exclude from the rate limit'), class: 'label-bold'
|
||||
= f.text_area :users_get_by_id_limit_allowlist_raw, class: 'form-control gl-form-input', rows: 5, aria: { describedBy: 'users-api-limit-users-allowlist-field-description' }
|
||||
.form-text.text-muted{ id: 'users-api-limit-users-allowlist-field-description' }
|
||||
.form-text.gl-text-subtle{ id: 'users-api-limit-users-allowlist-field-description' }
|
||||
= _('List of users who are allowed to exceed the rate limit. Example: username1, username2')
|
||||
|
||||
= f.submit _('Save changes'), pajamas_button: true
|
||||
|
|
|
|||
|
|
@ -33,13 +33,13 @@
|
|||
.form-group
|
||||
%label.label-bold= _('Enabled Git access protocols')
|
||||
= select(:application_setting, :enabled_git_access_protocol, [['Both SSH and HTTP(S)', nil], ['Only SSH', 'ssh'], ['Only HTTP(S)', 'http']], {}, class: 'form-control')
|
||||
%span.form-text.text-muted#clone-protocol-help
|
||||
%span.form-text.gl-text-subtle#clone-protocol-help
|
||||
= _('Allow only the selected protocols to be used for Git access.')
|
||||
|
||||
.form-group
|
||||
= f.label :custom_http_clone_url_root, _('Custom Git clone URL for HTTP(S)'), class: 'label-bold'
|
||||
= f.text_field :custom_http_clone_url_root, class: 'form-control gl-form-input', placeholder: 'https://git.example.com', :'aria-describedby' => 'custom_http_clone_url_root_help_block'
|
||||
%span.form-text.text-muted#custom_http_clone_url_root_help_block
|
||||
%span.form-text.gl-text-subtle#custom_http_clone_url_root_help_block
|
||||
= _('Replaces the clone URL root.')
|
||||
|
||||
- Gitlab::SSHPublicKey.supported_types.each do |type|
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
= f.label :redirect_uri
|
||||
= f.text_area :redirect_uri, class: 'form-control gl-form-input', data: { testid: 'redirect-uri-field' }
|
||||
= doorkeeper_errors_for application, :redirect_uri
|
||||
%span.form-text.text-muted
|
||||
%span.form-text.gl-text-subtle
|
||||
Use one line per URI
|
||||
|
||||
= content_tag :div, class: 'form-group row' do
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
.form-group
|
||||
= form.label :url, _('URL'), class: 'label-bold'
|
||||
= form.text_field :url, class: 'form-control gl-form-input'
|
||||
%p.form-text.text-muted= _('URL must be percent-encoded if necessary.')
|
||||
%p.form-text.gl-text-subtle= _('URL must be percent-encoded if necessary.')
|
||||
.form-group
|
||||
= form.label :name, s_('Webhooks|Name (optional)'), class: 'label-bold'
|
||||
= form.text_field :name, value: hook.name, class: 'form-control gl-form-input gl-form-input-xl'
|
||||
|
|
@ -13,7 +13,7 @@
|
|||
.form-group
|
||||
= form.label :token, _('Secret token'), class: 'label-bold'
|
||||
= form.password_field :token, value: hook.masked_token, autocomplete: 'new-password', class: 'form-control gl-form-input gl-max-w-48'
|
||||
%p.form-text.text-muted= _('Use this token to validate received payloads.')
|
||||
%p.form-text.gl-text-subtle= _('Use this token to validate received payloads.')
|
||||
.form-group
|
||||
= form.label :url, _('Trigger'), class: 'label-bold gl-mb-0'
|
||||
.form-text.text-secondary.gl-mb-5= _('System hooks are triggered on sets of events like creating a project or adding an SSH key. You can also enable extra triggers, such as push events.')
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
.form-group
|
||||
= f.label :email, _('Email')
|
||||
= f.email_field :email, class: "form-control gl-form-input", required: true, autocomplete: 'off', value: @user.email, autofocus: true, title: _('Please provide a valid email address.')
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _('Please use an email address or domain you control.')
|
||||
|
||||
.form-group
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@
|
|||
include_subgroups: true.to_s,
|
||||
membership: true.to_s,
|
||||
selected: @cluster.management_project_id } }
|
||||
%p.text-muted.-gl-mt-5
|
||||
%p.gl-text-subtle.-gl-mt-5
|
||||
= html_escape(s_('ClusterIntegration|A cluster management project can be used to run deployment jobs with Kubernetes %{code_open}cluster-admin%{code_close} privileges.')) % { code_open: '<code>'.html_safe, code_close: '</code>'.html_safe }
|
||||
= link_to _('More information'), help_page_path('user/clusters/management_project.md'), target: '_blank', rel: 'noopener noreferrer'
|
||||
= field.submit _('Save changes'), pajamas_button: true
|
||||
|
|
|
|||
|
|
@ -6,9 +6,9 @@
|
|||
.form-group
|
||||
= platform_field.label :namespace, s_('ClusterIntegration|Project namespace prefix (optional, unique)'), class: 'label-bold'
|
||||
= platform_field.text_field :namespace, class: 'form-control'
|
||||
%small.form-text.text-muted= '%{help_text} %{help_link}'.html_safe % { help_text: managed_namespace_help_text, help_link: managed_namespace_help_link }
|
||||
%small.form-text.gl-text-subtle= '%{help_text} %{help_link}'.html_safe % { help_text: managed_namespace_help_text, help_link: managed_namespace_help_link }
|
||||
.js-namespace.hidden
|
||||
.form-group
|
||||
= platform_field.label :namespace, s_('ClusterIntegration|Project namespace (optional, unique)'), class: 'label-bold'
|
||||
= platform_field.text_field :namespace, class: 'form-control', disabled: true
|
||||
%small.form-text.text-muted= '%{help_text}'.html_safe % { help_text: non_managed_namespace_help_text }
|
||||
%small.form-text.gl-text-subtle= '%{help_text}'.html_safe % { help_text: non_managed_namespace_help_text }
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@
|
|||
.form-check
|
||||
= platform_field.check_box :authorization_type, { disabled: true, inline: true, class: 'form-check-input' }, 'rbac', 'abac'
|
||||
= platform_field.label :authorization_type, s_('ClusterIntegration|RBAC-enabled cluster'), class: 'form-check-label label-bold'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= s_('ClusterIntegration|Enable this setting if using role-based access control (RBAC).')
|
||||
= s_('ClusterIntegration|This option will allow you to install applications on RBAC clusters.')
|
||||
|
||||
|
|
@ -49,7 +49,7 @@
|
|||
.form-check
|
||||
= field.check_box :managed, { class: 'js-gl-managed form-check-input' }
|
||||
= field.label :managed, s_('ClusterIntegration|GitLab-managed cluster'), class: 'form-check-label label-bold'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= s_('ClusterIntegration|Allow GitLab to manage namespaces and service accounts for this cluster.')
|
||||
= link_to _('More information'), help_page_path('user/project/clusters/gitlab_managed_clusters.md'), target: '_blank', rel: 'noopener noreferrer'
|
||||
|
||||
|
|
@ -57,7 +57,7 @@
|
|||
.form-check
|
||||
= field.check_box :namespace_per_environment, { class: 'form-check-input' }
|
||||
= field.label :namespace_per_environment, s_('ClusterIntegration|Namespace per environment'), class: 'form-check-label label-bold'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= s_('ClusterIntegration|Deploy each environment to its own namespace. Otherwise, environments within a project share a project-wide namespace. Note that anyone who can trigger a deployment of a namespace can read its secrets. If modified, existing environments will use their current namespaces until the cluster cache is cleared.')
|
||||
= link_to _('More information'), help_page_path('user/project/clusters/deploy_to_cluster.md', anchor: 'custom-namespace'), target: '_blank', rel: 'noopener noreferrer'
|
||||
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
.form-group
|
||||
= field.label :environment_scope, s_('ClusterIntegration|Environment scope'), class: 'label-bold required'
|
||||
= field.text_field :environment_scope, required: true, title: s_('ClusterIntegration|Environment scope is required.'), class: 'form-control'
|
||||
%small.form-text.text-muted
|
||||
%small.form-text.gl-text-subtle
|
||||
= s_('ClusterIntegration|Choose which of your environments will use this cluster.')
|
||||
|
||||
= field.fields_for :platform_kubernetes, @user_cluster.platform_kubernetes do |platform_kubernetes_field|
|
||||
|
|
@ -27,7 +27,7 @@
|
|||
= platform_kubernetes_field.label :api_url, s_('ClusterIntegration|API URL'), class: 'label-bold required'
|
||||
= platform_kubernetes_field.url_field :api_url, required: true,
|
||||
title: s_('ClusterIntegration|API URL should be a valid http/https url.'), class: 'form-control'
|
||||
%small.form-text.text-muted
|
||||
%small.form-text.gl-text-subtle
|
||||
= '%{help_text} %{help_link}'.html_safe % { help_text: api_url_help_text, help_link: more_info_link }
|
||||
|
||||
.form-group
|
||||
|
|
@ -36,27 +36,27 @@
|
|||
rows: '10',
|
||||
placeholder: s_('ClusterIntegration|Certificate Authority bundle (PEM format)'),
|
||||
class: 'form-control'
|
||||
%small.form-text.text-muted
|
||||
%small.form-text.gl-text-subtle
|
||||
= '%{help_text} %{help_link}'.html_safe % { help_text: ca_cert_help_text, help_link: more_info_link }
|
||||
|
||||
.form-group
|
||||
= platform_kubernetes_field.label :token, s_('ClusterIntegration|Service Token'), class: 'label-bold required'
|
||||
= platform_kubernetes_field.text_field :token, required: true, title: s_('ClusterIntegration|Service token is required.'), autocomplete: 'off', class: 'form-control'
|
||||
%small.form-text.text-muted
|
||||
%small.form-text.gl-text-subtle
|
||||
= '%{help_text} %{help_link}'.html_safe % { help_text: token_help_text, help_link: more_info_link }
|
||||
|
||||
.form-group
|
||||
.form-check
|
||||
= platform_kubernetes_field.check_box :authorization_type, { inline: true, class: 'form-check-input' }, 'rbac', 'abac'
|
||||
= platform_kubernetes_field.label :authorization_type, s_('ClusterIntegration|RBAC-enabled cluster'), class: 'form-check-label label-bold'
|
||||
%small.form-text.text-muted
|
||||
%small.form-text.gl-text-subtle
|
||||
= '%{help_text} %{help_link}'.html_safe % { help_text: rbac_help_text, help_link: rbac_help_link }
|
||||
|
||||
.form-group
|
||||
.form-check
|
||||
= field.check_box :managed, { class: 'js-gl-managed form-check-input' }
|
||||
= field.label :managed, s_('ClusterIntegration|GitLab-managed cluster'), class: 'form-check-label label-bold'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= s_('ClusterIntegration|Allow GitLab to manage namespaces and service accounts for this cluster.')
|
||||
= link_to _('Learn more.'), help_page_path('user/project/clusters/gitlab_managed_clusters.md'), target: '_blank', rel: 'noopener noreferrer'
|
||||
|
||||
|
|
@ -64,7 +64,7 @@
|
|||
.form-check
|
||||
= field.check_box :namespace_per_environment, { class: 'form-check-input' }
|
||||
= field.label :namespace_per_environment, s_('ClusterIntegration|Namespace per environment'), class: 'form-check-label label-bold'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= s_('ClusterIntegration|Deploy each environment to its own namespace. Otherwise, environments within a project share a project-wide namespace. Note that anyone who can trigger a deployment of a namespace can read its secrets. If modified, existing environments will use their current namespaces until the cluster cache is cleared.')
|
||||
= link_to _('Learn more.'), help_page_path('user/project/clusters/deploy_to_cluster.md', anchor: 'custom-namespace'), target: '_blank', rel: 'noopener noreferrer'
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
.form-group
|
||||
= f.label :email, _('Email')
|
||||
= f.email_field :email, class: "form-control gl-form-input", required: true, autocomplete: 'off', value: params[:user_email], autofocus: true, title: _('Please provide a valid email address.')
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _('Requires your primary or verified secondary GitLab email address.')
|
||||
|
||||
.form-group
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
= f.label :otp_attempt, _('Enter verification code')
|
||||
-# Note: we use inputmode="numeric", because TOTP. However, recovery codes are alphanumeric.
|
||||
= f.text_field :otp_attempt, class: 'form-control gl-form-input', required: true, autofocus: true, autocomplete: 'off', inputmode: 'numeric', title: _('This field is required.'), data: { testid: 'two-fa-code-field' }
|
||||
%p.form-text.text-muted.hint
|
||||
%p.form-text.gl-text-subtle.hint
|
||||
= _("Enter the code from your two-factor authenticator app. If you've lost your device, you can enter one of your recovery codes.")
|
||||
|
||||
- if render_remember_me
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
.form-group.col-md-5
|
||||
= f.label :name, s_('Groups|Group name'), class: 'label-bold'
|
||||
= f.text_field :name, class: 'form-control', data: { testid: 'group-name-field' }
|
||||
%span.form-text.text-muted
|
||||
%span.form-text.gl-text-subtle
|
||||
= s_('Groups|Must start with letter, digit, emoji, or underscore. Can also contain periods, dashes, spaces, and parentheses.')
|
||||
|
||||
.form-group.col-md-4
|
||||
|
|
|
|||
|
|
@ -3,5 +3,5 @@
|
|||
= f.label _('Enabled Git access protocols'), class: 'label-bold'
|
||||
= f.select :enabled_git_access_protocol, options_for_select(enabled_git_access_protocol_options_for_group, group.enabled_git_access_protocol), {}, class: 'form-control', disabled: !::Gitlab::CurrentSettings.enabled_git_access_protocol.blank?
|
||||
- if !::Gitlab::CurrentSettings.enabled_git_access_protocol.blank?
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _("This setting has been configured at the instance level and cannot be overridden per group")
|
||||
|
|
|
|||
|
|
@ -4,5 +4,5 @@
|
|||
= f.label :disabled_ip_restriction_ranges, class: 'label-bold' do
|
||||
= _('Allow access to the following IP addresses')
|
||||
= f.text_field :disabled_ip_restriction_ranges, value: '', class: 'form-control', disabled: true
|
||||
%span.form-text.text-muted
|
||||
%span.form-text.gl-text-subtle
|
||||
= render 'shared/registration_features_discovery_message'
|
||||
|
|
|
|||
|
|
@ -14,5 +14,5 @@
|
|||
disabled: !group.namespace_settings&.remove_dormant_members?
|
||||
#group_remove_dormant_members_period_error.form-text.gl-text-red-500.gl-hidden
|
||||
= _('Please enter a value of 90 days or more')
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _('Must be 90 days or more.')
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
.form-group
|
||||
= f.label :two_factor_grace_period, _('Delay 2FA enforcement (hours)')
|
||||
= f.text_field :two_factor_grace_period, class: 'form-control form-control-sm w-auto gl-form-input gl-mb-3'
|
||||
.form-text.text-muted= _("The maximum amount of time users have to set up two-factor authentication before it's enforced.")
|
||||
.form-text.gl-text-subtle= _("The maximum amount of time users have to set up two-factor authentication before it's enforced.")
|
||||
- unless group.has_parent?
|
||||
.form-group
|
||||
= f.gitlab_ui_checkbox_component :allow_mfa_for_subgroups,
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
.form-group
|
||||
= f.label :max_artifacts_size, _('Maximum artifacts size'), class: 'label-bold'
|
||||
= f.number_field :max_artifacts_size, class: 'form-control'
|
||||
%p.form-text.text-muted
|
||||
%p.form-text.gl-text-subtle
|
||||
= _("The maximum file size in megabytes for individual job artifacts.")
|
||||
= link_to _('Learn more.'), help_page_path('administration/settings/continuous_integration.md', anchor: 'maximum-artifacts-size'), target: '_blank', rel: 'noopener noreferrer'
|
||||
= f.submit _('Save changes'), pajamas_button: true
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
.form-group
|
||||
= f.label :default_branch_name, _('Initial default branch name'), class: 'label-light'
|
||||
= f.text_field :default_branch_name, value: group.namespace_settings&.default_branch_name, placeholder: Gitlab::DefaultBranch.value(object: @group), class: 'form-control'
|
||||
%span.form-text.text-muted
|
||||
%span.form-text.gl-text-subtle
|
||||
= (s_("GroupSettings|If not specified at the group or instance level, the default is %{default_initial_branch_name}. Does not affect existing repositories.") % { default_initial_branch_name: fallback_branch_name }).html_safe
|
||||
|
||||
= render 'groups/settings/default_branch_protection_defaults', f: f, group: @group
|
||||
|
|
|
|||
|
|
@ -10,14 +10,14 @@
|
|||
input_id: 'group_id',
|
||||
input_name: 'group_id',
|
||||
root_url: root_url } }
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _('Choose the top-level group for your repository imports.')
|
||||
|
||||
.form-group
|
||||
= label_tag :manifest, class: 'label-bold' do
|
||||
= _('Manifest')
|
||||
= file_field_tag :manifest, class: 'form-control-file w-auto', required: true
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _('Import multiple repositories by uploading a manifest file.')
|
||||
= link_to sprite_icon('question-o'), help_page_path('user/project/import/manifest.md')
|
||||
|
||||
|
|
|
|||
|
|
@ -111,7 +111,7 @@
|
|||
= f.label :project_view, class: 'label-bold' do
|
||||
= s_('Preferences|Project overview content')
|
||||
= f.select :project_view, project_view_choices, {}, class: 'gl-form-select custom-select gl-form-input-xl gl-block'
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= s_('Preferences|Choose what content you want to see on a project’s overview page.')
|
||||
.form-group
|
||||
= f.gitlab_ui_checkbox_component :project_shortcut_buttons, s_('Preferences|Show shortcut buttons above files on project overview')
|
||||
|
|
@ -140,7 +140,7 @@
|
|||
min: Gitlab::TabWidth::MIN,
|
||||
max: Gitlab::TabWidth::MAX,
|
||||
required: true
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= s_('Preferences|Must be a number between %{min} and %{max}') % { min: Gitlab::TabWidth::MIN, max: Gitlab::TabWidth::MAX }
|
||||
|
||||
.settings-section.js-preferences-form.js-search-settings-section#localization
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@
|
|||
.form-group
|
||||
= label_tag :current_password, _('Current password'), class: 'label-bold'
|
||||
= password_field_tag :current_password, nil, autocomplete: 'current-password', required: true, class: 'form-control gl-form-input', data: { testid: 'current-password-field' }
|
||||
%p.form-text.text-muted
|
||||
%p.form-text.gl-text-subtle
|
||||
= _('Your current password is required to register a two-factor authenticator app.')
|
||||
.form-group
|
||||
= label_tag :pin_code, _('Enter verification code'), class: "label-bold"
|
||||
|
|
|
|||
|
|
@ -2,5 +2,5 @@
|
|||
.form-group.col-md-9
|
||||
= f.label :external_authorization_classification_label, _('Classification Label (optional)'), class: 'label-bold'
|
||||
= f.text_field :external_authorization_classification_label, class: "form-control"
|
||||
%span.form-text.text-muted
|
||||
%span.form-text.gl-text-subtle
|
||||
= external_classification_label_help_message
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
.form-group
|
||||
.gl-mb-2
|
||||
= f.text_field :issue_branch_template, class: 'form-control gl-mb-2 gl-form-input-xl', placeholder: "%{id}-%{title}"
|
||||
%p.form-text.text-muted
|
||||
%p.form-text.gl-text-subtle
|
||||
= s_('ProjectSettings|Leave empty to use default template.')
|
||||
= sprintf(s_('ProjectSettings|Maximum %{maxLength} characters.'), { maxLength: Issue::MAX_BRANCH_TEMPLATE })
|
||||
- branch_name_help_link = help_page_path('user/project/repository/branches/index.md', anchor: 'name-your-branch')
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
.form-group.gl-max-w-80
|
||||
= label_tag :ref, _('Create from')
|
||||
.js-new-branch-ref-selector{ data: { project_id: @project.id, default_branch_name: default_ref, hidden_input_name: 'ref' } }
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _('Existing branch name, tag, or commit SHA')
|
||||
= render Pajamas::ButtonComponent.new(variant: :confirm, button_options: { type: 'submit', class: 'gl-mr-3' }) do
|
||||
= _('Create branch')
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@
|
|||
%span.gl-ml-3.js-filename
|
||||
= _("No file selected")
|
||||
= f.file_field :bfg_object_map, class: "hidden js-object-map-input", required: true
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _("The maximum file size is %{size}.") % { size: number_to_human_size(Gitlab::CurrentSettings.max_attachment_size.megabytes) }
|
||||
|
||||
= f.submit _('Start cleanup'), pajamas_button: true
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
- options = options_for_select(mattermost_teams_options(@teams), selected_id)
|
||||
= f.select(:team_id, options, { include_blank: 'Select team...'}, { class: 'form-control', disabled: @teams.one?, selected: selected_id, required: true })
|
||||
= f.hidden_field(:team_id, value: selected_id, required: true) if @teams.one?
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
- if @teams.one?
|
||||
This is the only available team that you are a member of.
|
||||
- else
|
||||
|
|
@ -25,7 +25,7 @@
|
|||
%h4 Command trigger word
|
||||
%p Choose the word that will trigger commands
|
||||
= f.text_field(:trigger, value: @project.path, class: 'form-control', required: true)
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
%p
|
||||
Trigger word must be unique, and can't begin with a slash or contain any spaces.
|
||||
Use the word that works best for your team.
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
- mirror.ssh_known_hosts_fingerprints.each do |fp|
|
||||
%code= fp.fingerprint_sha256 || fp.fingerprint
|
||||
- if verified_at
|
||||
.form-text.text-muted.js-fingerprint-verification
|
||||
.form-text.gl-text-subtle.js-fingerprint-verification
|
||||
= sprite_icon('check', css_class: 'gl-text-green-500')
|
||||
Verified by
|
||||
- if verified_by
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
%strong
|
||||
= template.title
|
||||
%br
|
||||
.text-muted
|
||||
.gl-text-subtle
|
||||
= template.description
|
||||
.controls.gl-items-center{ class: '!gl-flex' }
|
||||
= render Pajamas::ButtonComponent.new(button_options: { class: 'gl-mr-3', data: { track_label: "template_preview", track_property: template.name, track_action: "click_button", track_value: "" } }, href: template.preview, target: '_blank') do
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
= f.label :name, _('Tag')
|
||||
.protected-tags-dropdown
|
||||
= render partial: "projects/protected_tags/shared/dropdown", locals: { f: f }
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
- wildcards_url = help_page_path('user/project/protected_tags.md', anchor: 'wildcard-protected-tags')
|
||||
- wildcards_link_start = '<a href="%{url}" target="_blank" rel="noopener noreferrer">'.html_safe % { url: wildcards_url }
|
||||
= html_escape(_("%{wildcards_link_start}Wildcards%{wildcards_link_end} such as %{code_tag_start}v*%{code_tag_end} or %{code_tag_start}*-release%{code_tag_end} are supported.")) % { wildcards_link_start: wildcards_link_start, wildcards_link_end: '</a>'.html_safe, code_tag_start: '<code>'.html_safe, code_tag_end: '</code>'.html_safe }
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
= f.label :name, class: 'label-bold', for: 'project_name_edit' do
|
||||
= _('Project name')
|
||||
= f.text_field :name, class: 'form-control gl-form-input', id: "project_name_edit", data: { testid: 'project-name-field' }
|
||||
%span.form-text.text-muted
|
||||
%span.form-text.gl-text-subtle
|
||||
= _('Must start with letter, digit, emoji, or underscore. Can also contain periods, dashes, spaces, and parentheses.')
|
||||
|
||||
.form-group.col-md-4
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@
|
|||
.form-group
|
||||
= f.label :ci_config_path, _('CI/CD configuration file'), class: 'label-bold'
|
||||
= f.text_field :ci_config_path, class: 'form-control', placeholder: '.gitlab-ci.yml'
|
||||
%p.form-text.text-muted
|
||||
%p.form-text.gl-text-subtle
|
||||
= html_escape(_("The name of the CI/CD configuration file. A path relative to the root directory is optional (for example %{code_open}my/path/.myfile.yml%{code_close}).")) % { code_open: '<code>'.html_safe, code_close: '</code>'.html_safe }
|
||||
= link_to sprite_icon('question-o'), help_page_path('ci/pipelines/settings.md', anchor: 'specify-a-custom-cicd-configuration-file'), target: '_blank', rel: 'noopener noreferrer'
|
||||
|
||||
|
|
@ -65,7 +65,7 @@
|
|||
= f.fields_for :ci_cd_settings_attributes, @project.ci_cd_settings do |form|
|
||||
= form.label :default_git_depth, _('Git shallow clone'), class: 'label-bold'
|
||||
= form.number_field :default_git_depth, { class: 'form-control gl-form-input', min: 0, max: 1000 }
|
||||
%p.form-text.text-muted
|
||||
%p.form-text.gl-text-subtle
|
||||
= html_escape(_('The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to %{code_open}0%{code_close} or blank to fetch all branches and tags for each job')) % { code_open: '<code>'.html_safe, code_close: '</code>'.html_safe }
|
||||
= link_to sprite_icon('question-o'), help_page_path('ci/pipelines/settings.md', anchor: 'limit-the-number-of-changes-fetched-during-clone'), target: '_blank', rel: 'noopener noreferrer'
|
||||
|
||||
|
|
@ -73,7 +73,7 @@
|
|||
.form-group
|
||||
= f.label :build_timeout_human_readable, _('Timeout'), class: 'label-bold'
|
||||
= f.text_field :build_timeout_human_readable, class: 'form-control gl-form-input'
|
||||
%p.form-text.text-muted
|
||||
%p.form-text.gl-text-subtle
|
||||
= html_escape(_('Jobs fail if they run longer than the timeout time. Input value is in seconds by default. Human readable input is also accepted, for example %{code_open}1 hour%{code_close}.')) % { code_open: '<code>'.html_safe, code_close: '</code>'.html_safe }
|
||||
= link_to sprite_icon('question-o'), help_page_path('ci/pipelines/settings.md', anchor: 'set-a-limit-for-how-long-jobs-can-run'), target: '_blank', rel: 'noopener noreferrer'
|
||||
|
||||
|
|
@ -81,7 +81,7 @@
|
|||
.form-group
|
||||
= f.label :max_artifacts_size, _('Maximum artifacts size'), class: 'label-bold'
|
||||
= f.number_field :max_artifacts_size, class: 'form-control gl-form-input'
|
||||
%p.form-text.text-muted
|
||||
%p.form-text.gl-text-subtle
|
||||
= _("The maximum file size in megabytes for individual job artifacts.")
|
||||
= link_to sprite_icon('question-o'), help_page_path('administration/settings/continuous_integration.md', anchor: 'maximum-artifacts-size'), target: '_blank', rel: 'noopener noreferrer'
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
= s_('ProjectSettings|The commit message used when merging, if the merge method creates a merge commit.')
|
||||
.mb-2
|
||||
= form.text_area :merge_commit_template_or_default, class: 'form-control gl-form-input', rows: 8, maxlength: Project::MAX_COMMIT_TEMPLATE_LENGTH, placeholder: s_('ProjectSettings|The default template will be applied on save.')
|
||||
%p.form-text.text-muted
|
||||
%p.form-text.gl-text-subtle
|
||||
= s_('ProjectSettings|Leave empty to use default template.')
|
||||
= sprintf(s_('ProjectSettings|Maximum %{maxLength} characters.'), { maxLength: Project::MAX_COMMIT_TEMPLATE_LENGTH })
|
||||
- link = link_to('', help_page_path('user/project/merge_requests/commit_templates.md'), target: '_blank', rel: 'noopener noreferrer')
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
= s_('ProjectSettings|The commit message used when applying merge request suggestions.')
|
||||
.mb-2
|
||||
= form.text_area :suggestion_commit_message, class: 'form-control gl-form-input', rows: 4, placeholder: Gitlab::Suggestions::CommitMessage::DEFAULT_SUGGESTION_COMMIT_MESSAGE
|
||||
%p.form-text.text-muted
|
||||
%p.form-text.gl-text-subtle
|
||||
= s_('ProjectSettings|Leave empty to use default template.')
|
||||
= sprintf(s_('ProjectSettings|Maximum %{maxLength} characters.'), { maxLength: Project::MAX_SUGGESTIONS_TEMPLATE_LENGTH })
|
||||
- link = link_to('', help_page_path('user/project/merge_requests/reviews/suggestions.md', anchor: 'configure-the-commit-message-for-applied-suggestions'), target: '_blank', rel: 'noopener noreferrer')
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
= s_('ProjectSettings|The commit message used when squashing commits.')
|
||||
.mb-2
|
||||
= form.text_area :squash_commit_template_or_default, class: 'form-control gl-form-input', rows: 8, maxlength: Project::MAX_COMMIT_TEMPLATE_LENGTH, placeholder: s_('ProjectSettings|The default template will be applied on save.')
|
||||
%p.form-text.text-muted
|
||||
%p.form-text.gl-text-subtle
|
||||
= s_('ProjectSettings|Leave empty to use default template.')
|
||||
= sprintf(s_('ProjectSettings|Maximum %{maxLength} characters.'), { maxLength: Project::MAX_COMMIT_TEMPLATE_LENGTH })
|
||||
- link = link_to('', help_page_path('user/project/merge_requests/commit_templates.md'), target: '_blank', rel: 'noopener noreferrer')
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
= f.text_field :name, placeholder: 'prod*', class: 'form-control !gl-w-full gl-form-input-lg'
|
||||
- else
|
||||
= render partial: "protected_branches/shared/dropdown", locals: { f: f, toggle_classes: '!gl-w-full gl-form-input-lg' }
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
- wildcards_url = help_page_url('user/project/repository/branches/protected.md', anchor: 'protect-multiple-branches-with-wildcard-rules')
|
||||
- wildcards_link_tag_pair = tag_pair(link_to('', wildcards_url, target: '_blank', rel: 'noopener noreferrer'), :wildcards_link_start, :wildcards_link_end)
|
||||
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
- matching_branches = protected_branch.matching(repository.branch_names)
|
||||
= link_to pluralize(matching_branches.count, "matching branch"), namespace_project_protected_branch_path(@project.namespace, @project, protected_branch)
|
||||
- elsif !protected_branch.commit
|
||||
%span.text-muted= s_('ProtectedBranch|Branch does not exist.')
|
||||
%span.gl-text-subtle= s_('ProtectedBranch|Branch does not exist.')
|
||||
|
||||
= yield
|
||||
|
||||
|
|
|
|||
|
|
@ -5,5 +5,5 @@
|
|||
= form.label :disabled_repository_size_limit, class: 'label-bold' do
|
||||
= _('Repository size limit (MiB)')
|
||||
= form.number_field :disabled_repository_size_limit, value: '', class: 'form-control', disabled: true
|
||||
%span.form-text.text-muted
|
||||
%span.form-text.gl-text-subtle
|
||||
= render 'shared/registration_features_discovery_message'
|
||||
|
|
|
|||
|
|
@ -25,6 +25,6 @@
|
|||
|
||||
= form.gitlab_ui_radio_component model_method, level,
|
||||
"#{visibility_level_icon(level)} #{visibility_level_label(level)} #{disabled_visibility_level_icon_with_popover}".html_safe,
|
||||
help_text: '<span class="option-description text-muted">%{visibility_level_description}</span><span class="option-disabled-reason">%{option_disabled_reason}</span>'.html_safe % { visibility_level_description: visibility_level_description(level, form_model), option_disabled_reason: 'Not allowed by administrators' },
|
||||
help_text: '<span class="option-description gl-text-subtle">%{visibility_level_description}</span><span class="option-disabled-reason">%{option_disabled_reason}</span>'.html_safe % { visibility_level_description: visibility_level_description(level, form_model), option_disabled_reason: 'Not allowed by administrators' },
|
||||
radio_options: { checked: (selected_level == level), disabled: disabled_visibility_level?(form_model, level), data: { track_label: "blank_project", track_action: "activate_form_input", track_property: "#{model_method}_#{level}", track_value: "" } },
|
||||
label_options: { class: 'js-visibility-level-radio' }
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
.form-group
|
||||
= f.label :name, s_('AccessTokens|Token name'), class: 'label-bold'
|
||||
= f.text_field :name, class: 'form-control gl-form-input gl-form-input-xl', required: true, data: { testid: 'access-token-name-field' }, :'aria-describedby' => 'access_token_help_text'
|
||||
%span.form-text.text-muted#access_token_help_text
|
||||
%span.form-text.gl-text-subtle#access_token_help_text
|
||||
- if resource
|
||||
- resource_type = resource.is_a?(Group) ? "group" : "project"
|
||||
= s_("AccessTokens|For example, the application using the token or the purpose of the token. Do not give sensitive information for the name of the token, as it will be visible to all %{resource_type} members.") % { resource_type: resource_type }
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
.form-group
|
||||
= f.label :key, class: "label-bold"
|
||||
= f.text_area :key, class: 'form-control gl-form-input gl-form-input-xl !gl-h-auto', rows: 5, required: true, data: { testid: 'deploy-key-field' }
|
||||
.form-text.text-muted
|
||||
.form-text.gl-text-subtle
|
||||
= _('Paste a public key here.')
|
||||
= link_to _('How do I generate it?'), help_page_path("user/ssh.md")
|
||||
|
||||
|
|
@ -22,7 +22,7 @@
|
|||
= f.label :expires_at, _('Expiration date (optional)'), class: 'label-bold'
|
||||
.gl-form-input-xl
|
||||
= f.gitlab_ui_datepicker :expires_at, data: { testid: 'deploy-key-expires-at-field' }, value: f.object.expires_at
|
||||
.form-text.text-muted= ssh_key_expires_field_description
|
||||
.form-text.gl-text-subtle= ssh_key_expires_field_description
|
||||
|
||||
.form-group.gl-mb-0
|
||||
= f.submit _("Add key"), data: { testid: "add-deploy-key-button"}, pajamas_button: true
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue