Add latest changes from gitlab-org/gitlab@master

This commit is contained in:
GitLab Bot 2020-07-29 12:09:45 +00:00
parent b4dc6516ae
commit 6f9f4f0580
123 changed files with 1459 additions and 537 deletions

View File

@ -61,6 +61,37 @@
/doc/user/project/static_site_editor/index.md @marcia
/doc/user/project/web_ide/index.md @marcia
/doc/user/project/wiki/index.md @marcia
/doc/gitlab-basics/README.md @marcia
/doc/gitlab-basics/add-file.md @marcia
/doc/gitlab-basics/command-line-commands.md @marcia
/doc/gitlab-basics/create-branch.md @marcia
/doc/gitlab-basics/create-project.md @marcia
/doc/gitlab-basics/create-your-ssh-keys.md @marcia
/doc/gitlab-basics/feature_branch_workflow.md @marcia
/doc/gitlab-basics/fork-project.md @marcia
/doc/gitlab-basics/start-using-git.md @marcia
/doc/integration/sourcegraph.md @marcia
/doc/intro/README.md @marcia
/doc/push_rules/push_rules.md @marcia
/doc/ssh/README.md @marcia
/doc/topics/git/feature_branch_development.md @marcia
/doc/topics/git/how_to_install_git/index.md @marcia
/doc/topics/git/index.md @marcia
/doc/topics/git/lfs/index.md @marcia
/doc/topics/git/lfs/migrate_from_git_annex_to_git_lfs.md @marcia
/doc/topics/git/numerous_undo_possibilities_in_git/index.md @marcia
/doc/topics/git/partial_clone.md @marcia
/doc/topics/git/troubleshooting_git.md @marcia
/doc/topics/git/useful_git_commands.md @marcia
/doc/topics/gitlab_flow.md @marcia
/doc/user/index.md @marcia
/doc/user/snippets.md @marcia
/doc/administration/issue_closing_pattern.md @marcia
/doc/user/asciidoc.md @marcia
/doc/user/markdown.md @marcia
/doc/user/search/advanced_global_search.md @marcia
/doc/user/search/advanced_search_syntax.md @marcia
/doc/user/search/index.md @marcia
[Frontend]
*.scss @annabeldunstone @gitlab-org/maintainers/frontend

View File

@ -1351,11 +1351,6 @@ Rails/SaveBang:
- 'ee/spec/models/visible_approvable_spec.rb'
- 'ee/spec/models/vulnerabilities/feedback_spec.rb'
- 'ee/spec/models/vulnerabilities/issue_link_spec.rb'
- 'ee/spec/policies/group_policy_spec.rb'
- 'ee/spec/policies/note_policy_spec.rb'
- 'ee/spec/policies/project_policy_spec.rb'
- 'ee/spec/policies/protected_branch_policy_spec.rb'
- 'ee/spec/policies/vulnerabilities/feedback_policy_spec.rb'
- 'ee/spec/presenters/audit_event_presenter_spec.rb'
- 'ee/spec/presenters/epic_presenter_spec.rb'
- 'ee/spec/requests/api/boards_spec.rb'
@ -1778,13 +1773,6 @@ Rails/SaveBang:
- 'spec/models/user_status_spec.rb'
- 'spec/models/wiki_page/meta_spec.rb'
- 'spec/models/wiki_page_spec.rb'
- 'spec/policies/ci/build_policy_spec.rb'
- 'spec/policies/ci/pipeline_policy_spec.rb'
- 'spec/policies/ci/pipeline_schedule_policy_spec.rb'
- 'spec/policies/group_policy_spec.rb'
- 'spec/policies/issue_policy_spec.rb'
- 'spec/policies/merge_request_policy_spec.rb'
- 'spec/policies/project_policy_spec.rb'
- 'spec/presenters/ci/build_runner_presenter_spec.rb'
- 'spec/presenters/ci/trigger_presenter_spec.rb'
- 'spec/presenters/packages/conan/package_presenter_spec.rb'

View File

@ -1 +1 @@
8ea5e38ead0ac4284aac4a45a94b3acf7e72cd87
f3778a1784e50c9640086fb3ef9cbf7ba4d80513

View File

@ -65,7 +65,7 @@ export default {
</template>
<template v-else>
<graph-bar :count="behindCount" :max-commits="maxCommits" position="left" />
<div class="graph-separator pull-left mt-1"></div>
<div class="graph-separator float-left mt-1"></div>
<graph-bar :count="aheadCount" :max-commits="maxCommits" position="right" />
</template>
</div>

View File

@ -56,7 +56,7 @@ export default {
</script>
<template>
<div :class="{ full: isFullWidth }" class="position-relative pull-left pt-1 graph-side h-100">
<div :class="{ full: isFullWidth }" class="position-relative float-left pt-1 graph-side h-100">
<div
:style="style"
:class="[roundedClass, positionSideClass]"

View File

@ -68,7 +68,7 @@ export default {
</div>
<i
v-if="findVersionId(version.node.id) === currentVersionId"
class="fa fa-check pull-right"
class="fa fa-check float-right gl-mr-2"
></i>
</router-link>
</gl-new-dropdown-item>

View File

@ -68,7 +68,7 @@ export default {
</div>
<i
v-if="findVersionId(version.node.id) === currentVersionId"
class="fa fa-check pull-right"
class="fa fa-check float-right gl-mr-2"
></i>
</router-link>
</gl-dropdown-item>

View File

@ -26,7 +26,7 @@ export default {
<div class="alert alert-warning">
<h4>
{{ __('Too many changes to show.') }}
<div class="pull-right">
<div class="float-right">
<a :href="plainDiffPath" class="btn btn-sm"> {{ __('Plain diff') }} </a>
<a :href="emailPatchPath" class="btn btn-sm"> {{ __('Email patch') }} </a>
</div>

View File

@ -743,7 +743,7 @@ export default class FilteredSearchManager {
let tokenPath = '';
if (condition) {
tokenPath = condition.url;
tokenPath = condition.replacementUrl || condition.url;
} else {
let tokenValue = token.value;

View File

@ -10,13 +10,14 @@ import {
GlButton,
GlSearchBoxByType,
GlIcon,
GlPagination,
} from '@gitlab/ui';
import { debounce } from 'lodash';
import TimeAgoTooltip from '~/vue_shared/components/time_ago_tooltip.vue';
import { s__ } from '~/locale';
import { mergeUrlParams, joinPaths, visitUrl } from '~/lib/utils/url_utility';
import getIncidents from '../graphql/queries/get_incidents.query.graphql';
import { I18N, INCIDENT_SEARCH_DELAY } from '../constants';
import { I18N, DEFAULT_PAGE_SIZE, INCIDENT_SEARCH_DELAY } from '../constants';
const tdClass =
'table-col gl-display-flex d-md-table-cell gl-align-items-center gl-white-space-nowrap';
@ -24,6 +25,14 @@ const thClass = 'gl-hover-bg-blue-50';
const bodyTrClass =
'gl-border-1 gl-border-t-solid gl-border-gray-100 gl-hover-cursor-pointer gl-hover-bg-blue-50 gl-hover-border-b-solid gl-hover-border-blue-200';
const initialPaginationState = {
currentPage: 1,
prevPageCursor: '',
nextPageCursor: '',
firstPageSize: DEFAULT_PAGE_SIZE,
lastPageSize: null,
};
export default {
i18n: I18N,
fields: [
@ -57,6 +66,7 @@ export default {
TimeAgoTooltip,
GlSearchBoxByType,
GlIcon,
GlPagination,
},
directives: {
GlTooltip: GlTooltipDirective,
@ -70,9 +80,18 @@ export default {
searchTerm: this.searchTerm,
projectPath: this.projectPath,
labelNames: ['incident'],
firstPageSize: this.pagination.firstPageSize,
lastPageSize: this.pagination.lastPageSize,
prevPageCursor: this.pagination.prevPageCursor,
nextPageCursor: this.pagination.nextPageCursor,
};
},
update({ project: { issues: { nodes = [], pageInfo = {} } = {} } = {} }) {
return {
list: nodes,
pageInfo,
};
},
update: ({ project: { issues: { nodes = [] } = {} } = {} }) => nodes,
error() {
this.errored = true;
},
@ -84,6 +103,8 @@ export default {
isErrorAlertDismissed: false,
redirecting: false,
searchTerm: '',
pagination: initialPaginationState,
incidents: {},
};
},
computed: {
@ -94,7 +115,19 @@ export default {
return this.$apollo.queries.incidents.loading;
},
hasIncidents() {
return this.incidents?.length;
return this.incidents?.list?.length;
},
showPaginationControls() {
return Boolean(
this.incidents?.pageInfo?.hasNextPage || this.incidents?.pageInfo?.hasPreviousPage,
);
},
prevPage() {
return Math.max(this.pagination.currentPage - 1, 0);
},
nextPage() {
const nextPage = this.pagination.currentPage + 1;
return this.incidents?.list?.length < DEFAULT_PAGE_SIZE ? null : nextPage;
},
tbodyTrClass() {
return {
@ -119,6 +152,28 @@ export default {
navigateToIncidentDetails({ iid }) {
return visitUrl(joinPaths(this.issuePath, iid));
},
handlePageChange(page) {
const { startCursor, endCursor } = this.incidents.pageInfo;
if (page > this.pagination.currentPage) {
this.pagination = {
...initialPaginationState,
nextPageCursor: endCursor,
currentPage: page,
};
} else {
this.pagination = {
lastPageSize: DEFAULT_PAGE_SIZE,
firstPageSize: null,
prevPageCursor: startCursor,
nextPageCursor: '',
currentPage: page,
};
}
},
resetPagination() {
this.pagination = initialPaginationState;
},
},
};
</script>
@ -155,7 +210,7 @@ export default {
{{ s__('IncidentManagement|Incidents') }}
</h4>
<gl-table
:items="incidents"
:items="incidents.list || []"
:fields="$options.fields"
:show-empty="true"
:busy="loading"
@ -219,5 +274,15 @@ export default {
{{ $options.i18n.noIncidents }}
</template>
</gl-table>
<gl-pagination
v-if="showPaginationControls"
:value="pagination.currentPage"
:prev-page="prevPage"
:next-page="nextPage"
align="center"
class="gl-pagination gl-mt-3"
@input="handlePageChange"
/>
</div>
</template>

View File

@ -9,3 +9,4 @@ export const I18N = {
};
export const INCIDENT_SEARCH_DELAY = 300;
export const DEFAULT_PAGE_SIZE = 10;

View File

@ -1,11 +1,23 @@
query getIncidents(
$searchTerm: String
$projectPath: ID!
$labelNames: [String]
$state: IssuableState
$firstPageSize: Int
$lastPageSize: Int
$prevPageCursor: String = ""
$nextPageCursor: String = ""
$searchTerm: String
) {
project(fullPath: $projectPath) {
issues(search: $searchTerm, state: $state, labelName: $labelNames) {
issues(
search: $searchTerm
state: $state
labelName: $labelNames
first: $firstPageSize
last: $lastPageSize
after: $nextPageCursor
before: $prevPageCursor
) {
nodes {
iid
title
@ -26,6 +38,12 @@ query getIncidents(
}
}
}
pageInfo {
hasNextPage
endCursor
hasPreviousPage
startCursor
}
}
}
}

View File

@ -40,7 +40,7 @@ export default {
<ul class="content-list">
<li v-for="(item, index) in information" :key="index">
<span class="text-secondary">{{ item.label }}</span>
<div class="pull-right w-75 gl-text-right">
<div class="float-right w-75 gl-text-right">
<gl-link
v-if="item.type === $options.informationType.LINK"
:href="item.value"

View File

@ -34,6 +34,6 @@ export default {
<span class="dropdown-toggle-text flex-fill">
{{ dropdownButtonText }}
</span>
<gl-icon name="chevron-down" class="pull-right" />
<gl-icon name="chevron-down" class="float-right" />
</gl-button>
</template>

View File

@ -105,13 +105,13 @@ export default {
:disabled="disableCreate"
category="primary"
variant="success"
class="pull-left d-flex align-items-center"
class="float-left d-flex align-items-center"
@click="handleCreateClick"
>
<gl-loading-icon v-show="labelCreateInProgress" :inline="true" class="mr-1" />
{{ __('Create') }}
</gl-button>
<gl-button class="pull-right js-btn-cancel-create" @click="toggleDropdownContentsCreateView">
<gl-button class="float-right js-btn-cancel-create" @click="toggleDropdownContentsCreateView">
{{ __('Cancel') }}
</gl-button>
</div>

View File

@ -29,7 +29,7 @@ export default {
<gl-loading-icon v-show="labelsSelectInProgress" inline />
<gl-button
variant="link"
class="pull-right js-sidebar-dropdown-toggle"
class="float-right js-sidebar-dropdown-toggle"
data-qa-selector="labels_edit_button"
@click="toggleDropdownContents"
>{{ __('Edit') }}</gl-button

View File

@ -51,24 +51,6 @@
text-align: center;
}
.fa.fa-pull-left {
margin-right: 0.3em;
}
.fa.fa-pull-right {
margin-left: 0.3em;
}
.fa-pull-right,
.pull-right {
float: right;
}
.fa-pull-left,
.pull-left {
float: left;
}
.fa-spin {
-webkit-animation: fa-spin 2s infinite linear;
animation: fa-spin 2s infinite linear;

View File

@ -31,6 +31,16 @@ module Mutations
required: false,
description: copy_field_description(Types::IssueType, :discussion_locked)
argument :add_label_ids,
[GraphQL::ID_TYPE],
required: false,
description: 'The IDs of labels to be added to the issue.'
argument :remove_label_ids,
[GraphQL::ID_TYPE],
required: false,
description: 'The IDs of labels to be removed from the issue.'
def resolve(project_path:, iid:, **args)
issue = authorized_find!(project_path: project_path, iid: iid)
project = issue.project

View File

@ -16,7 +16,14 @@ module Resolvers
response = jira_projects(name: name)
if response.success?
response.payload[:projects]
projects_array = response.payload[:projects]
GraphQL::Pagination::ArrayConnection.new(
projects_array,
# override default max_page_size to whatever the size of the response is,
# see https://gitlab.com/gitlab-org/gitlab/-/issues/231394
args.merge({ max_page_size: projects_array.size })
)
else
raise Gitlab::Graphql::Errors::BaseError, response.message
end

View File

@ -13,8 +13,6 @@ module Types
field :projects,
Types::Projects::Services::JiraProjectType.connection_type,
null: true,
connection: false,
extensions: [Gitlab::Graphql::Extensions::ExternallyPaginatedArrayExtension],
description: 'List of all Jira projects fetched through Jira REST API',
resolver: Resolvers::Projects::JiraProjectsResolver
end

View File

@ -359,7 +359,7 @@ module BlobHelper
def show_suggest_pipeline_creation_celebration?
experiment_enabled?(:suggest_pipeline) &&
@blob.path == Gitlab::FileDetector::PATTERNS[:gitlab_ci] &&
@blob.auxiliary_viewer.valid?(project: @project, sha: @commit.sha, user: current_user) &&
@blob.auxiliary_viewer&.valid?(project: @project, sha: @commit.sha, user: current_user) &&
@project.uses_default_ci_config? &&
cookies[suggest_pipeline_commit_cookie_name].present?
end

View File

@ -118,3 +118,5 @@ module Ci
end
end
end
Ci::BuildRunnerPresenter.prepend_if_ee('EE::Ci::BuildRunnerPresenter')

View File

@ -6,7 +6,7 @@ module Jira
class ListService < Base
extend ::Gitlab::Utils::Override
def initialize(jira_service, params: {})
def initialize(jira_service, params = {})
super(jira_service, params)
@query = params[:query]
@ -33,9 +33,9 @@ module Jira
end
def match_query?(jira_project)
query = query.to_s.downcase
downcase_query = query.to_s.downcase
jira_project&.key&.downcase&.include?(query) || jira_project&.name&.downcase&.include?(query)
jira_project&.key&.downcase&.include?(downcase_query) || jira_project&.name&.downcase&.include?(downcase_query)
end
def empty_payload

View File

@ -24,7 +24,7 @@
.form-group
= text_field_tag 'confirm_path_input', '', class: 'form-control js-confirm-danger-input qa-confirm-input'
.form-actions.clearfix
.pull-right
.float-right
%button.btn.btn-default{ type: "button", "data-dismiss": "modal" }
= _('Cancel')
= submit_tag _('Reduce project visibility'), class: "btn btn-danger js-confirm-danger-submit qa-confirm-button", disabled: true

View File

@ -8,13 +8,13 @@
= sprite_icon('fork', size: 12)
= ref
- if current_action?(:edit) || current_action?(:update)
%span.pull-left.gl-mr-3
%span.float-left.gl-mr-3
= text_field_tag 'file_path', (params[:file_path] || @path),
class: 'form-control new-file-path js-file-path-name-input'
= render 'template_selectors'
- if current_action?(:new) || current_action?(:create)
%span.pull-left.gl-mr-3
%span.float-left.gl-mr-3
\/
= text_field_tag 'file_name', params[:file_name], placeholder: "File name",
required: true, class: 'form-control new-file-name js-file-path-name-input', value: params[:file_name] || (should_suggest_gitlab_ci_yml? ? '.gitlab-ci.yml' : '')

View File

@ -1,5 +1,5 @@
- title = capture do
= _('This commit was signed with a verified signature, but the committer email is <strong>not verified</strong> to belong to the same user.').html_safe
= html_escape(_('This commit was signed with a verified signature, but the committer email is %{strong_open}not verified%{strong_close} to belong to the same user.')) % { strong_open: '<strong>'.html_safe, strong_close: '</strong>'.html_safe }
- locals = { signature: signature, title: title, label: _('Unverified'), css_class: ['invalid'], icon: 'status_notfound_borderless', show_user: true }

View File

@ -1,5 +1,5 @@
- title = capture do
= _('This commit was signed with an <strong>unverified</strong> signature.').html_safe
= html_escape(_('This commit was signed with an %{strong_open}unverified%{strong_close} signature.')) % { strong_open: '<strong>'.html_safe, strong_close: '</strong>'.html_safe }
- locals = { signature: signature, title: title, label: _('Unverified'), css_class: 'invalid', icon: 'status_notfound_borderless' }

View File

@ -1,5 +1,5 @@
- title = capture do
= _('This commit was signed with a <strong>verified</strong> signature and the committer email is verified to belong to the same user.').html_safe
= html_escape(_('This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user.')) % { strong_open: '<strong>'.html_safe, strong_close: '</strong>'.html_safe }
- locals = { signature: signature, title: title, label: _('Verified'), css_class: 'valid', icon: 'status_success_borderless', show_user: true }

View File

@ -8,9 +8,9 @@
%code.ref-name master
- example_sha = capture do
%code.ref-name 4eedf23
= (_("Choose a branch/tag (e.g. %{master}) or enter a commit (e.g. %{sha}) to see what's changed or to create a merge request.") % { master: example_master, sha: example_sha }).html_safe
= html_escape(_("Choose a branch/tag (e.g. %{master}) or enter a commit (e.g. %{sha}) to see what's changed or to create a merge request.")) % { master: example_master.html_safe, sha: example_sha.html_safe }
%br
= (_("Changes are shown as if the <b>source</b> revision was being merged into the <b>target</b> revision.")).html_safe
= html_escape(_("Changes are shown as if the %{b_open}source%{b_close} revision was being merged into the %{b_open}target%{b_close} revision.")) % { b_open: '<b>'.html_safe, b_close: '</b>'.html_safe }
.prepend-top-20
= render "form"

View File

@ -9,4 +9,4 @@
= link_to _("Plain diff"), merge_request_path(@merge_request, format: :diff), class: "btn btn-sm"
= link_to _("Email patch"), merge_request_path(@merge_request, format: :patch), class: "btn btn-sm"
%p
= _("To preserve performance only <strong>%{display_size} of %{real_size}</strong> files are displayed.").html_safe % { display_size: diff_files.size, real_size: diff_files.real_size }
= html_escape(_("To preserve performance only %{strong_open}%{display_size} of %{real_size}%{strong_close} files are displayed.")) % { display_size: diff_files.size, real_size: diff_files.real_size, strong_open: '<strong>'.html_safe, strong_close: '</strong>'.html_safe }

View File

@ -65,7 +65,7 @@
%h4.state-title
= _("You don't have any deployments right now.")
%p.blank-state-text
= _("Define environments in the deploy stage(s) in <code>.gitlab-ci.yml</code> to track deployments here.").html_safe
= html_escape(_("Define environments in the deploy stage(s) in %{code_open}.gitlab-ci.yml%{code_close} to track deployments here.")) % { code_open: '<code>'.html_safe, code_close: '</code>'.html_safe }
.text-center
= link_to _("Read more"), help_page_path("ci/environments"), class: "btn btn-success"
- else

View File

@ -5,7 +5,9 @@
%h4.gl-mt-0
= _("Fork project")
%p
= _("A fork is a copy of a project.<br />Forking a repository allows you to make changes without affecting the original project.").html_safe
= _("A fork is a copy of a project.")
%br
= _('Forking a repository allows you to make changes without affecting the original project.')
.col-lg-9
- if @own_namespace.present?
.fork-thumbnail-container.js-fork-content

View File

@ -1,10 +1,10 @@
.account-well.gl-mt-3.gl-mb-3
%ul
%li
= _('The repository must be accessible over <code>http://</code>,
<code>https://</code>, <code>ssh://</code> or <code>git://</code>.').html_safe
%li= _('When using the <code>http://</code> or <code>https://</code> protocols, please provide the exact URL to the repository. HTTP redirects will not be followed.').html_safe
%li= _('Include the username in the URL if required: <code>https://username@gitlab.company.com/group/project.git</code>.').html_safe
= html_escape(_('The repository must be accessible over %{code_open}http://%{code_close},
%{code_open}https://%{code_close}, %{code_open}ssh://%{code_close} or %{code_open}git://%{code_close}.')) % { code_open: '<code>'.html_safe, code_close: '</code>'.html_safe }
%li= html_escape(_('When using the %{code_open}http://%{code_close} or %{code_open}https://%{code_close} protocols, please provide the exact URL to the repository. HTTP redirects will not be followed.')) % { code_open: '<code>'.html_safe, code_close: '</code>'.html_safe }
%li= html_escape(_('Include the username in the URL if required: %{code_open}https://username@gitlab.company.com/group/project.git%{code_close}.')) % { code_open: '<code>'.html_safe, code_close: '</code>'.html_safe }
%li
- minutes = Gitlab.config.gitlab_shell.git_timeout / 60
= _("The update action will time out after %{number_of_minutes} minutes. For big repositories, use a clone/push combination.") % { number_of_minutes: minutes }

View File

@ -70,7 +70,7 @@
.badge.mirror-error-badge{ data: { toggle: 'tooltip', html: 'true', qa_selector: 'mirror_error_badge' }, title: html_escape(mirror.last_error.try(:strip)) }= _('Error')
%td
- if mirror_settings_enabled
.btn-group.mirror-actions-group.pull-right{ role: 'group' }
.btn-group.mirror-actions-group.float-right{ role: 'group' }
- if mirror.ssh_key_auth?
= clipboard_button(text: mirror.ssh_public_key, class: 'btn btn-default', title: _('Copy SSH public key'), qa_selector: 'copy_public_key_button')
= render 'shared/remote_mirror_update_button', remote_mirror: mirror

View File

@ -50,7 +50,7 @@
.table-mobile-header{ role: "rowheader" }
.table-mobile-content
- if can_destroy_package
.pull-right
.float-right
= link_to project_package_path(@project, package), method: :delete, data: { confirm: _("Are you sure?") }, class: "btn btn-grouped btn-remove", title: _('Delete Package') do
= icon('trash')
= paginate @packages, theme: "gitlab"

View File

@ -35,7 +35,7 @@
%span.js-pipeline-url-failure.badge.badge-danger.has-tooltip{ title: @pipeline.failure_reason }
error
- if @pipeline.auto_devops_source?
- popover_title_text = _('This pipeline makes use of a predefined CI/CD configuration enabled by <b>Auto DevOps.</b>').html_safe
- popover_title_text = html_escape(_('This pipeline makes use of a predefined CI/CD configuration enabled by %{b_open}Auto DevOps.%{b_close}')) % { b_open: '<b>'.html_safe, b_close: '</b>'.html_safe }
- popover_content_url = help_page_path('topics/autodevops/index.md')
- popover_content_text = _('Learn more about Auto DevOps')
%a.js-pipeline-url-autodevops.badge.badge-info.autodevops-badge{ href: "#", tabindex: "0", role: "button", data: { container: "body",

View File

@ -1,6 +1,6 @@
.card.project-members-groups
.card-header
= _("Groups with access to <strong>%{project_name}</strong>").html_safe % { project_name: sanitize(@project.name, tags: []) }
= html_escape(_("Groups with access to %{strong_open}%{project_name}%{strong_close}")) % { project_name: sanitize(@project.name, tags: []), strong_open: '<strong>'.html_safe, strong_close: '</strong>'.html_safe }
%span.badge.badge-pill= group_links.size
%ul.content-list.members-list
- can_admin_member = can?(current_user, :admin_project_member, @project)

View File

@ -4,7 +4,7 @@
.card
.card-header.flex-project-members-panel
%span.flex-project-title
= _("Members of <strong>%{project_name}</strong>").html_safe % { project_name: sanitize(project.name, tags: []) }
= html_escape(_("Members of %{strong_open}%{project_name}%{strong_close}")) % { project_name: sanitize(project.name, tags: []), strong_open: '<strong>'.html_safe, strong_close: '</strong>'.html_safe }
%span.badge.badge-pill= members.total_count
= form_tag project_project_members_path(project), method: :get, class: 'form-inline user-search-form flex-users-form' do
.form-group

View File

@ -11,7 +11,7 @@
%p= share_project_description(@project)
- else
%p
= _("Members can be added by project <i>Maintainers</i> or <i>Owners</i>").html_safe
= html_escape(_("Members can be added by project %{i_open}Maintainers%{i_close} or %{i_open}Owners%{i_close}")) % { i_open: '<i>'.html_safe, i_close: '</i>'.html_safe }
.light
- if can_admin_project_members && project_can_be_shared?

View File

@ -6,11 +6,11 @@
%p= s_('SlackIntegration|This service send notifications about projects\' events to Slack channels. To set up this service:')
%ol
%li
= s_('SlackIntegration|%{webhooks_link_start}Add an incoming webhook%{webhooks_link_end} in your Slack team. The default channel can be overridden for each event.').html_safe % { webhooks_link_start: webhooks_link_start, webhooks_link_end: '</a>'.html_safe }
= html_escape(s_('SlackIntegration|%{webhooks_link_start}Add an incoming webhook%{webhooks_link_end} in your Slack team. The default channel can be overridden for each event.')) % { webhooks_link_start: webhooks_link_start.html_safe, webhooks_link_end: '</a>'.html_safe }
%li
= s_('SlackIntegration|Paste the <strong>Webhook URL</strong> into the field below.').html_safe
= html_escape(s_('SlackIntegration|Paste the %{strong_open}Webhook URL%{strong_close} into the field below.')) % { strong_open: '<strong>'.html_safe, strong_close: '</strong>'.html_safe }
%li
= s_('SlackIntegration|Select events below to enable notifications. The <strong>Slack channel names</strong> and <strong>Slack username</strong> fields are optional.').html_safe
= html_escape(s_('SlackIntegration|Select events below to enable notifications. The %{strong_open}Slack channel names%{strong_close} and %{strong_open}Slack username%{strong_close} fields are optional.')) % { strong_open: '<strong>'.html_safe, strong_close: '</strong>'.html_safe }
%p.mt-3.mb-0
= s_('SlackIntegration|<strong>Note:</strong> Usernames and private channels are not supported.').html_safe
= html_escape(s_('SlackIntegration|%{strong_open}Note:%{strong_close} Usernames and private channels are not supported.')) % { strong_open: '<strong>'.html_safe, strong_close: '</strong>'.html_safe }
= link_to _('Learn more'), help_page_path('user/project/integrations/slack')

View File

@ -89,6 +89,6 @@
%ul.list-unstyled.indent-list
%li
= s_("SlackService|2. Paste the <strong>Token</strong> into the field below").html_safe
= html_escape(s_("SlackService|2. Paste the %{strong_open}Token%{strong_close} into the field below")) % { strong_open: '<strong>'.html_safe, strong_close: '</strong>'.html_safe }
%li
= s_("SlackService|3. Select the <strong>Active</strong> checkbox, press <strong>Save changes</strong> and start using GitLab inside Slack!").html_safe
= html_escape(s_("SlackService|3. Select the %{strong_open}Active%{strong_close} checkbox, press %{strong_open}Save changes%{strong_close} and start using GitLab inside Slack!")) % { strong_open: '<strong>'.html_safe, strong_close: '</strong>'.html_safe }

View File

@ -7,7 +7,7 @@
%h5.gl-mt-0
= _("Git strategy for pipelines")
%p
= _("Choose between <code>clone</code> or <code>fetch</code> to get the recent application code").html_safe
= html_escape(_("Choose between %{code_open}clone%{code_close} or %{code_open}fetch%{code_close} to get the recent application code")) % { code_open: '<code>'.html_safe, code_close: '</code>'.html_safe }
= link_to icon('question-circle'), help_page_path('ci/pipelines/settings', anchor: 'git-strategy'), target: '_blank'
.form-check
= f.radio_button :build_allow_git_fetch, 'false', { class: 'form-check-input' }
@ -54,7 +54,7 @@
= f.label :ci_config_path, _('Custom CI configuration path'), class: 'label-bold'
= f.text_field :ci_config_path, class: 'form-control', placeholder: '.gitlab-ci.yml'
%p.form-text.text-muted
= _("The path to the CI configuration file. Defaults to <code>.gitlab-ci.yml</code>").html_safe
= html_escape(_("The path to the CI configuration file. Defaults to %{code_open}.gitlab-ci.yml%{code_close}")) % { code_open: '<code>'.html_safe, code_close: '</code>'.html_safe }
= link_to icon('question-circle'), help_page_path('ci/pipelines/settings', anchor: 'custom-ci-configuration-path'), target: '_blank'
%hr

View File

@ -9,7 +9,7 @@
.form-group.row.d-flex.gl-pl-3-deprecated-no-really-do-not-use-me.gl-pr-3-deprecated-no-really-do-not-use-me.branch-selector
.align-self-center
%span
= _('From <code>%{source_title}</code> into').html_safe % { source_title: source_title }
= html_escape(_('From %{code_open}%{source_title}%{code_close} into')) % { source_title: source_title, code_open: '<code>'.html_safe, code_close: '</code>'.html_safe }
- if issuable.new_record?
%code#js-target-branch-title= target_title

View File

@ -9,7 +9,7 @@
= button_to accept_term_path(@term, redirect_params), class: 'btn btn-success gl-ml-3', data: { qa_selector: 'accept_terms_button' } do
= _('Accept terms')
- else
.pull-right
.float-right
= link_to root_path, class: 'btn btn-success gl-ml-3' do
= _('Continue')
- if can?(current_user, :decline_terms, @term)

View File

@ -0,0 +1,5 @@
---
title: Allow user to update issue labels via GraphQL
merge_request: 37728
author:
type: added

View File

@ -0,0 +1,5 @@
---
title: Allow multiline Prometheus queries in metrics dashboards yaml
merge_request: 34508
author:
type: changed

View File

@ -0,0 +1,5 @@
---
title: Add pagination to the incident list
merge_request: 37993
author:
type: changed

View File

@ -0,0 +1,5 @@
---
title: Fix console errors due to monaco-yaml's outdated use of monaco.Promise
merge_request: 38135
author:
type: fixed

View File

@ -0,0 +1,5 @@
---
title: Set appropriate timeouts for PrometheusClient
merge_request: 37924
author:
type: other

View File

@ -0,0 +1,5 @@
---
title: Query Jira projects by key or name and return all Jira projects in one query
merge_request: 37799
author:
type: fixed

View File

@ -0,0 +1,5 @@
---
title: Refactor spec/policies and ee/spec/policies to fix SaveBang Cop
merge_request: 37956
author: Rajendra Kadam
type: fixed

View File

@ -0,0 +1,5 @@
---
title: Fix error when blob has no auxiliary viewer
merge_request: 38018
author:
type: fixed

View File

@ -8,10 +8,10 @@ const { languagesArr } = require('monaco-editor-webpack-plugin/out/languages');
const yamlLang = languagesArr.find(t => t.label === 'yaml');
yamlLang.entry = [yamlLang.entry, '../../monaco-yaml/esm/monaco.contribution'];
yamlLang.entry = [yamlLang.entry, '../../monaco-yaml/lib/esm/monaco.contribution'];
yamlLang.worker = {
id: 'vs/language/yaml/yamlWorker',
entry: '../../monaco-yaml/esm/yaml.worker.js',
entry: '../../monaco-yaml/lib/esm/yaml.worker.js',
};
module.exports = require('monaco-editor-webpack-plugin');

View File

@ -1,3 +1,10 @@
---
stage: Create
group: Source Code
info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers"
type: reference
---
# Issue closing pattern **(CORE ONLY)**
NOTE: **Note:**

View File

@ -115,7 +115,8 @@ to the default installation:
> - Supported tiers: [GitLab Starter, Premium, and Ultimate](https://about.gitlab.com/pricing/)
GitLab supports [zero-downtime updates](https://docs.gitlab.com/omnibus/update/#zero-downtime-updates).
Although you can perform zero-downtime updates with a single GitLab node, the recommendation is to separate GitLab into several application nodes.
Single GitLab nodes can be updated with only a [few minutes of downtime](https://docs.gitlab.com/omnibus/update/README.html#single-node-deployment).
To avoid this, we recommend to separate GitLab into several application nodes.
As long as at least one of each component is online and capable of handling the instance's usage load, your team's productivity will not be interrupted during the update.
### Automated database failover **(PREMIUM ONLY)**

View File

@ -2152,6 +2152,46 @@ type CreateSnippetPayload {
snippet: Snippet
}
"""
Autogenerated input type of DastOnDemandScanCreate
"""
input DastOnDemandScanCreateInput {
"""
A unique identifier for the client performing the mutation.
"""
clientMutationId: String
"""
ID of the site profile to be used for the scan.
"""
dastSiteProfileId: ID!
"""
The project the site profile belongs to.
"""
fullPath: ID!
}
"""
Autogenerated return type of DastOnDemandScanCreate
"""
type DastOnDemandScanCreatePayload {
"""
A unique identifier for the client performing the mutation.
"""
clientMutationId: String
"""
Errors encountered during execution of the mutation.
"""
errors: [String!]!
"""
URL of the pipeline that was created.
"""
pipelineUrl: String
}
enum DastScanTypeEnum {
"""
Passive DAST scan. This scan will not make active attacks against the target site.
@ -8275,6 +8315,7 @@ type Mutation {
createNote(input: CreateNoteInput!): CreateNotePayload
createRequirement(input: CreateRequirementInput!): CreateRequirementPayload
createSnippet(input: CreateSnippetInput!): CreateSnippetPayload
dastOnDemandScanCreate(input: DastOnDemandScanCreateInput!): DastOnDemandScanCreatePayload
dastScannerProfileCreate(input: DastScannerProfileCreateInput!): DastScannerProfileCreatePayload
dastSiteProfileCreate(input: DastSiteProfileCreateInput!): DastSiteProfileCreatePayload
deleteAnnotation(input: DeleteAnnotationInput!): DeleteAnnotationPayload
@ -14128,6 +14169,11 @@ type UpdateImageDiffNotePayload {
Autogenerated input type of UpdateIssue
"""
input UpdateIssueInput {
"""
The IDs of labels to be added to the issue.
"""
addLabelIds: [ID!]
"""
A unique identifier for the client performing the mutation.
"""
@ -14168,6 +14214,11 @@ input UpdateIssueInput {
"""
projectPath: ID!
"""
The IDs of labels to be removed from the issue.
"""
removeLabelIds: [ID!]
"""
Title of the issue
"""

View File

@ -5768,6 +5768,122 @@
"enumValues": null,
"possibleTypes": null
},
{
"kind": "INPUT_OBJECT",
"name": "DastOnDemandScanCreateInput",
"description": "Autogenerated input type of DastOnDemandScanCreate",
"fields": null,
"inputFields": [
{
"name": "fullPath",
"description": "The project the site profile belongs to.",
"type": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "SCALAR",
"name": "ID",
"ofType": null
}
},
"defaultValue": null
},
{
"name": "dastSiteProfileId",
"description": "ID of the site profile to be used for the scan.",
"type": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "SCALAR",
"name": "ID",
"ofType": null
}
},
"defaultValue": null
},
{
"name": "clientMutationId",
"description": "A unique identifier for the client performing the mutation.",
"type": {
"kind": "SCALAR",
"name": "String",
"ofType": null
},
"defaultValue": null
}
],
"interfaces": null,
"enumValues": null,
"possibleTypes": null
},
{
"kind": "OBJECT",
"name": "DastOnDemandScanCreatePayload",
"description": "Autogenerated return type of DastOnDemandScanCreate",
"fields": [
{
"name": "clientMutationId",
"description": "A unique identifier for the client performing the mutation.",
"args": [
],
"type": {
"kind": "SCALAR",
"name": "String",
"ofType": null
},
"isDeprecated": false,
"deprecationReason": null
},
{
"name": "errors",
"description": "Errors encountered during execution of the mutation.",
"args": [
],
"type": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "LIST",
"name": null,
"ofType": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "SCALAR",
"name": "String",
"ofType": null
}
}
}
},
"isDeprecated": false,
"deprecationReason": null
},
{
"name": "pipelineUrl",
"description": "URL of the pipeline that was created.",
"args": [
],
"type": {
"kind": "SCALAR",
"name": "String",
"ofType": null
},
"isDeprecated": false,
"deprecationReason": null
}
],
"inputFields": null,
"interfaces": [
],
"enumValues": null,
"possibleTypes": null
},
{
"kind": "ENUM",
"name": "DastScanTypeEnum",
@ -23712,6 +23828,33 @@
"isDeprecated": false,
"deprecationReason": null
},
{
"name": "dastOnDemandScanCreate",
"description": null,
"args": [
{
"name": "input",
"description": null,
"type": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "INPUT_OBJECT",
"name": "DastOnDemandScanCreateInput",
"ofType": null
}
},
"defaultValue": null
}
],
"type": {
"kind": "OBJECT",
"name": "DastOnDemandScanCreatePayload",
"ofType": null
},
"isDeprecated": false,
"deprecationReason": null
},
{
"name": "dastScannerProfileCreate",
"description": null,
@ -41855,6 +41998,42 @@
},
"defaultValue": null
},
{
"name": "addLabelIds",
"description": "The IDs of labels to be added to the issue.",
"type": {
"kind": "LIST",
"name": null,
"ofType": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "SCALAR",
"name": "ID",
"ofType": null
}
}
},
"defaultValue": null
},
{
"name": "removeLabelIds",
"description": "The IDs of labels to be removed from the issue.",
"type": {
"kind": "LIST",
"name": null,
"ofType": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "SCALAR",
"name": "ID",
"ofType": null
}
}
},
"defaultValue": null
},
{
"name": "healthStatus",
"description": "The desired health status",

View File

@ -382,6 +382,16 @@ Autogenerated return type of CreateSnippet
| `errors` | String! => Array | Errors encountered during execution of the mutation. |
| `snippet` | Snippet | The snippet after mutation |
## DastOnDemandScanCreatePayload
Autogenerated return type of DastOnDemandScanCreate
| Name | Type | Description |
| --- | ---- | ---------- |
| `clientMutationId` | String | A unique identifier for the client performing the mutation. |
| `errors` | String! => Array | Errors encountered during execution of the mutation. |
| `pipelineUrl` | String | URL of the pipeline that was created. |
## DastScannerProfileCreatePayload
Autogenerated return type of DastScannerProfileCreate
@ -1041,7 +1051,6 @@ Autogenerated return type of JiraImportUsers
| Name | Type | Description |
| --- | ---- | ---------- |
| `active` | Boolean | Indicates if the service is active |
| `projects` | JiraProjectConnection | List of all Jira projects fetched through Jira REST API |
| `type` | String | Class name of the service |
## JiraUser

View File

@ -87,8 +87,8 @@ curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab
| `failed_pipeline` | boolean | no | Enable/disable this notification |
| `fixed_pipeline` | boolean | no | Enable/disable this notification |
| `success_pipeline` | boolean | no | Enable/disable this notification |
| `moved_project` | boolean | no | Enable/disable this notification ([Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/37269) in 13.3)|
| `new_epic` | boolean | no | Enable/disable this notification ([Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/6626) in 11.3) **(ULTIMATE)** |
| `moved_project` | boolean | no | Enable/disable this notification ([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/30371) in GitLab 13.3) |
| `new_epic` | boolean | no | Enable/disable this notification ([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/5863) in GitLab 11.3) **(ULTIMATE)** |
Example response:
@ -158,8 +158,8 @@ curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab
| `failed_pipeline` | boolean | no | Enable/disable this notification |
| `fixed_pipeline` | boolean | no | Enable/disable this notification |
| `success_pipeline` | boolean | no | Enable/disable this notification |
| `moved_project` | boolean | no | Enable/disable this notification ([Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/37269) in 13.3)|
| `new_epic` | boolean | no | Enable/disable this notification ([Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/6626) in 11.3) **(ULTIMATE)** |
| `moved_project` | boolean | no | Enable/disable this notification ([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/30371) in GitLab 13.3) |
| `new_epic` | boolean | no | Enable/disable this notification ([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/5863) in GitLab 11.3) **(ULTIMATE)** |
Example responses:
@ -190,8 +190,8 @@ Example responses:
}
```
Users on GitLab [Ultimate or Gold](https://about.gitlab.com/pricing/) will also see
the `new_epic` parameter:
Users on GitLab [Ultimate or Gold](https://about.gitlab.com/pricing/) also see the `new_epic`
parameter:
```json
{

View File

@ -18,6 +18,16 @@ and link the same type of objects (as specified by the `data-reference-type`
attribute), then we only need one reference parser for that type of domain
object.
## Banzai pipeline
`Banzai` pipeline returns the `result` Hash after being filtered by the Pipeline.
The `result` Hash is passed to each filter for modification. This is where Filters store extracted information from the content.
It contains:
- An `:output` key with the DocumentFragment or String HTML markup based on the output of the last filter in the pipeline.
- A `:reference_filter_nodes` key with the list of DocumentFragment `nodes` that are ready for processing, updated by each filter in the pipeline.
## Reference filters
The first way that references are handled is by reference filters. These are
@ -69,6 +79,8 @@ a minimum implementation of `AbstractReferenceFilter` should define:
### Performance
#### Find object optimization
This default implementation is not very efficient, because we need to call
`#find_object` for each reference, which may require issuing a DB query every
time. For this reason, most reference filter implementations will instead use an
@ -96,6 +108,22 @@ This makes the number of queries linear in the number of projects. We only need
to implement `parent_records` method when we call `records_per_parent` in our
reference filter.
#### Filtering nodes optimization
Each `ReferenceFilter` would iterate over all `<a>` and `text()` nodes in a document.
Not all nodes are processed, document is filtered only for nodes that we want to process.
We are skipping:
- Link tags already processed by some previous filter (if they have a `gfm` class).
- Nodes with the ancestor node that we want to ignore (`ignore_ancestor_query`).
- Empty line.
- Link tags with the empty `href` attribute.
To avoid filtering such nodes for each `ReferenceFilter`, we do it only once and store the result in the result Hash of the pipeline as `result[:reference_filter_nodes]`.
Pipeline `result` is passed to each filter for modification, so every time when `ReferenceFilter` replaces text or link tag, filtered list (`reference_filter_nodes`) will be updated for the next filter to use.
## Reference parsers
In a number of cases, as a performance optimization, we render Markdown to HTML

View File

@ -133,6 +133,22 @@ Our reporting levels of aggregate or individual reporting varies by segment. For
| Aggregate | ✅ | 📅 | ✅ | ✅ | ✅ | 📅 | ✅ | ✅ |
| Individual | ✅ | 📅 | ✅ | 🔄 | ✅ | ✖️ | ✖️ | ✖️ |
## Event types by segment
The availability of event types and their tracking tools varies by segment. For example, on Self-Managed Users, we only have reporting using Database records via Usage Ping.
| Event Types | SaaS Instance | SaaS Group | SaaS Session | SaaS User | Self-Managed Instance | Self-Managed Group | Self-Managed Session | Self-Managed User |
|-------------------------------------|---------------|------------|--------------|-----------|-----------------------|--------------------|----------------------|-------------------|
| Pageview events (Snowplow JS) | ✅ | 📅 | ✅ | 🔄 | 🔄 | 📅 | 🔄 | 🔄 |
| Pageview events (Snowplow Ruby) | ✅ | 📅 | ✅ | 🔄 | 🔄 | 📅 | 🔄 | 🔄 |
| UI events (Snowplow JS) | ✅ | 📅 | ✅ | 🔄 | 🔄 | 📅 | 🔄 | 🔄 |
| CRUD and API events (Snowplow Ruby) | ✅ | 📅 | ✅ | 🔄 | 🔄 | 📅 | 🔄 | 🔄 |
| Database records (Usage Ping) | ✅ | 📅 | ✖️ | ✅ | ✅ | 📅 | ✖️ | ✅ |
| Database records (Database import) | ✅ | ✅ | ✖️ | ✅ | ✖️ | ✖️ | ✖️ | ✖️ |
| Instance logs (Log system) | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
| Instance settings (Usage Ping) | ✅ | 📅 | ✖️ | ✅ | ✅ | 📅 | ✖️ | ✅ |
| Instance integrations (Usage Ping) | ✅ | 📅 | ✖️ | ✅ | ✅ | 📅 | ✖️ | ✅ |
**Legend**
✅ Available, 🔄 In Progress, 📅 Planned, ✖️ Not Possible

View File

@ -1,4 +1,7 @@
---
stage: Create
group: Source Code
info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers"
comments: false
type: index
---

View File

@ -1,4 +1,7 @@
---
stage: Create
group: Source Code
info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers"
type: howto
---

View File

@ -1,4 +1,7 @@
---
stage: Create
group: Source Code
info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers"
type: howto, reference
---

View File

@ -1,4 +1,7 @@
---
stage: Create
group: Source Code
info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers"
type: howto
---

View File

@ -1,4 +1,7 @@
---
stage: Create
group: Source Code
info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers"
type: howto
---

View File

@ -1,6 +1,10 @@
---
stage: Create
group: Source Code
info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers"
type: howto
---
# Create and add your SSH key pair
It is best practice to use [Git over SSH instead of Git over HTTP](https://git-scm.com/book/en/v2/Git-on-the-Server-The-Protocols).

View File

@ -1,4 +1,7 @@
---
stage: Create
group: Source Code
info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers"
disqus_identifier: 'https://docs.gitlab.com/ee/workflow/workflow.html'
---

View File

@ -1,4 +1,7 @@
---
stage: Create
group: Source Code
info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers"
type: howto
---

View File

@ -1,4 +1,7 @@
---
stage: Create
group: Source Code
info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers"
type: howto, tutorial
description: "Introduction to using Git through the command line."
last_updated: 2020-06-30

View File

@ -1,4 +1,7 @@
---
stage: Create
group: Source Code
info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers"
type: reference, how-to
---

View File

@ -1,4 +1,7 @@
---
stage: Create
group: Source Code
info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers"
comments: false
---

View File

@ -1,4 +1,7 @@
---
stage: Create
group: Source Code
info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers"
type: reference, howto
---

View File

@ -1,4 +1,7 @@
---
stage: Create
group: Source Code
info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers"
type: howto, reference
---

View File

@ -1,4 +1,7 @@
---
stage: Create
group: Source Code
info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers"
type: how-tos
---

View File

@ -1,4 +1,7 @@
---
stage: Create
group: Source Code
info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers"
author: Sean Packham
author_gitlab: SeanPackham
level: beginner

View File

@ -1,4 +1,7 @@
---
stage: Create
group: Source Code
info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers"
type: index
---

View File

@ -1,4 +1,8 @@
---
stage: Create
group: Source Code
info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers"
type: reference, howto
disqus_identifier: 'https://docs.gitlab.com/ee/workflow/lfs/lfs/index.html'
---

View File

@ -1,3 +1,10 @@
---
stage: Create
group: Source Code
info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers"
type: reference, howto
---
# Migration guide from Git Annex to Git LFS
NOTE: **Note:**

View File

@ -1,4 +1,7 @@
---
stage: Create
group: Source Code
info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers"
author: Crt Mori
author_gitlab: Letme
level: intermediary

View File

@ -1,3 +1,10 @@
---
stage: Create
group: Source Code
info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers"
type: reference, howto
---
# Partial Clone
As Git repositories grow in size, they can become cumbersome to work with

View File

@ -1,4 +1,7 @@
---
stage: Create
group: Source Code
info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers"
type: howto
---

View File

@ -1,4 +1,7 @@
---
stage: Create
group: Source Code
info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers"
type: reference
---

View File

@ -1,4 +1,7 @@
---
stage: Create
group: Source Code
info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers"
disqus_identifier: 'https://docs.gitlab.com/ee/workflow/gitlab_flow.html'
---

View File

@ -50,7 +50,8 @@ However, for this to work there are the following requirements:
migrations](../development/post_deployment_migrations.md) (included in
zero downtime update steps below).
- You are using PostgreSQL. Starting from GitLab 12.1, MySQL is not supported.
- Multi-node GitLab instance. Single-node instances may experience brief interruptions as services restart.
- Multi-node GitLab instance. Single-node instances may experience brief interruptions
[as services restart (Puma in particular)](https://docs.gitlab.com/omnibus/update/README.html#single-node-deployment).
Most of the time you can safely upgrade from a patch release to the next minor
release if the patch release is not the latest. For example, upgrading from

View File

@ -1,3 +1,10 @@
---
stage: Create
group: Source Code
info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers"
type: reference, howto
---
# AsciiDoc
GitLab uses the [Asciidoctor](https://asciidoctor.org) gem to convert AsciiDoc content to HTML5.

View File

@ -1,7 +1,8 @@
---
stage: Plan
group: Project Management
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers
stage: Create
group: Source Code
info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers"
type: reference, howto
---
# Threads

View File

@ -1,4 +1,5 @@
---
type: reference, index
description: 'Read through the GitLab User documentation to learn how to use, configure, and customize GitLab and GitLab.com to your own needs.'
---

View File

@ -1,7 +1,8 @@
---
stage: Plan
group: Project Management
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers
stage: Create
group: Source Code
info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers"
type: reference, howto
---
# GitLab Markdown

View File

@ -1,3 +1,10 @@
---
stage: Create
group: Editor
info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers"
type: reference
---
# Advanced Global Search **(STARTER)**
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/109) in GitLab [Starter](https://about.gitlab.com/pricing/) 8.4.

View File

@ -1,3 +1,10 @@
---
stage: Create
group: Editor
info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers"
type: reference
---
# Advanced Syntax Search **(STARTER)**
> - Introduced in [GitLab Enterprise Starter](https://about.gitlab.com/pricing/) 9.2

View File

@ -1,3 +1,10 @@
---
stage: Create
group: Editor
info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers"
type: index, reference, howto
---
# Search through GitLab
## Issues and merge requests

View File

@ -1,3 +1,10 @@
---
stage: Create
group: Editor
info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers"
type: reference
---
# Snippets
With GitLab Snippets you can store and share bits of code and text with other users.

View File

@ -33,3 +33,5 @@ module API
end
end
end
API::Entities::JobRequest::Response.prepend_if_ee('EE::API::Entities::JobRequest::Response')

View File

@ -93,19 +93,6 @@
- "<strong>Supprime</strong> la branche source"
- "<strong>elimina</strong> la rama origen"
- "Kaynak dalı <strong>siler</strong>"
"A fork is a copy of a project.<br />Forking a repository allows you to make changes without affecting the original project.":
plural_id:
translations:
- "Um fork é uma cópia de um projeto.<br />Fork de um repositório permite que você faça alterações sem afetar o projeto original."
- "フォークはプロジェクトのコピーです。<br />リポジトリをフォークすると、元のプロジェクトに影響を与えずに変更することができます。"
- "分叉是專案的複本。<br />分叉版本庫讓您在不影響原始專案的情況下,進行變更。"
- "Um fork é uma cópia de um projeto.<br />Bifurcação de um repositório permite que faças alterações sem afetar o projeto original."
- "Ответвление - это копия проекта.<br />Ответвление репозитория позволяет вносить изменения, не влияя на исходный проект."
- "派生是项目的副本。<br />仓库的派生允许您在不影响原始项目的情况下进行更改。"
- "Форк - це копія проєкту.<br />Форк репозиторію дозволяє вносити зміни без впливу на оригінальний проєкт."
- "Ein Fork ist eine Kopie eines Projekts.<br />Wenn du ein Repository forkst, kannst du, ohne Auswirkungen auf das ursprüngliche Projekt, Änderungen vornehmen."
- "포크는 프로젝트의 사본입니다.<br />저장소를 포크하면 원래 프로젝트에 영향을주지 않고 변경할 수 있습니다."
- "Un fork es una copia de un proyecto.<br />Realizar un fork de un repositorio le permite realizar cambios sin afectar al proyecto original."
"Badges|You are going to delete this badge. Deleted badges <strong>cannot</strong> be restored.":
plural_id:
translations:
@ -144,32 +131,6 @@
- "La branĉo <strong>%{branch_name}</strong> estis kreita. Por agordi aŭtomatan disponigadon, bonvolu elekti Yaml-ŝablonon por GitLab CI kaj enmeti viajn ŝanĝojn. %{link_to_autodeploy_doc}"
- "La branche <strong>%{branch_name}</strong> a été créée. Pour mettre en place le déploiement automatisé, sélectionnez un modèle de fichier YAML pour lintégration continue (CI) de GitLab, et validez les modifications. %{link_to_autodeploy_doc}"
- "La rama <strong>%{branch_name}</strong> fue creada. Para configurar el auto despliegue, escoge una plantilla Yaml para GitLab CI y envía tus cambios. %{link_to_autodeploy_doc}"
"Changes are shown as if the <b>source</b> revision was being merged into the <b>target</b> revision.":
plural_id:
translations:
- "Mudanças serão mostradas se revisão de <b>origem</b> tiver sofrido merge na revisão <b>alvo</b>."
- "<b>source</b>リビジョンが<b>target</b>リビジョン内に取り込まれているような変更として表示されます"
- "As alterações são mostradas como se a revisão de <b>origem</b> estivesse a ser mesclada na revisão de <b>destino</b>."
- "Показаны изменения как будто произошло слияние ревизии кода <b>источника</b> с <b>целевой</b> ревизией кода."
- "差异显示方式依<b>源</b>版本合并到<b>目标</b>版本的形式。"
- "Зміни відображаються так, ніби <b>редакція-джерело</b> була злита в <b>цільову редакцію</b>."
- "Änderungen werden angezeigt, als ob die <b>Quell</b>-Revision in die <b>Ziel</b>-Revision gemerged wurde."
- "변경 사항은 <b>source</b> 리비전이 <b>target</b> 리비전에 머지된 것처럼 표시됩니다."
- "Les modifications sont affichées comme si la révision <b>source</b> était fusionnée dans la révision<b>cible</b>."
- "Los cambios se muestran como si la revisión del <b>origen</b> se ha fusionado con la revisión del <b>objetivo</b>."
"Choose between <code>clone</code> or <code>fetch</code> to get the recent application code":
plural_id:
translations:
- "Escolha entre <code>clone</code> ou <code>fetch</code> para obter o código do aplicativo recente"
- "<code>clone</code> または <code>fetch</code> を選択して最新のアプリケーションコードを取得してください"
- "Escolhe entre <code>clone</code> ou <code>fetch</code> para obter o código da aplicação recente"
- "选择 <code>克隆</code> 或 <code>拉取</code> 以获取最近的应用程序代码"
- "Оберіть між <code>clone</code> та<code>fetch</code> щоб отримати найновіший код програми"
- "Wähle zwischen <code>clone</code> oder <code>fetch</code>, um den aktuellen Anwendungscode zu erhalten"
- "최근 응용 프로그램 코드를 얻으려면 <code>클론</code> 또는 <code>fetch</code>를 선택하십시오."
- "Choisissez entre <code>clone</code> ou <code>fetch</code> pour obtenir les dernières modifications du code de lapplication"
- "Elija entre <code>clone</code> o <code>fetch</code> para obtener el código de la aplicación más reciente"
- "Wybierz pomiędzy <code>klonem</code> lub <code>pobierz</code> aby uzyskać najnowszy kod aplikacji"
"ClusterIntegration| This will permanently delete the following resources: <ul> <li>All installed applications and related resources</li> <li>The <code>gitlab-managed-apps</code> namespace</li> <li>Any project namespaces</li> <li><code>clusterroles</code></li> <li><code>clusterrolebindings</code></li> </ul>":
plural_id:
translations:
@ -222,14 +183,6 @@
- "Contributions du <strong>%{calendar_date}</strong>"
- "Contribuciones para <strong>%{calendar_date}</strong>"
- "<strong>%{calendar_date}</strong> için katkılar"
"Define environments in the deploy stage(s) in <code>.gitlab-ci.yml</code> to track deployments here.":
plural_id:
translations:
- "デプロイステージの環境を <code>.gitlab-ci.yml</code> で定義して、デプロイを追跡します。"
- "Обозначьте окружения на этапе(ах) развёртывания в <code>.gitlab-ci.yml</code> для отслеживания развёртывания здесь."
- "在<code>.githab-ci.yml</code>的 deploy 阶段中定义 environment 来跟踪部署。"
- "Визначте середовища на стадії розгортання у <code>.gitlab-ci.yml</code> щоб відстежувати розгортання тут."
- "Defina entornos en las distintas etapas de despliegue en el fichero <code>.gitlab-ci.yml</code> para llevar un registro de las implementaciones desde aquí."
"Depends on <strong>%d closed</strong> merge request.":
plural_id: "Depends on <strong>%d closed</strong> merge requests."
translations:
@ -274,11 +227,6 @@
- "完成您的<strong>%{group_name}</strong>专用帐户设置。"
- "Завершіть налаштування вашого виділеного облікового запису для <strong>%{group_name}</strong>."
- "Finalizar la configuración de su cuenta dedicada para <strong>%{group_name}</strong>."
"From <code>%{source_title}</code> into":
plural_id:
translations:
- "<code>%{source_title}</code> から"
- "Від <code>%{source_title}</code> до"
"Geo|You are on a secondary, <b>read-only</b> Geo node. If you want to make changes, you must visit this page on the %{primary_node}.":
plural_id:
translations:
@ -326,14 +274,6 @@
"Go to <strong>Issues</strong> > <strong>Boards</strong> to access your personalized learning issue board.":
plural_id:
translations:
"Groups with access to <strong>%{project_name}</strong>":
plural_id:
translations:
- "Grupos com acesso a <strong>%{project_name}</strong>"
- "<strong>%{project_name}</strong>へのアクセス権を持つグループ"
- "可以访问 <strong>%{project_name}</strong>"
- "Групи з доступом до <strong>%{project_name}</strong>"
- "Los grupos con acceso a <strong>%{project_name}</strong>"
"In order to personalize your experience with GitLab<br>we would like to know a bit more about you.":
plural_id:
translations:
@ -439,32 +379,6 @@
- "회원과 <strong>%{sso_label}</strong> 항목을 공유해 신원 제공 업체를 통해 그룹에 로그인할 수 있도록 합니다."
- "Partager le <strong>%{sso_label}</strong> avec les membres afin quils puissent se connecter à votre groupe via votre fournisseur didentité"
- "Comparta <strong>%{sso_label}</strong> con los diferentes miembros para que puedan iniciar sesión en su grupo a través de su proveedor de identidad"
"SlackIntegration|<strong>Note:</strong> Usernames and private channels are not supported.":
plural_id:
translations:
- "<strong> 注: </strong> ユーザー名とプライベートチャネルはサポートしていません。"
- "<strong>Примечание:</strong> Имена пользователей и частные каналы не поддерживаются."
"SlackIntegration|Paste the <strong>Webhook URL</strong> into the field below.":
plural_id:
translations:
- "Вставьте <strong>URL веб-обработчика</strong> в поле ниже."
"SlackIntegration|Select events below to enable notifications. The <strong>Slack channel names</strong> and <strong>Slack username</strong> fields are optional.":
plural_id:
translations:
"SlackService|2. Paste the <strong>Token</strong> into the field below":
plural_id:
translations:
- "2. <strong>トークン</strong> を下のフィールドに貼り付けます"
- "2. 将<strong>Token</strong>粘贴到下面的字段中"
- "2. Вставте <strong>Токен</strong> у поле нижче"
- "2. Pegue el <strong>Token</strong> en el campo que se muestra a continuación"
"SlackService|3. Select the <strong>Active</strong> checkbox, press <strong>Save changes</strong> and start using GitLab inside Slack!":
plural_id:
translations:
- "3. <strong>アクティブな</strong> チェックボックスを選択し、 <strong>変更を保存</strong> を押して、Slack内でGitLabの使用を開始します"
- "Выберите флажок <strong>Активный</strong>, нажмите на <strong>Сохранить изменения</strong> и начните использовать GitLab внутри Slack!"
- "3. 选择<strong>Active</strong>复选框,点击<strong>Save change</strong>后开始在Slack中使用GitLab"
- "3. Встановіть прапорець в пункті <strong>Активний</strong>, натисніть <strong>Зберегти зміни</strong> та починайте використовувати GitLab в Slack!"
"Speed up your DevOps<br>with GitLab":
plural_id:
translations:
@ -480,14 +394,6 @@
- "Les objets Git LFS <strong>ne sont pas</strong> synchronisés."
- "Los objetos Git LFS <strong>no</strong> serán sincronizados."
- "Obiekty Git LFS <strong>nie będą</strong> zsynchronizowane."
"The path to the CI configuration file. Defaults to <code>.gitlab-ci.yml</code>":
plural_id:
translations:
- "CI 設定ファイルへのパス。デフォルトは <code>.gitlab-ci.yml</code>"
- "Путь к файлу конфигурации CI. По умолчанию это <code>.gitlab-ci.yml</code>"
- "CI配置文件的路径。默认为<code>.gitlab-ci.yml</code>"
- "Шлях до кофігураційного файлу CI. За замовчуванням <code>.gitlab-ci.yml</code>"
- "La ruta al archivo de configuración CI. Por defecto <code>.gitlab-ci.yml</code>"
"The repository must be accessible over <code>http://</code>, <code>https://</code>, <code>ssh://</code> or <code>git://</code>.":
plural_id:
translations:
@ -504,30 +410,6 @@
- "此%{issuable}已被锁定。只有<strong>项目成员</strong>可以发表评论。"
- "Ця %{issuable} заблокована. Лише <strong>учасники проекту</strong> можуть коментувати."
- "Este %{issuable} está bloqueado. Solo los <strong>miembros del proyecto</strong> pueden comentar."
"This commit was signed with a <strong>verified</strong> signature and the committer email is verified to belong to the same user.":
plural_id:
translations:
- "このコミットは <strong>検証済み</strong> の署名でサインされており、このコミッターのメールは同じユーザーのものであることが検証されています。"
- "Это коммит был подписан <strong>верифицированной</strong> подписью и коммитер подтвердил, что адрес почты принадлежит ему."
- "此提交使用 <strong>已验证</strong> 的签名进行签名,并且已验证提交者的电子邮件属于同一用户。"
- "Цей коміт підписано <strong>перевіреним</strong> підписом і адреса електронної пошти комітера гарантовано належить тому самому користувачу."
- "Este commit fue firmado con una firma verificada, y <strong>se ha verificado</strong> que la dirección de correo electrónico del committer y la firma pertenecen al mismo usuario."
"This commit was signed with a verified signature, but the committer email is <strong>not verified</strong> to belong to the same user.":
plural_id:
translations:
- "このコミットは検証済みの署名でサインされています。しかしコミッターのメールは、 同じユーザーのものと<strong>検証されていません</strong>。"
- "Этот коммит был подписан верифицированной подписью, но <strong>не подтверждена</strong> принадлежность электронной почты коммитеру."
- "此提交已使用经过验证的签名进行签名,但<strong>未验证</strong>的提交者电子邮件属于同一用户。"
- "Цей коміт підписано перевіреним підписом але адреса електронної пошти комітера <strong>не гарантовано</strong> належить тому самому користувачу."
- "Este commit fue firmado con una firma verificada, pero <strong>no se ha verificado</strong> si la dirección de correo electrónico del commiter y la firma pertenecen al mismo usuario."
"This commit was signed with an <strong>unverified</strong> signature.":
plural_id:
translations:
- "このコミットは<strong>検証されていない</strong> 署名でサインされています。"
- "Этот коммит был подписан <strong>непроверенной</strong> подписью."
- "此提交使用 <strong>未经验证的</strong> 签名进行签名。"
- "Цей коміт підписано <strong>неперевіреним</strong> підписом."
- "Esta commit fue firmado con una firma <strong>no verificada</strong>."
"This group, including all subgroups, projects and git repositories, will only be reachable from the specified IP address range. Multiple addresses are supported with comma delimiters.<br>Example: <code>192.168.0.0/24,192.168.1.0/24</code>. %{read_more_link}.":
plural_id:
translations:
@ -536,13 +418,6 @@
- "此群组包括所有子群组、项目和git仓库只能从指定的IP地址范围中访问。支持用逗号分隔符分隔的多个地址列表。例如 <code>192.168.0.0/24,168.1.0/24</code>. %{read_more_link}。"
- "Ця група разом із усіма її підгрупами, проектами та репозиторями Git буде доступна тільки із вказаного діапазону IP-адрес. Підтримується декілька адрес, розділених комами. <br>Наприклад: <code>192.168.0.0/24</code>.%{read_more_link}."
- "Este grupo, incluyendo todos los subgrupos, proyectos y repositorios git, sólo será accesible desde el rango de direcciones IP especificado. Se admiten múltiples direcciones delimitadas con comas. <br>Ejemplo: <code>192.168.0.0/24,192.168.1.0/24</code>. %{read_more_link}."
"This pipeline makes use of a predefined CI/CD configuration enabled by <b>Auto DevOps.</b>":
plural_id:
translations:
- "このパイプラインは、<b>Auto DevOps</b>によって有効化された定義済みのCI/CD構成を利用します。"
- "此流水线使用了 <b>Auto DevOps 预先定义的并已启用的 CI/CD 配置。</b>"
- "Цей конвеєр використовує попередньо визначену конфігурацію CI / CD, увімкнену за допомогою <b>Auto DevOps</b>"
- "Este pipeline utiliza una configuración de CI/CD predefinida habilitada por <b>Auto DevOps.</b>"
"This project does not have billing enabled. To create a cluster, <a href=%{linkToBilling} target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\">enable billing <i class=\\\"fa fa-external-link\\\" aria-hidden=\\\"true\\\"></i></a> and try again.":
plural_id:
translations:
@ -553,28 +428,6 @@
- "Für dieses Projekt ist keine Abrechnung aktiviert. Um ein Cluster zu erstellen, <a href=%{linkToBilling} target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\">aktiviere die Abrechnung<i class=\\\"fa fa-external-link\\\" aria-hidden=\\\"true\\\"></i></a> und versuche es erneut."
- "Ce projet na pas de facturation activée. Afin de créer une grappe de serveurs, veuillez <a href=%{linkToBilling} target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\">activer la facturation<i class=\\\"fa fa-external-link\\\" aria-hidden=\\\"true\\\"></i></a> et réessayer."
- "Este proyecto no tiene la facturación habilitada. Para crear un clúster, <a href=%{linkToBilling} target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\">habilite la facturación <i class=\\\"fa fa-external-link\\\" aria-hidden=\\\"true\\\"></i></a> e inténtelo de nuevo."
"This project will live in your group <strong>%{namespace}</strong>. A project is where you house your files (repository), plan your work (issues), publish your documentation (wiki), and so much more.":
plural_id:
translations:
"To only use CI/CD features for an external repository, choose <strong>CI/CD for external repo</strong>.":
plural_id:
translations:
- "Para usar apenas recursos CI/CD para um repositório externo, escolha <strong>CI/CD para repo externo</strong>."
- "外部リポジトリにのみ CI/CD の機能を使用するには、<strong>外部リポジトリ用 CI/CD</strong>を選択してください。"
- "要仅为外部仓库使用CI / CD功能时请选择</strong>使用外部仓库运行CI/CD<strong>。"
- "Щоб використовувати лише функції CI/CD для зовнішнього репозиторію, виберіть <strong>CI/CD для зовнішнього репозиторію</strong>."
- "Um die CI/CD-Funktionen nur für ein externes Repository zu verwenden, wähle <strong>CI/CD für externes Repo</strong> aus."
- "CI/CD 기능만 외부 저장소를 위해 사용할 수 있습니다, <strong>외부 저장소용 CI/CD 저장소</strong>를 선택하십시오."
- "Pour nutiliser uniquement que les fonctionnalités dintégration et livraison continues (CI/CD) pour un dépôt externe, choisissez <strong>Intégration et livraison continues (CI/CD) pour dépôt externe</strong>."
- "Para utilizar únicamente las funciones de CI/CD en un repositorio externo, seleccione <strong>CI/CD para un repositorio externo</strong>."
- "Harici bir depoda yalnızca CI/CD özelliklerini kullanmak için <strong>Harici depo için CI/CD</strong>'yi seçin."
"To preserve performance only <strong>%{display_size} of %{real_size}</strong> files are displayed.":
plural_id:
translations:
- "パフォーマンス維持のため、 <strong>%{real_size} 個中 %{display_size} 個</strong> のファイルのみが表示されています。"
- "为了保持性能,仅显示文件中的 <strong>%{display_size}/%{real_size}</strong>。"
- "Для збереження швидкодії відображаються лише <strong>%{display_size} із %{real_size}</strong> файлів."
- "Para mantener el rendimiento, solo se muestran <strong>%{display_size} de %{real_size}</strong> archivos."
"Unlock this %{issuableDisplayName}? <strong>Everyone</strong> will be able to comment.":
plural_id:
translations:
@ -1053,3 +906,150 @@
- "CSV导出将在后台创建。完成后它将以附件形式发送到<strong>%{email}</strong>。"
- "Експорт CSV буде створено у фоновому режимі. Після завершення його буде надіслано на <strong>%{email}</strong> у вкладенні."
- "La exportación CSV se creará en segundo plano. Una vez finalizada, será enviada a <strong>%{email}</strong> como un fichero adjunto al correo electrónico."
"A fork is a copy of a project.<br />Forking a repository allows you to make changes without affecting the original project.":
plural_id:
translations:
- "Um fork é uma cópia de um projeto.<br />Fork de um repositório permite que você faça alterações sem afetar o projeto original."
- "フォークはプロジェクトのコピーです。<br />リポジトリをフォークすると、元のプロジェクトに影響を与えずに変更することができます。"
- "分叉是專案的複本。<br />分叉版本庫讓您在不影響原始專案的情況下,進行變更。"
- "Um fork é uma cópia de um projeto.<br />Bifurcação de um repositório permite que faças alterações sem afetar o projeto original."
- "Ответвление - это копия проекта.<br />Ответвление репозитория позволяет вносить изменения, не влияя на исходный проект."
- "派生是项目的副本。<br />仓库的派生允许您在不影响原始项目的情况下进行更改。"
- "Форк - це копія проєкту.<br />Форк репозиторію дозволяє вносити зміни без впливу на оригінальний проєкт."
- "Ein Fork ist eine Kopie eines Projekts.<br />Wenn du ein Repository forkst, kannst du, ohne Auswirkungen auf das ursprüngliche Projekt, Änderungen vornehmen."
- "포크는 프로젝트의 사본입니다.<br />저장소를 포크하면 원래 프로젝트에 영향을주지 않고 변경할 수 있습니다."
- "Un fork es una copia de un proyecto.<br />Realizar un fork de un repositorio le permite realizar cambios sin afectar al proyecto original."
"Changes are shown as if the <b>source</b> revision was being merged into the <b>target</b> revision.":
plural_id:
translations:
- "Mudanças serão mostradas se revisão de <b>origem</b> tiver sofrido merge na revisão <b>alvo</b>."
- "<b>source</b>リビジョンが<b>target</b>リビジョン内に取り込まれているような変更として表示されます"
- "As alterações são mostradas como se a revisão de <b>origem</b> estivesse a ser mesclada na revisão de <b>destino</b>."
- "Показаны изменения как будто произошло слияние ревизии кода <b>источника</b> с <b>целевой</b> ревизией кода."
- "差异显示方式依<b>源</b>版本合并到<b>目标</b>版本的形式。"
- "Зміни відображаються так, ніби <b>редакція-джерело</b> була злита в <b>цільову редакцію</b>."
- "Änderungen werden angezeigt, als ob die <b>Quell</b>-Revision in die <b>Ziel</b>-Revision gemerged wurde."
- "변경 사항은 <b>source</b> 리비전이 <b>target</b> 리비전에 머지된 것처럼 표시됩니다."
- "Les modifications sont affichées comme si la révision <b>source</b> était fusionnée dans la révision<b>cible</b>."
- "Los cambios se muestran como si la revisión del <b>origen</b> se ha fusionado con la revisión del <b>objetivo</b>."
"From <code>%{source_title}</code> into":
plural_id:
translations:
- "<code>%{source_title}</code> から"
- "Від <code>%{source_title}</code> до"
"Choose between <code>clone</code> or <code>fetch</code> to get the recent application code":
plural_id:
translations:
- "Escolha entre <code>clone</code> ou <code>fetch</code> para obter o código do aplicativo recente"
- "<code>clone</code> または <code>fetch</code> を選択して最新のアプリケーションコードを取得してください"
- "Escolhe entre <code>clone</code> ou <code>fetch</code> para obter o código da aplicação recente"
- "选择 <code>克隆</code> 或 <code>拉取</code> 以获取最近的应用程序代码"
- "Оберіть між <code>clone</code> та<code>fetch</code> щоб отримати найновіший код програми"
- "Wähle zwischen <code>clone</code> oder <code>fetch</code>, um den aktuellen Anwendungscode zu erhalten"
- "최근 응용 프로그램 코드를 얻으려면 <code>클론</code> 또는 <code>fetch</code>를 선택하십시오."
- "Choisissez entre <code>clone</code> ou <code>fetch</code> pour obtenir les dernières modifications du code de lapplication"
- "Elija entre <code>clone</code> o <code>fetch</code> para obtener el código de la aplicación más reciente"
- "Wybierz pomiędzy <code>klonem</code> lub <code>pobierz</code> aby uzyskać najnowszy kod aplikacji"
"The path to the CI configuration file. Defaults to <code>.gitlab-ci.yml</code>":
plural_id:
translations:
- "CI 設定ファイルへのパス。デフォルトは <code>.gitlab-ci.yml</code>"
- "Путь к файлу конфигурации CI. По умолчанию это <code>.gitlab-ci.yml</code>"
- "CI配置文件的路径。默认为<code>.gitlab-ci.yml</code>"
- "Шлях до кофігураційного файлу CI. За замовчуванням <code>.gitlab-ci.yml</code>"
- "La ruta al archivo de configuración CI. Por defecto <code>.gitlab-ci.yml</code>"
"Define environments in the deploy stage(s) in <code>.gitlab-ci.yml</code> to track deployments here.":
plural_id:
translations:
- "デプロイステージの環境を <code>.gitlab-ci.yml</code> で定義して、デプロイを追跡します。"
- "Обозначьте окружения на этапе(ах) развёртывания в <code>.gitlab-ci.yml</code> для отслеживания развёртывания здесь."
- "在<code>.githab-ci.yml</code>的 deploy 阶段中定义 environment 来跟踪部署。"
- "Визначте середовища на стадії розгортання у <code>.gitlab-ci.yml</code> щоб відстежувати розгортання тут."
- "Defina entornos en las distintas etapas de despliegue en el fichero <code>.gitlab-ci.yml</code> para llevar un registro de las implementaciones desde aquí."
"Groups with access to <strong>%{project_name}</strong>":
plural_id:
translations:
- "Grupos com acesso a <strong>%{project_name}</strong>"
- "<strong>%{project_name}</strong>へのアクセス権を持つグループ"
- "可以访问 <strong>%{project_name}</strong>"
- "Групи з доступом до <strong>%{project_name}</strong>"
- "Los grupos con acceso a <strong>%{project_name}</strong>"
"This commit was signed with a verified signature, but the committer email is <strong>not verified</strong> to belong to the same user.":
plural_id:
translations:
- "このコミットは検証済みの署名でサインされています。しかしコミッターのメールは、 同じユーザーのものと<strong>検証されていません</strong>。"
- "Этот коммит был подписан верифицированной подписью, но <strong>не подтверждена</strong> принадлежность электронной почты коммитеру."
- "此提交已使用经过验证的签名进行签名,但<strong>未验证</strong>的提交者电子邮件属于同一用户。"
- "Цей коміт підписано перевіреним підписом але адреса електронної пошти комітера <strong>не гарантовано</strong> належить тому самому користувачу."
- "Este commit fue firmado con una firma verificada, pero <strong>no se ha verificado</strong> si la dirección de correo electrónico del commiter y la firma pertenecen al mismo usuario."
"This commit was signed with an <strong>unverified</strong> signature.":
plural_id:
translations:
- "このコミットは<strong>検証されていない</strong> 署名でサインされています。"
- "Этот коммит был подписан <strong>непроверенной</strong> подписью."
- "此提交使用 <strong>未经验证的</strong> 签名进行签名。"
- "Цей коміт підписано <strong>неперевіреним</strong> підписом."
- "Esta commit fue firmado con una firma <strong>no verificada</strong>."
"This commit was signed with a <strong>verified</strong> signature and the committer email is verified to belong to the same user.":
plural_id:
translations:
- "このコミットは <strong>検証済み</strong> の署名でサインされており、このコミッターのメールは同じユーザーのものであることが検証されています。"
- "Это коммит был подписан <strong>верифицированной</strong> подписью и коммитер подтвердил, что адрес почты принадлежит ему."
- "此提交使用 <strong>已验证</strong> 的签名进行签名,并且已验证提交者的电子邮件属于同一用户。"
- "Цей коміт підписано <strong>перевіреним</strong> підписом і адреса електронної пошти комітера гарантовано належить тому самому користувачу."
- "Este commit fue firmado con una firma verificada, y <strong>se ha verificado</strong> que la dirección de correo electrónico del committer y la firma pertenecen al mismo usuario."
"To preserve performance only <strong>%{display_size} of %{real_size}</strong> files are displayed.":
plural_id:
translations:
- "パフォーマンス維持のため、 <strong>%{real_size} 個中 %{display_size} 個</strong> のファイルのみが表示されています。"
- "为了保持性能,仅显示文件中的 <strong>%{display_size}/%{real_size}</strong>。"
- "Для збереження швидкодії відображаються лише <strong>%{display_size} із %{real_size}</strong> файлів."
- "Para mantener el rendimiento, solo se muestran <strong>%{display_size} de %{real_size}</strong> archivos."
"This pipeline makes use of a predefined CI/CD configuration enabled by <b>Auto DevOps.</b>":
plural_id:
translations:
- "このパイプラインは、<b>Auto DevOps</b>によって有効化された定義済みのCI/CD構成を利用します。"
- "此流水线使用了 <b>Auto DevOps 预先定义的并已启用的 CI/CD 配置。</b>"
- "Цей конвеєр використовує попередньо визначену конфігурацію CI / CD, увімкнену за допомогою <b>Auto DevOps</b>"
- "Este pipeline utiliza una configuración de CI/CD predefinida habilitada por <b>Auto DevOps.</b>"
"This project will live in your group <strong>%{namespace}</strong>. A project is where you house your files (repository), plan your work (issues), publish your documentation (wiki), and so much more.":
plural_id:
translations:
"To only use CI/CD features for an external repository, choose <strong>CI/CD for external repo</strong>.":
plural_id:
translations:
- "Para usar apenas recursos CI/CD para um repositório externo, escolha <strong>CI/CD para repo externo</strong>."
- "外部リポジトリにのみ CI/CD の機能を使用するには、<strong>外部リポジトリ用 CI/CD</strong>を選択してください。"
- "要仅为外部仓库使用CI / CD功能时请选择</strong>使用外部仓库运行CI/CD<strong>。"
- "Щоб використовувати лише функції CI/CD для зовнішнього репозиторію, виберіть <strong>CI/CD для зовнішнього репозиторію</strong>."
- "Um die CI/CD-Funktionen nur für ein externes Repository zu verwenden, wähle <strong>CI/CD für externes Repo</strong> aus."
- "CI/CD 기능만 외부 저장소를 위해 사용할 수 있습니다, <strong>외부 저장소용 CI/CD 저장소</strong>를 선택하십시오."
- "Pour nutiliser uniquement que les fonctionnalités dintégration et livraison continues (CI/CD) pour un dépôt externe, choisissez <strong>Intégration et livraison continues (CI/CD) pour dépôt externe</strong>."
- "Para utilizar únicamente las funciones de CI/CD en un repositorio externo, seleccione <strong>CI/CD para un repositorio externo</strong>."
- "Harici bir depoda yalnızca CI/CD özelliklerini kullanmak için <strong>Harici depo için CI/CD</strong>'yi seçin."
"SlackIntegration|Paste the <strong>Webhook URL</strong> into the field below.":
plural_id:
translations:
- "Вставьте <strong>URL веб-обработчика</strong> в поле ниже."
"SlackIntegration|Select events below to enable notifications. The <strong>Slack channel names</strong> and <strong>Slack username</strong> fields are optional.":
plural_id:
translations:
"SlackIntegration|<strong>Note:</strong> Usernames and private channels are not supported.":
plural_id:
translations:
- "<strong> 注: </strong> ユーザー名とプライベートチャネルはサポートしていません。"
- "<strong>Примечание:</strong> Имена пользователей и частные каналы не поддерживаются."
"SlackService|2. Paste the <strong>Token</strong> into the field below":
plural_id:
translations:
- "2. <strong>トークン</strong> を下のフィールドに貼り付けます"
- "2. 将<strong>Token</strong>粘贴到下面的字段中"
- "2. Вставте <strong>Токен</strong> у поле нижче"
- "2. Pegue el <strong>Token</strong> en el campo que se muestra a continuación"
"SlackService|3. Select the <strong>Active</strong> checkbox, press <strong>Save changes</strong> and start using GitLab inside Slack!":
plural_id:
translations:
- "3. <strong>アクティブな</strong> チェックボックスを選択し、 <strong>変更を保存</strong> を押して、Slack内でGitLabの使用を開始します"
- "Выберите флажок <strong>Активный</strong>, нажмите на <strong>Сохранить изменения</strong> и начните использовать GitLab внутри Slack!"
- "3. 选择<strong>Active</strong>复选框,点击<strong>Save change</strong>后开始在Slack中使用GitLab"
- "3. Встановіть прапорець в пункті <strong>Активний</strong>, натисніть <strong>Зберегти зміни</strong> та починайте використовувати GitLab в Slack!"

View File

@ -45,7 +45,9 @@ module Gitlab
raise Errors::MissingQueryError.new('Each "metric" must define one of :query or :query_range') unless query
query
# We need to remove any newlines since our UrlBlocker does not allow
# multiline URLs.
query.squish
end
end
end

View File

@ -132,7 +132,7 @@ module Gitlab
def http_options
strong_memoize(:http_options) do
{ follow_redirects: false }.merge(mapped_options)
{ follow_redirects: false, open_timeout: 5, read_timeout: 10 }.merge(mapped_options)
end
end

View File

@ -1091,7 +1091,7 @@ msgstr ""
msgid "A file with '%{file_name}' already exists in %{branch} branch"
msgstr ""
msgid "A fork is a copy of a project.<br />Forking a repository allows you to make changes without affecting the original project."
msgid "A fork is a copy of a project."
msgstr ""
msgid "A group is a collection of several projects"
@ -4386,7 +4386,7 @@ msgstr ""
msgid "Changes affect new repositories only. If not specified, Git's default name %{branch_name_default} will be used."
msgstr ""
msgid "Changes are shown as if the <b>source</b> revision was being merged into the <b>target</b> revision."
msgid "Changes are shown as if the %{b_open}source%{b_close} revision was being merged into the %{b_open}target%{b_close} revision."
msgstr ""
msgid "Changes are still tracked. Useful for cluster/index migrations."
@ -4683,7 +4683,7 @@ msgstr ""
msgid "Choose any color."
msgstr ""
msgid "Choose between <code>clone</code> or <code>fetch</code> to get the recent application code"
msgid "Choose between %{code_open}clone%{code_close} or %{code_open}fetch%{code_close} to get the recent application code"
msgstr ""
msgid "Choose file…"
@ -7651,7 +7651,7 @@ msgstr ""
msgid "Define custom rules for what constitutes spam, independent of Akismet"
msgstr ""
msgid "Define environments in the deploy stage(s) in <code>.gitlab-ci.yml</code> to track deployments here."
msgid "Define environments in the deploy stage(s) in %{code_open}.gitlab-ci.yml%{code_close} to track deployments here."
msgstr ""
msgid "Definition"
@ -10669,6 +10669,9 @@ msgstr ""
msgid "ForkedFromProjectPath|Forked from an inaccessible project"
msgstr ""
msgid "Forking a repository allows you to make changes without affecting the original project."
msgstr ""
msgid "Forking in progress"
msgstr ""
@ -10708,10 +10711,10 @@ msgstr ""
msgid "From"
msgstr ""
msgid "From %{providerTitle}"
msgid "From %{code_open}%{source_title}%{code_close} into"
msgstr ""
msgid "From <code>%{source_title}</code> into"
msgid "From %{providerTitle}"
msgstr ""
msgid "From Google Code"
@ -11188,7 +11191,7 @@ msgstr ""
msgid "Git LFS is not enabled on this GitLab server, contact your admin."
msgstr ""
msgid "Git LFS objects will be synced in pull mirrors if LFS is %{docs_link_start}enabled for the project%{docs_link_end}. They will <strong>not</strong> be synced in push mirrors."
msgid "Git LFS objects will be synced in pull mirrors if LFS is %{docs_link_start}enabled for the project%{docs_link_end}. They will %{strong_open}not%{strong_close} be synced in push mirrors."
msgstr ""
msgid "Git LFS status:"
@ -12070,10 +12073,10 @@ msgstr ""
msgid "Groups to synchronize"
msgstr ""
msgid "Groups with access to %{strong_start}%{group_name}%{strong_end}"
msgid "Groups with access to %{strong_open}%{project_name}%{strong_close}"
msgstr ""
msgid "Groups with access to <strong>%{project_name}</strong>"
msgid "Groups with access to %{strong_start}%{group_name}%{strong_end}"
msgstr ""
msgid "GroupsDropdown|Frequently visited"
@ -12767,7 +12770,7 @@ msgstr ""
msgid "Include merge request description"
msgstr ""
msgid "Include the username in the URL if required: <code>https://username@gitlab.company.com/group/project.git</code>."
msgid "Include the username in the URL if required: %{code_open}https://username@gitlab.company.com/group/project.git%{code_close}."
msgstr ""
msgid "Includes LFS objects. It can be overridden per group, or per project. 0 for unlimited."
@ -14651,10 +14654,10 @@ msgstr ""
msgid "Members"
msgstr ""
msgid "Members can be added by project <i>Maintainers</i> or <i>Owners</i>"
msgid "Members can be added by project %{i_open}Maintainers%{i_close} or %{i_open}Owners%{i_close}"
msgstr ""
msgid "Members of <strong>%{project_name}</strong>"
msgid "Members of %{strong_open}%{project_name}%{strong_close}"
msgstr ""
msgid "Members of a group may only view projects they have permission to access"
@ -22108,25 +22111,25 @@ msgstr ""
msgid "Slack integration allows you to interact with GitLab via slash commands in a chat window."
msgstr ""
msgid "SlackIntegration|%{strong_open}Note:%{strong_close} Usernames and private channels are not supported."
msgstr ""
msgid "SlackIntegration|%{webhooks_link_start}Add an incoming webhook%{webhooks_link_end} in your Slack team. The default channel can be overridden for each event."
msgstr ""
msgid "SlackIntegration|<strong>Note:</strong> Usernames and private channels are not supported."
msgid "SlackIntegration|Paste the %{strong_open}Webhook URL%{strong_close} into the field below."
msgstr ""
msgid "SlackIntegration|Paste the <strong>Webhook URL</strong> into the field below."
msgstr ""
msgid "SlackIntegration|Select events below to enable notifications. The <strong>Slack channel names</strong> and <strong>Slack username</strong> fields are optional."
msgid "SlackIntegration|Select events below to enable notifications. The %{strong_open}Slack channel names%{strong_close} and %{strong_open}Slack username%{strong_close} fields are optional."
msgstr ""
msgid "SlackIntegration|This service send notifications about projects' events to Slack channels. To set up this service:"
msgstr ""
msgid "SlackService|2. Paste the <strong>Token</strong> into the field below"
msgid "SlackService|2. Paste the %{strong_open}Token%{strong_close} into the field below"
msgstr ""
msgid "SlackService|3. Select the <strong>Active</strong> checkbox, press <strong>Save changes</strong> and start using GitLab inside Slack!"
msgid "SlackService|3. Select the %{strong_open}Active%{strong_close} checkbox, press %{strong_open}Save changes%{strong_close} and start using GitLab inside Slack!"
msgstr ""
msgid "SlackService|Fill in the word that works best for your team."
@ -23843,7 +23846,7 @@ msgstr ""
msgid "The passphrase required to decrypt the private key. This is optional and the value is encrypted at rest."
msgstr ""
msgid "The path to the CI configuration file. Defaults to <code>.gitlab-ci.yml</code>"
msgid "The path to the CI configuration file. Defaults to %{code_open}.gitlab-ci.yml%{code_close}"
msgstr ""
msgid "The phase of the development lifecycle."
@ -23912,7 +23915,7 @@ msgstr ""
msgid "The repository must be accessible over %{code_open}http://%{code_close}, %{code_open}https://%{code_close} or %{code_open}git://%{code_close}."
msgstr ""
msgid "The repository must be accessible over <code>http://</code>, <code>https://</code>, <code>ssh://</code> or <code>git://</code>."
msgid "The repository must be accessible over %{code_open}http://%{code_close}, %{code_open}https://%{code_close}, %{code_open}ssh://%{code_close} or %{code_open}git://%{code_close}."
msgstr ""
msgid "The review stage shows the time from creating the merge request to merging it. The data will automatically be added after you merge your first merge request."
@ -24326,13 +24329,19 @@ msgstr ""
msgid "This commit is part of merge request %{link_to_merge_request}. Comments created here will be created in the context of that merge request."
msgstr ""
msgid "This commit was signed with a %{strong_open}verified%{strong_close} signature and the committer email is verified to belong to the same user."
msgstr ""
msgid "This commit was signed with a <strong>verified</strong> signature and the committer email is verified to belong to the same user."
msgstr ""
msgid "This commit was signed with a different user's verified signature."
msgstr ""
msgid "This commit was signed with a verified signature, but the committer email is <strong>not verified</strong> to belong to the same user."
msgid "This commit was signed with a verified signature, but the committer email is %{strong_open}not verified%{strong_close} to belong to the same user."
msgstr ""
msgid "This commit was signed with an %{strong_open}unverified%{strong_close} signature."
msgstr ""
msgid "This commit was signed with an <strong>unverified</strong> signature."
@ -24605,10 +24614,10 @@ msgstr ""
msgid "This pipeline does not use the %{codeStart}needs%{codeEnd} keyword and can't be represented as a directed acyclic graph."
msgstr ""
msgid "This pipeline makes use of a predefined CI/CD configuration enabled by %{strongStart}Auto DevOps.%{strongEnd}"
msgid "This pipeline makes use of a predefined CI/CD configuration enabled by %{b_open}Auto DevOps.%{b_close}"
msgstr ""
msgid "This pipeline makes use of a predefined CI/CD configuration enabled by <b>Auto DevOps.</b>"
msgid "This pipeline makes use of a predefined CI/CD configuration enabled by %{strongStart}Auto DevOps.%{strongEnd}"
msgstr ""
msgid "This pipeline was triggered by a schedule."
@ -24644,7 +24653,7 @@ msgstr ""
msgid "This project will be removed on %{date} since its parent group '%{parent_group_name}' has been scheduled for removal."
msgstr ""
msgid "This project will live in your group <strong>%{namespace}</strong>. A project is where you house your files (repository), plan your work (issues), publish your documentation (wiki), and so much more."
msgid "This project will live in your group %{strong_open}%{namespace}%{strong_close}. A project is where you house your files (repository), plan your work (issues), publish your documentation (wiki), and so much more."
msgstr ""
msgid "This repository"
@ -25104,13 +25113,13 @@ msgstr ""
msgid "To move or copy an entire GitLab project from another GitLab installation to this one, navigate to the original project's settings page, generate an export file, and upload it here."
msgstr ""
msgid "To only use CI/CD features for an external repository, choose <strong>CI/CD for external repo</strong>."
msgid "To only use CI/CD features for an external repository, choose %{strong_open}CI/CD for external repo%{strong_close}."
msgstr ""
msgid "To open Jaeger and easily view tracing from GitLab, link the %{link} page to your server"
msgstr ""
msgid "To preserve performance only <strong>%{display_size} of %{real_size}</strong> files are displayed."
msgid "To preserve performance only %{strong_open}%{display_size} of %{real_size}%{strong_close} files are displayed."
msgstr ""
msgid "To protect this issue's confidentiality, %{forkLink} and set the fork's visibility to private."
@ -26958,9 +26967,6 @@ msgstr[1] ""
msgid "When using the %{code_open}http://%{code_close} or %{code_open}https://%{code_close} protocols, please provide the exact URL to the repository. HTTP redirects will not be followed."
msgstr ""
msgid "When using the <code>http://</code> or <code>https://</code> protocols, please provide the exact URL to the repository. HTTP redirects will not be followed."
msgstr ""
msgid "When:"
msgstr ""

View File

@ -111,7 +111,7 @@
"minimatch": "^3.0.4",
"monaco-editor": "^0.20.0",
"monaco-editor-webpack-plugin": "^1.9.0",
"monaco-yaml": "^2.4.0",
"monaco-yaml": "^2.4.1",
"mousetrap": "^1.4.6",
"pdfjs-dist": "^2.0.943",
"pikaday": "^1.8.0",

View File

@ -41,7 +41,17 @@ panel_groups:
max_value: 1
metrics:
- id: metric_a1
query_range: 'query'
query_range: |+
avg(
sum(
container_memory_usage_bytes{
container_name!="POD",
pod_name=~"^{{ci_environment_slug}}-(.*)",
namespace="{{kube_namespace}}"
}
) by (job)
) without (job)
/1024/1024/1024
unit: unit
label: Legend Label
- title: "Super Chart A2"

Some files were not shown because too many files have changed in this diff Show More