summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSanad Liaquat <sliaquat@gitlab.com>2019-03-15 11:52:39 +0500
committerSanad Liaquat <sliaquat@gitlab.com>2019-03-15 11:52:39 +0500
commite73f8713812b912b3b0244e99b6a18b9422a2d4d (patch)
treede67e0ab7931961752caeccef78f393365391f81
parent82c0816d3fdd96412605845fa337b74b6a3534c4 (diff)
downloadgitlab-ce-qa-artillery-io-script.tar.gz
Add Load testing script for artillery.ioqa-artillery-io-script
Also add rake tasks that makes use of existing performance data genertion task.
-rw-r--r--CHANGELOG.md15
-rw-r--r--app/assets/javascripts/clusters/components/applications.vue22
-rw-r--r--app/assets/javascripts/environments/index.js3
-rw-r--r--app/assets/javascripts/environments/mixins/canary_callout_mixin.js5
-rw-r--r--app/assets/javascripts/environments/mixins/environments_mixin.js2
-rw-r--r--app/assets/javascripts/environments/stores/environments_store.js25
-rw-r--r--app/assets/javascripts/environments/stores/helpers.js8
-rw-r--r--app/assets/javascripts/pages/groups/details/index.js5
-rw-r--r--app/assets/javascripts/pages/groups/shared/group_details.js31
-rw-r--r--app/assets/javascripts/pages/groups/show/group_tabs.js (renamed from app/assets/javascripts/pages/groups/shared/group_tabs.js)0
-rw-r--r--app/assets/javascripts/pages/groups/show/index.js27
-rw-r--r--app/assets/javascripts/pages/users/user_tabs.js1
-rw-r--r--app/assets/javascripts/pipelines/components/graph/stage_column_component.vue5
-rw-r--r--app/assets/javascripts/pipelines/mixins/graph_pipeline_bundle_mixin.js6
-rw-r--r--app/assets/javascripts/pipelines/mixins/stage_column_mixin.js7
-rw-r--r--app/assets/javascripts/pipelines/pipeline_details_bundle.js8
-rw-r--r--app/assets/stylesheets/framework/common.scss4
-rw-r--r--app/assets/stylesheets/pages/projects.scss4
-rw-r--r--app/assets/stylesheets/pages/settings.scss5
-rw-r--r--app/controllers/groups_controller.rb36
-rw-r--r--app/helpers/groups_helper.rb1
-rw-r--r--app/presenters/project_presenter.rb10
-rw-r--r--app/validators/sha_validator.rb2
-rw-r--r--app/views/layouts/header/_new_dropdown.haml2
-rw-r--r--app/views/layouts/nav/_dashboard.html.haml2
-rw-r--r--app/views/layouts/nav/sidebar/_group.html.haml11
-rw-r--r--app/views/projects/_flash_messages.html.haml3
-rw-r--r--app/views/projects/_home_panel.html.haml5
-rw-r--r--app/views/projects/blob/_header_content.html.haml2
-rw-r--r--app/views/projects/empty.html.haml133
-rw-r--r--app/views/projects/settings/operations/_error_tracking.html.haml2
-rw-r--r--app/views/projects/settings/operations/show.html.haml1
-rw-r--r--app/views/shared/_file_highlight.html.haml2
-rw-r--r--app/views/shared/snippets/_form.html.haml6
-rw-r--r--app/views/shared/snippets/_header.html.haml8
-rw-r--r--changelogs/unreleased/49863-ingress-ip-loading-state.yml5
-rw-r--r--changelogs/unreleased/56833-project-improve-empty-repository-state-ui-fe.yml5
-rw-r--r--changelogs/unreleased/57579-gitlab-project-import-fails-sidekiq-undefined-method-import_jid.yml5
-rw-r--r--changelogs/unreleased/58149-fix-read-list-board-policy.yml6
-rw-r--r--changelogs/unreleased/58927-jupyterhub-fails-to-install.yml5
-rw-r--r--changelogs/unreleased/fj-58804-fix-bitbucket-import.yml5
-rw-r--r--changelogs/unreleased/jc-fix-set-project-writable.yml5
-rw-r--r--changelogs/unreleased/modify_group_policy.yml5
-rw-r--r--changelogs/unreleased/security-shared-project-private-group.yml5
-rw-r--r--changelogs/unreleased/sh-fix-issue-58103.yml5
-rw-r--r--config/karma.config.js34
-rw-r--r--config/routes/group.rb1
-rw-r--r--config/webpack.config.js4
-rw-r--r--doc/administration/index.md1
-rw-r--r--doc/administration/user_settings.md35
-rw-r--r--doc/api/pipeline_schedules.md6
-rw-r--r--doc/api/search.md2
-rw-r--r--doc/ci/README.md2
-rw-r--r--doc/ci/img/pipelines-goal.pngbin0 -> 15284 bytes
-rw-r--r--doc/ci/img/types-of-pipelines.pngbin0 -> 12268 bytes
-rw-r--r--doc/ci/merge_request_pipelines/index.md46
-rw-r--r--doc/ci/pipelines.md410
-rw-r--r--doc/development/documentation/styleguide.md7
-rw-r--r--doc/development/testing_guide/end_to_end_tests.md9
-rw-r--r--doc/gitlab-basics/create-your-ssh-keys.md39
-rw-r--r--doc/gitlab-basics/img/profile_settings.pngbin0 -> 2842 bytes
-rw-r--r--doc/gitlab-basics/img/profile_settings_ssh_keys.pngbin0 -> 16531 bytes
-rw-r--r--doc/gitlab-basics/img/profile_settings_ssh_keys_paste_pub.pngbin0 -> 13436 bytes
-rw-r--r--doc/gitlab-basics/img/profile_settings_ssh_keys_title.pngbin0 -> 1867 bytes
-rw-r--r--doc/user/permissions.md6
-rw-r--r--doc/user/profile/img/personal_access_tokens.pngbin0 -> 18553 bytes
-rw-r--r--doc/user/profile/personal_access_tokens.md18
-rw-r--r--doc/user/project/badges.md6
-rw-r--r--doc/user/project/merge_requests/merge_when_pipeline_succeeds.md2
-rw-r--r--lib/gitlab/database.rb6
-rw-r--r--locale/gitlab.pot45
-rw-r--r--locale/uk/gitlab.po2252
-rw-r--r--qa/.gitignore2
-rw-r--r--qa/Rakefile22
-rw-r--r--qa/load/artillery.yml22
-rw-r--r--qa/qa.rb7
-rw-r--r--qa/qa/page/dashboard/projects.rb2
-rw-r--r--qa/qa/page/dashboard/snippet/index.rb21
-rw-r--r--qa/qa/page/dashboard/snippet/new.rb53
-rw-r--r--qa/qa/page/dashboard/snippet/show.rb63
-rw-r--r--qa/qa/page/main/menu.rb5
-rw-r--r--qa/qa/resource/snippet.rb30
-rw-r--r--qa/qa/specs/features/browser_ui/3_create/snippet/create_snippet_spec.rb31
-rw-r--r--qa/qa/tools/generate_perf_testdata.rb12
-rw-r--r--spec/controllers/groups_controller_spec.rb37
-rw-r--r--spec/features/projects/clusters/applications_spec.rb2
-rw-r--r--spec/features/projects/show/user_sees_git_instructions_spec.rb2
-rw-r--r--spec/features/projects/show/user_sees_setup_shortcut_buttons_spec.rb58
-rw-r--r--spec/fixtures/api/schemas/board.json3
-rw-r--r--spec/fixtures/api/schemas/entities/issue.json3
-rw-r--r--spec/fixtures/api/schemas/entities/issue_boards.json3
-rw-r--r--spec/fixtures/api/schemas/entities/merge_request_widget.json4
-rw-r--r--spec/fixtures/api/schemas/issue.json5
-rw-r--r--spec/fixtures/api/schemas/issues.json3
-rw-r--r--spec/fixtures/api/schemas/public_api/v4/merge_request.json124
-rw-r--r--spec/fixtures/api/schemas/public_api/v4/merge_requests.json122
-rw-r--r--spec/javascripts/clusters/components/applications_spec.js10
-rw-r--r--spec/javascripts/environments/environments_store_spec.js74
-rw-r--r--spec/javascripts/test_bundle.js72
-rw-r--r--spec/lib/gitlab/bitbucket_import/importer_spec.rb20
-rw-r--r--spec/lib/gitlab/database_spec.rb38
-rw-r--r--spec/lib/gitlab/request_context_spec.rb2
-rw-r--r--spec/migrations/add_head_pipeline_for_each_merge_request_spec.rb24
-rw-r--r--spec/migrations/migrate_old_artifacts_spec.rb32
-rw-r--r--spec/migrations/migrate_user_activities_to_users_last_activity_on_spec.rb6
-rw-r--r--spec/migrations/migrate_user_project_view_spec.rb6
-rw-r--r--spec/routing/group_routing_spec.rb4
-rw-r--r--spec/support/api/schema_matcher.rb24
-rw-r--r--spec/validators/sha_validator_spec.rb9
-rw-r--r--spec/views/projects/settings/operations/show.html.haml_spec.rb1
-rw-r--r--vendor/jupyter/values.yaml4
111 files changed, 1639 insertions, 2714 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index bec6a8b3e21..8a4a6c9ff13 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,21 +2,6 @@
documentation](doc/development/changelog.md) for instructions on adding your own
entry.
-## 11.8.2 (2019-03-13)
-
-### Security (1 change)
-
-- Fixed ability to see private groups by users not belonging to given group.
-
-### Fixed (5 changes)
-
-- Fix import_jid error on project import. !25239
-- Properly handle multiple X-Forwarded-For addresses in runner IP. !25511
-- Fix error when viewing group issue boards when user doesn't have explicit group permissions. !25524
-- Fix method to mark a project repository as writable. !25546
-- Allow project members to see private group if the project is in the group namespace.
-
-
## 11.8.0 (2019-02-22)
### Security (7 changes, 1 of them is from the community)
diff --git a/app/assets/javascripts/clusters/components/applications.vue b/app/assets/javascripts/clusters/components/applications.vue
index 5b206b82fe0..13e8617c515 100644
--- a/app/assets/javascripts/clusters/components/applications.vue
+++ b/app/assets/javascripts/clusters/components/applications.vue
@@ -1,7 +1,6 @@
<script>
import _ from 'underscore';
import helmInstallIllustration from '@gitlab/svgs/dist/illustrations/kubernetes-installation.svg';
-import { GlLoadingIcon } from '@gitlab/ui';
import elasticsearchLogo from 'images/cluster_app_logos/elasticsearch.png';
import gitlabLogo from 'images/cluster_app_logos/gitlab.png';
import helmLogo from 'images/cluster_app_logos/helm.png';
@@ -24,7 +23,6 @@ export default {
applicationRow,
clipboardButton,
LoadingButton,
- GlLoadingIcon,
},
props: {
type: {
@@ -298,12 +296,7 @@ export default {
/>
</span>
</div>
- <div v-else class="input-group">
- <input type="text" class="form-control js-endpoint" readonly />
- <gl-loading-icon
- class="position-absolute align-self-center ml-2 js-ingress-ip-loading-icon"
- />
- </div>
+ <input v-else type="text" class="form-control js-endpoint" readonly value="?" />
<p class="form-text text-muted">
{{
s__(`ClusterIntegration|Point a wildcard DNS to this
@@ -552,12 +545,13 @@ export default {
/>
</span>
</div>
- <div v-else class="input-group">
- <input type="text" class="form-control js-endpoint" readonly />
- <gl-loading-icon
- class="position-absolute align-self-center ml-2 js-knative-ip-loading-icon"
- />
- </div>
+ <input
+ v-else
+ type="text"
+ class="form-control js-knative-endpoint"
+ readonly
+ value="?"
+ />
</div>
<p class="form-text text-muted col-12">
diff --git a/app/assets/javascripts/environments/index.js b/app/assets/javascripts/environments/index.js
index b53d42f202b..6af66d0f86e 100644
--- a/app/assets/javascripts/environments/index.js
+++ b/app/assets/javascripts/environments/index.js
@@ -1,5 +1,4 @@
import Vue from 'vue';
-import canaryCalloutMixin from 'ee_else_ce/environments/mixins/canary_callout_mixin';
import environmentsComponent from './components/environments_app.vue';
import { parseBoolean } from '../lib/utils/common_utils';
import Translate from '../vue_shared/translate';
@@ -12,7 +11,6 @@ export default () =>
components: {
environmentsComponent,
},
- mixins: [canaryCalloutMixin],
data() {
const environmentsData = document.querySelector(this.$options.el).dataset;
@@ -34,7 +32,6 @@ export default () =>
cssContainerClass: this.cssContainerClass,
canCreateEnvironment: this.canCreateEnvironment,
canReadEnvironment: this.canReadEnvironment,
- ...this.canaryCalloutProps,
},
});
},
diff --git a/app/assets/javascripts/environments/mixins/canary_callout_mixin.js b/app/assets/javascripts/environments/mixins/canary_callout_mixin.js
deleted file mode 100644
index f6d3d67b777..00000000000
--- a/app/assets/javascripts/environments/mixins/canary_callout_mixin.js
+++ /dev/null
@@ -1,5 +0,0 @@
-export default {
- computed: {
- canaryCalloutProps() {},
- },
-};
diff --git a/app/assets/javascripts/environments/mixins/environments_mixin.js b/app/assets/javascripts/environments/mixins/environments_mixin.js
index a5812b173dc..71b6b578196 100644
--- a/app/assets/javascripts/environments/mixins/environments_mixin.js
+++ b/app/assets/javascripts/environments/mixins/environments_mixin.js
@@ -3,13 +3,13 @@
*/
import _ from 'underscore';
import Visibility from 'visibilityjs';
-import EnvironmentsStore from 'ee_else_ce/environments/stores/environments_store';
import Poll from '../../lib/utils/poll';
import { getParameterByName } from '../../lib/utils/common_utils';
import { s__ } from '../../locale';
import Flash from '../../flash';
import eventHub from '../event_hub';
+import EnvironmentsStore from '../stores/environments_store';
import EnvironmentsService from '../services/environments_service';
import tablePagination from '../../vue_shared/components/table_pagination.vue';
import environmentTable from '../components/environments_table.vue';
diff --git a/app/assets/javascripts/environments/stores/environments_store.js b/app/assets/javascripts/environments/stores/environments_store.js
index 5fb420e9da5..ac9a31c202c 100644
--- a/app/assets/javascripts/environments/stores/environments_store.js
+++ b/app/assets/javascripts/environments/stores/environments_store.js
@@ -1,6 +1,4 @@
import { parseIntPagination, normalizeHeaders } from '~/lib/utils/common_utils';
-import { setDeployBoard } from 'ee_else_ce/environments/stores/helpers';
-
/**
* Environments Store.
*
@@ -33,14 +31,6 @@ export default class EnvironmentsStore {
* If the `size` is bigger than 1, it means it should be rendered as a folder.
* In those cases we add `isFolder` key in order to render it properly.
*
- * Top level environments - when the size is 1 - with `rollout_status`
- * can render a deploy board. We add `isDeployBoardVisible` and `deployBoardData`
- * keys to those environments.
- * The first key will let's us know if we should or not render the deploy board.
- * It will be toggled when the user clicks to seee the deploy board.
- *
- * The second key will allow us to update the environment with the received deploy board data.
- *
* @param {Array} environments
* @returns {Array}
*/
@@ -73,7 +63,6 @@ export default class EnvironmentsStore {
filtered = Object.assign(filtered, env);
}
- filtered = setDeployBoard(oldEnvironmentState, filtered);
return filtered;
});
@@ -82,20 +71,6 @@ export default class EnvironmentsStore {
return filteredEnvironments;
}
- /**
- * Stores the pagination information needed to render the pagination for the
- * table.
- *
- * Normalizes the headers to uppercase since they can be provided either
- * in uppercase or lowercase.
- *
- * Parses to an integer the normalized ones needed for the pagination component.
- *
- * Stores the normalized and parsed information.
- *
- * @param {Object} pagination = {}
- * @return {Object}
- */
setPagination(pagination = {}) {
const normalizedHeaders = normalizeHeaders(pagination);
const paginationInformation = parseIntPagination(normalizedHeaders);
diff --git a/app/assets/javascripts/environments/stores/helpers.js b/app/assets/javascripts/environments/stores/helpers.js
deleted file mode 100644
index 8eba6c00601..00000000000
--- a/app/assets/javascripts/environments/stores/helpers.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/**
- * Deploy boards are EE only.
- *
- * @param {Object} environment
- * @returns {Object}
- */
-// eslint-disable-next-line import/prefer-default-export
-export const setDeployBoard = (oldEnvironmentState, environment) => environment;
diff --git a/app/assets/javascripts/pages/groups/details/index.js b/app/assets/javascripts/pages/groups/details/index.js
deleted file mode 100644
index 3bcaa0f0232..00000000000
--- a/app/assets/javascripts/pages/groups/details/index.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import initGroupDetails from '../shared/group_details';
-
-document.addEventListener('DOMContentLoaded', () => {
- initGroupDetails('details');
-});
diff --git a/app/assets/javascripts/pages/groups/shared/group_details.js b/app/assets/javascripts/pages/groups/shared/group_details.js
deleted file mode 100644
index 01ef3f1db2b..00000000000
--- a/app/assets/javascripts/pages/groups/shared/group_details.js
+++ /dev/null
@@ -1,31 +0,0 @@
-/* eslint-disable no-new */
-
-import { getPagePath } from '~/lib/utils/common_utils';
-import { ACTIVE_TAB_SHARED, ACTIVE_TAB_ARCHIVED } from '~/groups/constants';
-import NewGroupChild from '~/groups/new_group_child';
-import notificationsDropdown from '~/notifications_dropdown';
-import NotificationsForm from '~/notifications_form';
-import ProjectsList from '~/projects_list';
-import ShortcutsNavigation from '~/behaviors/shortcuts/shortcuts_navigation';
-import GroupTabs from './group_tabs';
-
-export default function initGroupDetails(actionName = 'show') {
- const newGroupChildWrapper = document.querySelector('.js-new-project-subgroup');
- const loadableActions = [ACTIVE_TAB_SHARED, ACTIVE_TAB_ARCHIVED];
- const paths = window.location.pathname.split('/');
- const subpath = paths[paths.length - 1];
- let action = loadableActions.includes(subpath) ? subpath : getPagePath(1);
- if (actionName && action === actionName) {
- action = 'show'; // 'show' resets GroupTabs to default action through base class
- }
-
- new GroupTabs({ parentEl: '.groups-listing', action });
- new ShortcutsNavigation();
- new NotificationsForm();
- notificationsDropdown();
- new ProjectsList();
-
- if (newGroupChildWrapper) {
- new NewGroupChild(newGroupChildWrapper);
- }
-}
diff --git a/app/assets/javascripts/pages/groups/shared/group_tabs.js b/app/assets/javascripts/pages/groups/show/group_tabs.js
index c6fe61d2bd9..c6fe61d2bd9 100644
--- a/app/assets/javascripts/pages/groups/shared/group_tabs.js
+++ b/app/assets/javascripts/pages/groups/show/group_tabs.js
diff --git a/app/assets/javascripts/pages/groups/show/index.js b/app/assets/javascripts/pages/groups/show/index.js
index af924e74f1f..3a45fd70d02 100644
--- a/app/assets/javascripts/pages/groups/show/index.js
+++ b/app/assets/javascripts/pages/groups/show/index.js
@@ -1,5 +1,28 @@
-import initGroupDetails from '../shared/group_details';
+/* eslint-disable no-new */
+
+import { getPagePath } from '~/lib/utils/common_utils';
+import { ACTIVE_TAB_SHARED, ACTIVE_TAB_ARCHIVED } from '~/groups/constants';
+import NewGroupChild from '~/groups/new_group_child';
+import notificationsDropdown from '~/notifications_dropdown';
+import NotificationsForm from '~/notifications_form';
+import ProjectsList from '~/projects_list';
+import ShortcutsNavigation from '~/behaviors/shortcuts/shortcuts_navigation';
+import GroupTabs from './group_tabs';
document.addEventListener('DOMContentLoaded', () => {
- initGroupDetails();
+ const newGroupChildWrapper = document.querySelector('.js-new-project-subgroup');
+ const loadableActions = [ACTIVE_TAB_SHARED, ACTIVE_TAB_ARCHIVED];
+ const paths = window.location.pathname.split('/');
+ const subpath = paths[paths.length - 1];
+ const action = loadableActions.includes(subpath) ? subpath : getPagePath(1);
+
+ new GroupTabs({ parentEl: '.groups-listing', action });
+ new ShortcutsNavigation();
+ new NotificationsForm();
+ notificationsDropdown();
+ new ProjectsList();
+
+ if (newGroupChildWrapper) {
+ new NewGroupChild(newGroupChildWrapper);
+ }
});
diff --git a/app/assets/javascripts/pages/users/user_tabs.js b/app/assets/javascripts/pages/users/user_tabs.js
index 7f800d20835..636308c5401 100644
--- a/app/assets/javascripts/pages/users/user_tabs.js
+++ b/app/assets/javascripts/pages/users/user_tabs.js
@@ -91,7 +91,6 @@ export default class UserTabs {
this.actions = Object.keys(this.loaded);
this.bindEvents();
- // TODO: refactor to make this configurable via constructor params with a default value of 'show'
if (this.action === 'show') {
this.action = this.defaultAction;
}
diff --git a/app/assets/javascripts/pipelines/components/graph/stage_column_component.vue b/app/assets/javascripts/pipelines/components/graph/stage_column_component.vue
index 348c407f1b5..09a50d25020 100644
--- a/app/assets/javascripts/pipelines/components/graph/stage_column_component.vue
+++ b/app/assets/javascripts/pipelines/components/graph/stage_column_component.vue
@@ -1,6 +1,5 @@
<script>
import _ from 'underscore';
-import stageColumnMixin from 'ee_else_ce/pipelines/mixins/stage_column_mixin';
import JobItem from './job_item.vue';
import JobGroupDropdown from './job_group_dropdown.vue';
@@ -9,7 +8,6 @@ export default {
JobItem,
JobGroupDropdown,
},
- mixins: [stageColumnMixin],
props: {
title: {
type: String,
@@ -34,6 +32,9 @@ export default {
groupId(group) {
return `ci-badge-${_.escape(group.name)}`;
},
+ buildConnnectorClass(index) {
+ return index === 0 && !this.isFirstColumn ? 'left-connector' : '';
+ },
pipelineActionRequestComplete() {
this.$emit('refreshPipelineGraph');
},
diff --git a/app/assets/javascripts/pipelines/mixins/graph_pipeline_bundle_mixin.js b/app/assets/javascripts/pipelines/mixins/graph_pipeline_bundle_mixin.js
deleted file mode 100644
index 9177943f88a..00000000000
--- a/app/assets/javascripts/pipelines/mixins/graph_pipeline_bundle_mixin.js
+++ /dev/null
@@ -1,6 +0,0 @@
-export default {
- methods: {
- clickTriggeredByPipeline() {},
- clickTriggeredPipeline() {},
- },
-};
diff --git a/app/assets/javascripts/pipelines/mixins/stage_column_mixin.js b/app/assets/javascripts/pipelines/mixins/stage_column_mixin.js
deleted file mode 100644
index 64283ed0e58..00000000000
--- a/app/assets/javascripts/pipelines/mixins/stage_column_mixin.js
+++ /dev/null
@@ -1,7 +0,0 @@
-export default {
- methods: {
- buildConnnectorClass(index) {
- return index === 0 && !this.isFirstColumn ? 'left-connector' : '';
- },
- },
-};
diff --git a/app/assets/javascripts/pipelines/pipeline_details_bundle.js b/app/assets/javascripts/pipelines/pipeline_details_bundle.js
index 8adbd39edd4..dc9befe6349 100644
--- a/app/assets/javascripts/pipelines/pipeline_details_bundle.js
+++ b/app/assets/javascripts/pipelines/pipeline_details_bundle.js
@@ -2,9 +2,8 @@ import Vue from 'vue';
import Flash from '~/flash';
import Translate from '~/vue_shared/translate';
import { __ } from '~/locale';
-import pipelineGraph from 'ee_else_ce/pipelines/components/graph/graph_component.vue';
-import GraphEEMixin from 'ee_else_ce/pipelines/mixins/graph_pipeline_bundle_mixin';
import PipelinesMediator from './pipeline_details_mediator';
+import pipelineGraph from './components/graph/graph_component.vue';
import pipelineHeader from './components/header_component.vue';
import eventHub from './event_hub';
@@ -23,7 +22,6 @@ export default () => {
components: {
pipelineGraph,
},
- mixins: [GraphEEMixin],
data() {
return {
mediator,
@@ -46,10 +44,6 @@ export default () => {
},
on: {
refreshPipelineGraph: this.requestRefreshPipelineGraph,
- onClickTriggeredBy: (parentPipeline, pipeline) =>
- this.clickTriggeredByPipeline(parentPipeline, pipeline),
- onClickTriggered: (parentPipeline, pipeline) =>
- this.clickTriggeredPipeline(parentPipeline, pipeline),
},
});
},
diff --git a/app/assets/stylesheets/framework/common.scss b/app/assets/stylesheets/framework/common.scss
index d47931a49e4..aad5150c0b5 100644
--- a/app/assets/stylesheets/framework/common.scss
+++ b/app/assets/stylesheets/framework/common.scss
@@ -376,21 +376,18 @@ img.emoji {
.prepend-top-default { margin-top: $gl-padding !important; }
.prepend-top-16 { margin-top: 16px; }
.prepend-top-20 { margin-top: 20px; }
-.prepend-top-32 { margin-top: 32px; }
.prepend-left-4 { margin-left: 4px; }
.prepend-left-5 { margin-left: 5px; }
.prepend-left-8 { margin-left: 8px; }
.prepend-left-10 { margin-left: 10px; }
.prepend-left-default { margin-left: $gl-padding; }
.prepend-left-20 { margin-left: 20px; }
-.prepend-left-32 { margin-left: 32px; }
.append-right-4 { margin-right: 4px; }
.append-right-5 { margin-right: 5px; }
.append-right-8 { margin-right: 8px; }
.append-right-10 { margin-right: 10px; }
.append-right-default { margin-right: $gl-padding; }
.append-right-20 { margin-right: 20px; }
-.prepend-right-32 { margin-right: 32px; }
.append-bottom-0 { margin-bottom: 0; }
.append-bottom-4 { margin-bottom: $gl-padding-4; }
.append-bottom-5 { margin-bottom: 5px; }
@@ -399,7 +396,6 @@ img.emoji {
.append-bottom-15 { margin-bottom: 15px; }
.append-bottom-20 { margin-bottom: 20px; }
.append-bottom-default { margin-bottom: $gl-padding; }
-.prepend-bottom-32 { margin-bottom: 32px; }
.inline { display: inline-block; }
.center { text-align: center; }
.vertical-align-middle { vertical-align: middle; }
diff --git a/app/assets/stylesheets/pages/projects.scss b/app/assets/stylesheets/pages/projects.scss
index 8e53876eb4f..1349845f300 100644
--- a/app/assets/stylesheets/pages/projects.scss
+++ b/app/assets/stylesheets/pages/projects.scss
@@ -693,6 +693,10 @@
}
}
+.project-empty-note-panel {
+ border-bottom: 1px solid $border-color;
+}
+
.project-stats,
.project-buttons {
.scrolling-tabs-container {
diff --git a/app/assets/stylesheets/pages/settings.scss b/app/assets/stylesheets/pages/settings.scss
index 54126577f93..4f9d96da4bd 100644
--- a/app/assets/stylesheets/pages/settings.scss
+++ b/app/assets/stylesheets/pages/settings.scss
@@ -23,10 +23,7 @@
}
.settings {
- // border-top for each item except the top one
- + .settings {
- border-top: 1px solid $border-color;
- }
+ border-bottom: 1px solid $gray-darker;
&:first-of-type {
margin-top: 10px;
diff --git a/app/controllers/groups_controller.rb b/app/controllers/groups_controller.rb
index 0192b1c253e..4e50106398a 100644
--- a/app/controllers/groups_controller.rb
+++ b/app/controllers/groups_controller.rb
@@ -58,24 +58,11 @@ class GroupsController < Groups::ApplicationController
def show
respond_to do |format|
- format.html do
- render_show_html
- end
-
- format.atom do
- render_details_view_atom
- end
- end
- end
-
- def details
- respond_to do |format|
- format.html do
- render_details_html
- end
+ format.html
format.atom do
- render_details_view_atom
+ load_events
+ render layout: 'xml.atom'
end
end
end
@@ -132,19 +119,6 @@ class GroupsController < Groups::ApplicationController
protected
- def render_show_html
- render 'groups/show'
- end
-
- def render_details_html
- render 'groups/show'
- end
-
- def render_details_view_atom
- load_events
- render layout: 'xml.atom', template: 'groups/show'
- end
-
# rubocop: disable CodeReuse/ActiveRecord
def authorize_create_group!
allowed = if params[:parent_id].present?
@@ -204,8 +178,8 @@ class GroupsController < Groups::ApplicationController
.includes(:namespace)
@events = EventCollection
- .new(@projects, offset: params[:offset].to_i, filter: event_filter)
- .to_a
+ .new(@projects, offset: params[:offset].to_i, filter: event_filter)
+ .to_a
Events::RenderService
.new(current_user)
diff --git a/app/helpers/groups_helper.rb b/app/helpers/groups_helper.rb
index 9d028dccad7..4a9ed123161 100644
--- a/app/helpers/groups_helper.rb
+++ b/app/helpers/groups_helper.rb
@@ -4,7 +4,6 @@ module GroupsHelper
def group_overview_nav_link_paths
%w[
groups#show
- groups#details
groups#activity
groups#subgroups
analytics#show
diff --git a/app/presenters/project_presenter.rb b/app/presenters/project_presenter.rb
index 161eebcfb3f..000b7c433a2 100644
--- a/app/presenters/project_presenter.rb
+++ b/app/presenters/project_presenter.rb
@@ -42,7 +42,11 @@ class ProjectPresenter < Gitlab::View::Presenter::Delegated
def empty_repo_statistics_anchors
[
- license_anchor_data
+ license_anchor_data,
+ commits_anchor_data,
+ branches_anchor_data,
+ tags_anchor_data,
+ files_anchor_data
].compact.select { |item| item.is_link }
end
@@ -51,7 +55,9 @@ class ProjectPresenter < Gitlab::View::Presenter::Delegated
new_file_anchor_data,
readme_anchor_data,
changelog_anchor_data,
- contribution_guide_anchor_data
+ contribution_guide_anchor_data,
+ autodevops_anchor_data,
+ kubernetes_cluster_anchor_data
].compact.reject { |item| item.is_link }
end
diff --git a/app/validators/sha_validator.rb b/app/validators/sha_validator.rb
index 77e7cfa4f6b..085fca4d65d 100644
--- a/app/validators/sha_validator.rb
+++ b/app/validators/sha_validator.rb
@@ -2,7 +2,7 @@
class ShaValidator < ActiveModel::EachValidator
def validate_each(record, attribute, value)
- return if value.blank? || Commit.valid_hash?(value)
+ return if value.blank? || value.match(/\A\h{40}\z/)
record.errors.add(attribute, 'is not a valid SHA')
end
diff --git a/app/views/layouts/header/_new_dropdown.haml b/app/views/layouts/header/_new_dropdown.haml
index 438340464bd..5a66b02c048 100644
--- a/app/views/layouts/header/_new_dropdown.haml
+++ b/app/views/layouts/header/_new_dropdown.haml
@@ -38,4 +38,4 @@
%li= link_to _('New project'), new_project_path, class: 'qa-global-new-project-link'
- if current_user.can_create_group?
%li= link_to _('New group'), new_group_path
- %li= link_to _('New snippet'), new_snippet_path, class: 'qa-global-new-snippet-link'
+ %li= link_to _('New snippet'), new_snippet_path
diff --git a/app/views/layouts/nav/_dashboard.html.haml b/app/views/layouts/nav/_dashboard.html.haml
index 1ec368f8910..f659c89dd30 100644
--- a/app/views/layouts/nav/_dashboard.html.haml
+++ b/app/views/layouts/nav/_dashboard.html.haml
@@ -29,7 +29,7 @@
- if dashboard_nav_link?(:snippets)
= nav_link(controller: 'dashboard/snippets', html_options: { class: ["d-none d-xl-block", ("d-lg-block" unless has_extra_nav_icons?)] }) do
- = link_to dashboard_snippets_path, class: 'dashboard-shortcuts-snippets qa-snippets-link', title: _('Snippets') do
+ = link_to dashboard_snippets_path, class: 'dashboard-shortcuts-snippets', title: _('Snippets') do
= _('Snippets')
- if any_dashboard_nav_link?([:groups, :milestones, :activity, :snippets])
diff --git a/app/views/layouts/nav/sidebar/_group.html.haml b/app/views/layouts/nav/sidebar/_group.html.haml
index eefe86eb6b4..21ea9f3b2f3 100644
--- a/app/views/layouts/nav/sidebar/_group.html.haml
+++ b/app/views/layouts/nav/sidebar/_group.html.haml
@@ -20,14 +20,13 @@
= _('Overview')
%ul.sidebar-sub-level-items
- = nav_link(path: ['groups#show', 'groups#details', 'groups#activity', 'groups#subgroups'], html_options: { class: "fly-out-top-item" } ) do
+ = nav_link(path: ['groups#show', 'groups#activity', 'groups#subgroups'], html_options: { class: "fly-out-top-item" } ) do
= link_to group_path(@group) do
%strong.fly-out-top-item-name
= _('Overview')
%li.divider.fly-out-top-item
-
- = nav_link(path: ['groups#show', 'groups#details', 'groups#subgroups'], html_options: { class: 'home' }) do
- = link_to details_group_path(@group), title: _('Group details') do
+ = nav_link(path: ['groups#show', 'groups#subgroups'], html_options: { class: 'home' }) do
+ = link_to group_path(@group), title: _('Group details') do
%span
= _('Details')
@@ -41,9 +40,9 @@
- if group_sidebar_link?(:contribution_analytics)
= nav_link(path: 'analytics#show') do
- = link_to group_analytics_path(@group), title: _('Contribution Analytics'), data: { placement: 'right' } do
+ = link_to group_analytics_path(@group), title: 'Contribution Analytics', data: {placement: 'right'} do
%span
- = _('Contribution Analytics')
+ Contribution Analytics
= render_if_exists "layouts/nav/ee/epic_link", group: @group
diff --git a/app/views/projects/_flash_messages.html.haml b/app/views/projects/_flash_messages.html.haml
index b72f0e39b23..7a5fff96676 100644
--- a/app/views/projects/_flash_messages.html.haml
+++ b/app/views/projects/_flash_messages.html.haml
@@ -5,5 +5,4 @@
- if current_user && can?(current_user, :download_code, project)
= render 'shared/no_ssh'
= render 'shared/no_password'
- - unless project.empty_repo?
- = render 'shared/auto_devops_implicitly_enabled_banner', project: project
+ = render 'shared/auto_devops_implicitly_enabled_banner', project: project
diff --git a/app/views/projects/_home_panel.html.haml b/app/views/projects/_home_panel.html.haml
index 4ac5a74c85c..1d7287410ea 100644
--- a/app/views/projects/_home_panel.html.haml
+++ b/app/views/projects/_home_panel.html.haml
@@ -57,10 +57,7 @@
- if can?(current_user, :download_code, @project)
%nav.project-stats
.nav-links.quick-links
- - if @project.empty_repo?
- = render 'stat_anchor_list', anchors: @project.empty_repo_statistics_anchors
- - else
- = render 'stat_anchor_list', anchors: @project.statistics_anchors(show_auto_devops_callout: show_auto_devops_callout)
+ = render 'stat_anchor_list', anchors: @project.statistics_anchors(show_auto_devops_callout: show_auto_devops_callout)
.home-panel-home-desc.mt-1
- if @project.description.present?
diff --git a/app/views/projects/blob/_header_content.html.haml b/app/views/projects/blob/_header_content.html.haml
index 88fa31a73b0..4bef45932d0 100644
--- a/app/views/projects/blob/_header_content.html.haml
+++ b/app/views/projects/blob/_header_content.html.haml
@@ -1,7 +1,7 @@
.file-header-content
= blob_icon blob.mode, blob.name
- %strong.file-title-name.qa-file-title-name
+ %strong.file-title-name
= blob.name
= copy_file_path_button(blob.path)
diff --git a/app/views/projects/empty.html.haml b/app/views/projects/empty.html.haml
index 9fa31c147eb..081990ac9b7 100644
--- a/app/views/projects/empty.html.haml
+++ b/app/views/projects/empty.html.haml
@@ -7,64 +7,89 @@
%div{ class: [container_class, ("limit-container-width" unless fluid_layout)] }
= render "home_panel"
- %h4.prepend-top-0.append-bottom-8
- = _('The repository for this project is empty')
+ .project-empty-note-panel
+ %h4.append-bottom-20
+ = _('The repository for this project is empty')
- - if @project.can_current_user_push_code?
- %p.append-bottom-0
- = _('You can create files directly in GitLab using one of the following options.')
+ - if @project.can_current_user_push_code?
+ %p
+ - link_to_cli = link_to _('command line instructions'), '#repo-command-line-instructions'
+ = _('If you already have files you can push them using the %{link_to_cli} below.').html_safe % { link_to_cli: link_to_cli }
+ %p
+ %em
+ - link_to_protected_branches = link_to _('Learn more about protected branches'), help_page_path('user/project/protected_branches')
+ = _('Note that the master branch is automatically protected. %{link_to_protected_branches}').html_safe % { link_to_protected_branches: link_to_protected_branches }
- .project-buttons.qa-quick-actions
- = render 'stat_anchor_list', anchors: @project.empty_repo_statistics_buttons
+ %hr
+ %p
+ - link_to_auto_devops_settings = link_to(s_('AutoDevOps|enable Auto DevOps'), project_settings_ci_cd_path(@project, anchor: 'autodevops-settings'))
+ - link_to_add_kubernetes_cluster = link_to(s_('AutoDevOps|add a Kubernetes cluster'), new_project_cluster_path(@project))
+ = s_('AutoDevOps|You can automatically build and test your application if you %{link_to_auto_devops_settings} for this project. You can automatically deploy it as well, if you %{link_to_add_kubernetes_cluster}.').html_safe % { link_to_auto_devops_settings: link_to_auto_devops_settings, link_to_add_kubernetes_cluster: link_to_add_kubernetes_cluster }
- - if can?(current_user, :push_code, @project)
- .empty-wrapper.prepend-top-32
- %h3#repo-command-line-instructions.page-title-empty
- = _('Command line instructions')
+ %hr
%p
- = _('You can also upload existing files from your computer using the instructions below.')
- .git-empty.js-git-empty
- %fieldset
- %h5= _('Git global setup')
- %pre.bg-light
- :preserve
- git config --global user.name "#{h git_user_name}"
- git config --global user.email "#{h git_user_email}"
+ = _('Otherwise it is recommended you start with one of the options below.')
+ .prepend-top-20
+
+ %nav.project-buttons
+ .scrolling-tabs-container.inner-page-scroll-tabs.is-smaller.qa-quick-actions
+ .fade-left= icon('angle-left')
+ .fade-right= icon('angle-right')
+ .nav-links.scrolling-tabs.quick-links
+ = render 'stat_anchor_list', anchors: @project.empty_repo_statistics_buttons
+
+ - if can?(current_user, :push_code, @project)
+ %div
+ .prepend-top-20
+ .empty_wrapper
+ %h3#repo-command-line-instructions.page-title-empty
+ = _('Command line instructions')
+ .git-empty.js-git-empty
+ %fieldset
+ %h5= _('Git global setup')
+ %pre.bg-light
+ :preserve
+ git config --global user.name "#{h git_user_name}"
+ git config --global user.email "#{h git_user_email}"
+
+ %fieldset
+ %h5= _('Create a new repository')
+ %pre.bg-light
+ :preserve
+ git clone #{ content_tag(:span, default_url_to_repo, class: 'js-clone')}
+ cd #{h @project.path}
+ touch README.md
+ git add README.md
+ git commit -m "add README"
+ - if @project.can_current_user_push_to_default_branch?
+ %span><
+ git push -u origin master
- %fieldset
- %h5= _('Create a new repository')
- %pre.bg-light
- :preserve
- git clone #{ content_tag(:span, default_url_to_repo, class: 'js-clone')}
- cd #{h @project.path}
- touch README.md
- git add README.md
- git commit -m "add README"
- - if @project.can_current_user_push_to_default_branch?
- %span><
- git push -u origin master
+ %fieldset
+ %h5= _('Existing folder')
+ %pre.bg-light
+ :preserve
+ cd existing_folder
+ git init
+ git remote add origin #{ content_tag(:span, default_url_to_repo, class: 'js-clone')}
+ git add .
+ git commit -m "Initial commit"
+ - if @project.can_current_user_push_to_default_branch?
+ %span><
+ git push -u origin master
- %fieldset
- %h5= _('Push an existing folder')
- %pre.bg-light
- :preserve
- cd existing_folder
- git init
- git remote add origin #{ content_tag(:span, default_url_to_repo, class: 'js-clone')}
- git add .
- git commit -m "Initial commit"
- - if @project.can_current_user_push_to_default_branch?
- %span><
- git push -u origin master
+ %fieldset
+ %h5= _('Existing Git repository')
+ %pre.bg-light
+ :preserve
+ cd existing_repo
+ git remote rename origin old-origin
+ git remote add origin #{ content_tag(:span, default_url_to_repo, class: 'js-clone')}
+ - if @project.can_current_user_push_to_default_branch?
+ %span><
+ git push -u origin --all
+ git push -u origin --tags
- %fieldset
- %h5= _('Push an existing Git repository')
- %pre.bg-light
- :preserve
- cd existing_repo
- git remote rename origin old-origin
- git remote add origin #{ content_tag(:span, default_url_to_repo, class: 'js-clone')}
- - if @project.can_current_user_push_to_default_branch?
- %span><
- git push -u origin --all
- git push -u origin --tags
+ - if can? current_user, :remove_project, @project
+ .prepend-top-20
+ = link_to _('Remove project'), [@project.namespace.becomes(Namespace), @project], data: { confirm: remove_project_message(@project)}, method: :delete, class: "btn btn-inverted btn-remove float-right"
diff --git a/app/views/projects/settings/operations/_error_tracking.html.haml b/app/views/projects/settings/operations/_error_tracking.html.haml
index 451a79becc3..6b15331db01 100644
--- a/app/views/projects/settings/operations/_error_tracking.html.haml
+++ b/app/views/projects/settings/operations/_error_tracking.html.haml
@@ -2,7 +2,7 @@
- setting = error_tracking_setting
-%section.settings.expanded.no-animate
+%section.settings.expanded.border-0.no-animate
.settings-header
%h4
= _('Error Tracking')
diff --git a/app/views/projects/settings/operations/show.html.haml b/app/views/projects/settings/operations/show.html.haml
index 6f777305a54..2822debe426 100644
--- a/app/views/projects/settings/operations/show.html.haml
+++ b/app/views/projects/settings/operations/show.html.haml
@@ -2,6 +2,5 @@
- page_title _('Operations Settings')
- breadcrumb_title _('Operations Settings')
-= render_if_exists 'projects/settings/operations/incidents'
= render 'projects/settings/operations/error_tracking', expanded: true
= render_if_exists 'projects/settings/operations/tracing'
diff --git a/app/views/shared/_file_highlight.html.haml b/app/views/shared/_file_highlight.html.haml
index d7e57fc0d01..5073e6ad48f 100644
--- a/app/views/shared/_file_highlight.html.haml
+++ b/app/views/shared/_file_highlight.html.haml
@@ -1,4 +1,4 @@
-.file-content.code.js-syntax-highlight.qa-file-content
+.file-content.code.js-syntax-highlight
.line-numbers
- if blob.data.present?
- link_icon = icon('link')
diff --git a/app/views/shared/snippets/_form.html.haml b/app/views/shared/snippets/_form.html.haml
index 6f2ddc5bdba..3007da0c189 100644
--- a/app/views/shared/snippets/_form.html.haml
+++ b/app/views/shared/snippets/_form.html.haml
@@ -9,7 +9,7 @@
.form-group.row
= f.label :title, class: 'col-form-label col-sm-2'
.col-sm-10
- = f.text_field :title, class: 'form-control qa-snippet-title', required: true, autofocus: true
+ = f.text_field :title, class: 'form-control', required: true, autofocus: true
= render 'shared/form_elements/description', model: @snippet, project: @project, form: f
@@ -21,7 +21,7 @@
.col-sm-10
.file-holder.snippet
.js-file-title.file-title
- = f.text_field :file_name, placeholder: "Optionally name this file to add code highlighting, e.g. example.rb for Ruby.", class: 'form-control snippet-file-name qa-snippet-file-name'
+ = f.text_field :file_name, placeholder: "Optionally name this file to add code highlighting, e.g. example.rb for Ruby.", class: 'form-control snippet-file-name'
.file-content.code
%pre#editor= @snippet.content
= f.hidden_field :content, class: 'snippet-file-content'
@@ -31,7 +31,7 @@
.form-actions
- if @snippet.new_record?
- = f.submit 'Create snippet', class: "btn-success btn qa-create-snippet-button"
+ = f.submit 'Create snippet', class: "btn-success btn"
- else
= f.submit 'Save changes', class: "btn-success btn"
diff --git a/app/views/shared/snippets/_header.html.haml b/app/views/shared/snippets/_header.html.haml
index 0c07eae8643..a43296aa806 100644
--- a/app/views/shared/snippets/_header.html.haml
+++ b/app/views/shared/snippets/_header.html.haml
@@ -1,6 +1,6 @@
.detail-page-header
.detail-page-header-body
- .snippet-box.qa-snippet-box.has-tooltip.inline.append-right-5{ title: snippet_visibility_level_description(@snippet.visibility_level, @snippet), data: { container: "body" } }
+ .snippet-box.has-tooltip.inline.append-right-5{ title: snippet_visibility_level_description(@snippet.visibility_level, @snippet), data: { container: "body" } }
%span.sr-only
= visibility_level_label(@snippet.visibility_level)
= visibility_level_icon(@snippet.visibility_level, fw: false)
@@ -17,11 +17,11 @@
= render "snippets/actions"
.snippet-header.limited-header-width
- %h2.snippet-title.prepend-top-0.append-bottom-0.qa-snippet-title
+ %h2.snippet-title.prepend-top-0.append-bottom-0
= markdown_field(@snippet, :title)
- if @snippet.description.present?
- .description.qa-snippet-description
+ .description
.wiki
= markdown_field(@snippet, :description)
%textarea.hidden.js-task-list-field
@@ -34,7 +34,7 @@
.embed-snippet
.input-group
.input-group-prepend
- %button.btn.btn-svg.embed-toggle.input-group-text.qa-embed-type{ 'data-toggle': 'dropdown', type: 'button' }
+ %button.btn.btn-svg.embed-toggle.input-group-text{ 'data-toggle': 'dropdown', type: 'button' }
%span.js-embed-action= _("Embed")
= sprite_icon('angle-down', size: 12, css_class: 'caret-down')
%ul.dropdown-menu.dropdown-menu-selectable.embed-toggle-list
diff --git a/changelogs/unreleased/49863-ingress-ip-loading-state.yml b/changelogs/unreleased/49863-ingress-ip-loading-state.yml
deleted file mode 100644
index 51bb27d3153..00000000000
--- a/changelogs/unreleased/49863-ingress-ip-loading-state.yml
+++ /dev/null
@@ -1,5 +0,0 @@
----
-title: Show loading spinner while Ingress/Knative IP is being assigned
-merge_request: 25912
-author:
-type: changed
diff --git a/changelogs/unreleased/56833-project-improve-empty-repository-state-ui-fe.yml b/changelogs/unreleased/56833-project-improve-empty-repository-state-ui-fe.yml
deleted file mode 100644
index 19cf3d69db1..00000000000
--- a/changelogs/unreleased/56833-project-improve-empty-repository-state-ui-fe.yml
+++ /dev/null
@@ -1,5 +0,0 @@
----
-title: 'Project: Improve empty repository state UI'
-merge_request: 26024
-author:
-type: other
diff --git a/changelogs/unreleased/57579-gitlab-project-import-fails-sidekiq-undefined-method-import_jid.yml b/changelogs/unreleased/57579-gitlab-project-import-fails-sidekiq-undefined-method-import_jid.yml
new file mode 100644
index 00000000000..f7d6a6c4863
--- /dev/null
+++ b/changelogs/unreleased/57579-gitlab-project-import-fails-sidekiq-undefined-method-import_jid.yml
@@ -0,0 +1,5 @@
+---
+title: Fix import_jid error on project import
+merge_request: 25239
+author:
+type: fixed
diff --git a/changelogs/unreleased/58149-fix-read-list-board-policy.yml b/changelogs/unreleased/58149-fix-read-list-board-policy.yml
new file mode 100644
index 00000000000..964813f4c9a
--- /dev/null
+++ b/changelogs/unreleased/58149-fix-read-list-board-policy.yml
@@ -0,0 +1,6 @@
+---
+title: Fix error when viewing group issue boards when user doesn't have explicit group
+ permissions
+merge_request: 25524
+author:
+type: fixed
diff --git a/changelogs/unreleased/58927-jupyterhub-fails-to-install.yml b/changelogs/unreleased/58927-jupyterhub-fails-to-install.yml
new file mode 100644
index 00000000000..2502b981337
--- /dev/null
+++ b/changelogs/unreleased/58927-jupyterhub-fails-to-install.yml
@@ -0,0 +1,5 @@
+---
+title: Fixes jupyter installation randomly failing
+merge_request: 26126
+author:
+type: fixed
diff --git a/changelogs/unreleased/fj-58804-fix-bitbucket-import.yml b/changelogs/unreleased/fj-58804-fix-bitbucket-import.yml
deleted file mode 100644
index dc44c64a055..00000000000
--- a/changelogs/unreleased/fj-58804-fix-bitbucket-import.yml
+++ /dev/null
@@ -1,5 +0,0 @@
----
-title: Fix bug in BitBucket imports with SHA shorter than 40 chars
-merge_request: 26050
-author:
-type: fixed
diff --git a/changelogs/unreleased/jc-fix-set-project-writable.yml b/changelogs/unreleased/jc-fix-set-project-writable.yml
new file mode 100644
index 00000000000..0bfd90c3967
--- /dev/null
+++ b/changelogs/unreleased/jc-fix-set-project-writable.yml
@@ -0,0 +1,5 @@
+---
+title: Fix method to mark a project repository as writable
+merge_request: 25546
+author:
+type: fixed
diff --git a/changelogs/unreleased/modify_group_policy.yml b/changelogs/unreleased/modify_group_policy.yml
new file mode 100644
index 00000000000..cd9fc340faa
--- /dev/null
+++ b/changelogs/unreleased/modify_group_policy.yml
@@ -0,0 +1,5 @@
+---
+title: Allow project members to see private group if the project is in the group namespace
+merge_request:
+author:
+type: fixed
diff --git a/changelogs/unreleased/security-shared-project-private-group.yml b/changelogs/unreleased/security-shared-project-private-group.yml
new file mode 100644
index 00000000000..3b21daa5491
--- /dev/null
+++ b/changelogs/unreleased/security-shared-project-private-group.yml
@@ -0,0 +1,5 @@
+---
+title: Fixed ability to see private groups by users not belonging to given group
+merge_request:
+author:
+type: security
diff --git a/changelogs/unreleased/sh-fix-issue-58103.yml b/changelogs/unreleased/sh-fix-issue-58103.yml
new file mode 100644
index 00000000000..1599af23fed
--- /dev/null
+++ b/changelogs/unreleased/sh-fix-issue-58103.yml
@@ -0,0 +1,5 @@
+---
+title: Properly handle multiple X-Forwarded-For addresses in runner IP
+merge_request: 25511
+author:
+type: fixed
diff --git a/config/karma.config.js b/config/karma.config.js
index c30c58edc6f..1d6ff797a29 100644
--- a/config/karma.config.js
+++ b/config/karma.config.js
@@ -6,7 +6,6 @@ const argumentsParser = require('commander');
const webpackConfig = require('./webpack.config.js');
const ROOT_PATH = path.resolve(__dirname, '..');
-const SPECS_PATH = /^(?:\.[\\\/])?(ee[\\\/])?spec[\\\/]javascripts[\\\/]/;
function fatalError(message) {
console.error(chalk.red(`\nError: ${message}\n`));
@@ -42,19 +41,9 @@ const specFilters = argumentsParser
)
.parse(process.argv).filterSpec;
-const createContext = (specFiles, regex, suffix) => {
- const newContext = specFiles.reduce((context, file) => {
- const relativePath = file.replace(SPECS_PATH, '');
- context[file] = `./${relativePath}`;
- return context;
- }, {});
-
- webpackConfig.plugins.push(
- new webpack.ContextReplacementPlugin(regex, path.join(ROOT_PATH, suffix), newContext),
- );
-};
-
if (specFilters.length) {
+ const specsPath = /^(?:\.[\\\/])?spec[\\\/]javascripts[\\\/]/;
+
// resolve filters
let filteredSpecFiles = specFilters.map(filter =>
glob
@@ -75,15 +64,23 @@ if (specFilters.length) {
fatalError('Your filter did not match any test files.');
}
- if (!filteredSpecFiles.every(file => SPECS_PATH.test(file))) {
+ if (!filteredSpecFiles.every(file => specsPath.test(file))) {
fatalError('Test files must be located within /spec/javascripts.');
}
- const CE_FILES = filteredSpecFiles.filter(file => !file.startsWith('ee'));
- createContext(CE_FILES, /[^e]{2}[\\\/]spec[\\\/]javascripts$/, 'spec/javascripts');
+ const newContext = filteredSpecFiles.reduce((context, file) => {
+ const relativePath = file.replace(specsPath, '');
+ context[file] = `./${relativePath}`;
+ return context;
+ }, {});
- const EE_FILES = filteredSpecFiles.filter(file => file.startsWith('ee'));
- createContext(EE_FILES, /ee[\\\/]spec[\\\/]javascripts$/, 'ee/spec/javascripts');
+ webpackConfig.plugins.push(
+ new webpack.ContextReplacementPlugin(
+ /spec[\\\/]javascripts$/,
+ path.join(ROOT_PATH, 'spec/javascripts'),
+ newContext,
+ ),
+ );
}
// Karma configuration
@@ -114,7 +111,6 @@ module.exports = function(config) {
],
preprocessors: {
'spec/javascripts/**/*.js': ['webpack', 'sourcemap'],
- 'ee/spec/javascripts/**/*.js': ['webpack', 'sourcemap'],
},
reporters: ['mocha'],
webpack: webpackConfig,
diff --git a/config/routes/group.rb b/config/routes/group.rb
index b300fcb757f..f42c1ee6e7d 100644
--- a/config/routes/group.rb
+++ b/config/routes/group.rb
@@ -14,7 +14,6 @@ constraints(::Constraints::GroupUrlConstrainer.new) do
get :issues, as: :issues_group
get :merge_requests, as: :merge_requests_group
get :projects, as: :projects_group
- get :details, as: :details_group
get :activity, as: :activity_group
put :transfer, as: :transfer_group
# TODO: Remove as part of refactor in https://gitlab.com/gitlab-org/gitlab-ce/issues/49693
diff --git a/config/webpack.config.js b/config/webpack.config.js
index 20b3f4c0264..55122e341c3 100644
--- a/config/webpack.config.js
+++ b/config/webpack.config.js
@@ -324,10 +324,6 @@ module.exports = {
reportFilename: path.join(ROOT_PATH, 'webpack-report/index.html'),
statsFilename: path.join(ROOT_PATH, 'webpack-report/stats.json'),
}),
-
- new webpack.DefinePlugin({
- 'process.env.EE': JSON.stringify(IS_EE),
- }),
].filter(Boolean),
devServer: {
diff --git a/doc/administration/index.md b/doc/administration/index.md
index 5f368ea8d49..b723edfc78f 100644
--- a/doc/administration/index.md
+++ b/doc/administration/index.md
@@ -41,7 +41,6 @@ Learn how to install, configure, update, and maintain your GitLab instance.
- [System hooks](../system_hooks/system_hooks.md): Notifications when users, projects and keys are changed.
- [Security](../security/README.md): Learn what you can do to further secure your GitLab instance.
- [Usage statistics, version check, and usage ping](../user/admin_area/settings/usage_statistics.md): Enable or disable information about your instance to be sent to GitLab, Inc.
-- [Global user settings](user_settings.md): Configure instance-wide user permissions.
- [Polling](polling.md): Configure how often the GitLab UI polls for updates.
- [GitLab Pages configuration](pages/index.md): Enable and configure GitLab Pages.
- [GitLab Pages configuration for GitLab source installations](pages/source.md): Enable and configure GitLab Pages on
diff --git a/doc/administration/user_settings.md b/doc/administration/user_settings.md
deleted file mode 100644
index f9654655949..00000000000
--- a/doc/administration/user_settings.md
+++ /dev/null
@@ -1,35 +0,0 @@
-# Modifying global user settings
-
-GitLab administrators can modify user settings for the entire GitLab instance.
-
-## Disallow users creating top-level groups
-
-By default, new users can create top-level groups. To disable this, modify the appropriate configuration file.
-
-For Omnibus installations, add the following to `/etc/gitlab/gitlab.rb`:
-
-```ruby
-gitlab_rails['gitlab_default_can_create_group'] = false
-```
-
-For source installations, uncomment the following line in `config/gitlab.yml`:
-
-```yaml
-# default_can_create_group: false # default: true
-```
-
-## Disallow users changing usernames
-
-By default, new users can change their usernames. To disable this, modify the appropriate configuration file.
-
-For Omnibus installations, add the following to `/etc/gitlab/gitlab.rb`:
-
-```ruby
-gitlab_rails['gitlab_username_changing_enabled'] = false
-```
-
-For source installations, uncomment the following line in `config/gitlab.yml`:
-
-```yaml
-# username_changing_enabled: false # default: true - User can change her username/namespace
-```
diff --git a/doc/api/pipeline_schedules.md b/doc/api/pipeline_schedules.md
index 2e5b8df9a83..137f1fdddec 100644
--- a/doc/api/pipeline_schedules.md
+++ b/doc/api/pipeline_schedules.md
@@ -1,4 +1,4 @@
-# Pipeline schedules API
+# Pipeline schedules
You can read more about [pipeline schedules](../user/project/pipelines/schedules.md).
@@ -280,7 +280,7 @@ curl --request DELETE --header "PRIVATE-TOKEN: k5ESFgWY2Qf5xEvDcFxZ" "https://gi
## Pipeline schedule variable
-> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/34518) in GitLab 10.0.
+> [Introduced][ce-34518] in GitLab 10.0.
## Create a new pipeline schedule variable
@@ -358,3 +358,5 @@ curl --request DELETE --header "PRIVATE-TOKEN: k5ESFgWY2Qf5xEvDcFxZ" "https://gi
"value": "updated value"
}
```
+
+[ce-34518]: https://gitlab.com/gitlab-org/gitlab-ce/issues/34518 \ No newline at end of file
diff --git a/doc/api/search.md b/doc/api/search.md
index 330047e323b..aa601648b2c 100644
--- a/doc/api/search.md
+++ b/doc/api/search.md
@@ -253,7 +253,7 @@ Example response:
### Scope: snippet_blobs
```bash
-curl --request GET --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/search?scope=snippet_blobs&search=test
+curl --request GET --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/search?scope=snippet_blos&search=test
```
Example response:
diff --git a/doc/ci/README.md b/doc/ci/README.md
index 47810a8b7b6..951a773d416 100644
--- a/doc/ci/README.md
+++ b/doc/ci/README.md
@@ -45,7 +45,7 @@ into more features:
| Topic | Description |
|:--------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------|
-| [Creating and using CI/CD pipelines](pipelines.md) | Understand, visualize, create, and use CI/CD pipelines. |
+| [Introduction to pipelines and jobs](pipelines.md) | Provides an overview of GitLab CI/CD and jobs. |
| [CI/CD Variables](variables/README.md) | How environment variables can be configured and made available in pipelines. |
| [Where variables can be used](variables/where_variables_can_be_used.md) | A deeper look into where and how CI/CD variables can be used. |
| [User](../user/permissions.md#gitlab-cicd-permissions) and [job](../user/permissions.md#job-permissions) permissions | Learn about the access levels a user can have for performing certain CI actions. |
diff --git a/doc/ci/img/pipelines-goal.png b/doc/ci/img/pipelines-goal.png
new file mode 100644
index 00000000000..f15716d0b8f
--- /dev/null
+++ b/doc/ci/img/pipelines-goal.png
Binary files differ
diff --git a/doc/ci/img/types-of-pipelines.png b/doc/ci/img/types-of-pipelines.png
new file mode 100644
index 00000000000..829a53d5d52
--- /dev/null
+++ b/doc/ci/img/types-of-pipelines.png
Binary files differ
diff --git a/doc/ci/merge_request_pipelines/index.md b/doc/ci/merge_request_pipelines/index.md
index edb5f8c9ff8..2af0a03cbe4 100644
--- a/doc/ci/merge_request_pipelines/index.md
+++ b/doc/ci/merge_request_pipelines/index.md
@@ -9,18 +9,13 @@ For example, unit tests, lint checks, and [Review Apps](../review_apps/index.md)
are often used in this cycle.
With pipelines for merge requests, you can design a specific pipeline structure
-for merge requests.
-
-## Configuring pipelines for merge requests
-
-To configure pipelines for merge request, add the `only: merge_requests` parameter to
-the jobs that you want it to run only for merge requests.
-
-Then, when developers create or update merge requests, a pipeline runs on
+for merge requests. All you need to do is just adding `only: [merge_requests]` to
+the jobs that you want it to run for only merge requests.
+Every time, when developers create or update merge requests, a pipeline runs on
their new commits at every push to GitLab.
NOTE: **Note**:
-If you use this feature with [merge when pipeline succeeds](../../user/project/merge_requests/merge_when_pipeline_succeeds.md),
+If you use both this feature and [Merge When Pipeline Succeeds](../../user/project/merge_requests/merge_when_pipeline_succeeds.md),
pipelines for merge requests take precedence over the other regular pipelines.
For example, consider the following [`.gitlab-ci.yml`](../yaml/README.md):
@@ -45,17 +40,15 @@ deploy:
script: ./deploy
```
-After the merge request is updated with new commits:
-
-- GitLab detects that changes have occurred and creates a new pipeline for the merge request.
-- The pipeline fetches the latest code from the source branch and run tests against it.
-
+After the merge request is updated with new commits, GitLab detects that changes
+have occurred and creates a new pipeline for the merge request.
+The pipeline fetches the latest code from the source branch and run tests against it.
In the above example, the pipeline contains only `build` and `test` jobs.
-Since the `deploy` job doesn't have the `only: merge_requests` rule,
+Since the `deploy` job doesn't have the `only: [merge_requests]` rule,
deployment jobs will not happen in the merge request.
-Pipelines tagged with **merge request** badge indicate that they were triggered
-when a merge request was created or updated. For example:
+Pipelines tagged as **merge request** indicate that they were triggered
+when a merge request was created or updated.
![Merge request page](img/merge_request.png)
@@ -69,14 +62,9 @@ The behavior of the `only: merge_requests` rule is such that _only_ jobs with
that rule are run in the context of a merge request; no other jobs will be run.
However, you may want to reverse this behaviour, having all of your jobs to run _except_
-for one or two.
-
-Consider the following pipeline, with jobs `A`, `B`, and `C`. Imagine you want:
-
-- All pipelines to always run `A` and `B`
-- Only want `C` to run for a merge request,
-
-To achieve this, you can configure your `.gitlab-ci.yml` file as follows:
+for one or two. Consider the following pipeline, with jobs `A`, `B`, and `C`. If you want
+all pipelines to always run `A` and `B`, but only want `C` to run for a merge request,
+you can configure your `.gitlab-ci.yml` file as follows:
``` yaml
.only-default: &only-default
@@ -102,11 +90,9 @@ C:
- merge_requests
```
-Because:
-
-- `A` and `B` are getting the `only:` rule to execute in all cases, they will always run.
-- `C` specifies that it should only run for merge requests, it will not run for any pipeline
- except a merge request pipeline.
+Since `A` and `B` are getting the `only:` rule to execute in all cases, they will
+always run. `C` specifies that it should only run for merge requests, so for any
+pipeline except a merge request pipeline, it will not run.
As you can see, this will help you avoid a lot of boilerplate where you'd need
to add that `only:` rule to all of your jobs in order to make them always run. You
diff --git a/doc/ci/pipelines.md b/doc/ci/pipelines.md
index a77389332c4..4f3106c6dc6 100644
--- a/doc/ci/pipelines.md
+++ b/doc/ci/pipelines.md
@@ -1,331 +1,271 @@
-# Creating and using CI/CD pipelines
+# Introduction to pipelines and jobs
> Introduced in GitLab 8.8.
-## Introduction
-
-Pipelines are the top-level component of continuous integration, deployment, and delivery.
-
-Pipelines comprise:
-
-- Jobs that define what to run. For example, code compilation or test runs.
-- Stages that define when and how to run. For example, that test run after code compilation.
-
-Jobs in a stage are executed by [Runners](runners/README.md) in parallel, if there are enough concurrent [Runners](runners/README.md).
-
-If the jobs in a stage:
-
-- Succeed, the pipeline moves on to the next stage.
-- Fail, the next stage is not (usually) executed.
-
NOTE: **Note:**
If you have a [mirrored repository where GitLab pulls from](https://docs.gitlab.com/ee/workflow/repository_mirroring.html#pulling-from-a-remote-repository-starter),
you may need to enable pipeline triggering in your project's
**Settings > Repository > Pull from a remote repository > Trigger pipelines for mirror updates**.
-### Simple example
+## Pipelines
-As an example, imagine a pipeline consisting of four stages, executed in the following order:
+A pipeline is a group of [jobs] that get executed in [stages].
+All of the jobs in a stage are executed in parallel (if there are enough
+concurrent [Runners]), and if they all succeed, the pipeline moves on to the
+next stage. If one of the jobs fails, the next stage is not (usually)
+executed. You can access the pipelines page in your project's **Pipelines** tab.
-- `build`, with a job called `compile`.
-- `test`, with two jobs called `test` and `test2`.
-- `staging`, with a job called `deploy-to-stage`.
-- `production`, with a job called `deploy-to-prod`.
+In the following image you can see that the pipeline consists of four stages
+(`build`, `test`, `staging`, `production`) each one having one or more jobs.
-## Visualizing pipelines
+>**Note:**
+GitLab capitalizes the stages' names when shown in the [pipeline graphs](#pipeline-graphs).
-> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5742) in GitLab 8.11.
+![Pipelines example](img/pipelines.png)
-Pipelines can be complex structures with many sequential and parallel jobs.
+## Types of pipelines
-To make it easier to understand the flow of a pipeline, GitLab has pipeline graphs for viewing pipeline
-and their statuses.
+There are three types of pipelines that often use the single shorthand of "pipeline". People often talk about them as if each one is "the" pipeline, but really, they're just pieces of a single, comprehensive pipeline.
-Pipeline graphs can be displayed in two different ways, depending on what page you
-access the graph.
+![Types of Pipelines](img/types-of-pipelines.png)
-NOTE: **Note:**
-GitLab capitalizes the stages' names when shown in the [pipeline graphs](#pipeline-graphs).
+1. **CI Pipeline**: Build and test stages defined in `.gitlab-ci.yml`.
+1. **Deploy Pipeline**: Deploy stage(s) defined in `.gitlab-ci.yml` The flow of deploying code to servers through various stages: e.g. development to staging to production.
+1. **Project Pipeline**: Cross-project CI dependencies [triggered via API][triggers], particularly for micro-services, but also for complicated build dependencies: e.g. api -> front-end, ce/ee -> omnibus.
-### Regular pipeline graphs
+## Development workflows
-Regular pipeline graphs that show the names of the jobs of each stage. Regular pipeline graphs can
-be found when you are on a [single pipeline page](#seeing-pipeline-status). For example:
+Pipelines accommodate several development workflows:
-![Pipelines example](img/pipelines.png)
+1. **Branch Flow** (e.g. different branch for dev, qa, staging, production).
+1. **Trunk-based Flow** (e.g. feature branches and single master branch, possibly with tags for releases).
+1. **Fork-based Flow** (e.g. merge requests come from forks).
-### Pipeline mini graphs
+Example continuous delivery flow:
-Pipeline mini graphs takes less space and can give you a
-quick glance if all jobs pass or something failed. The pipeline mini graph can
-be found when you navigate to:
+![CD Flow](img/pipelines-goal.png)
-- The pipelines index page.
-- A single commit page.
-- A merge request page.
+## Jobs
-Pipeline mini graphs allow you to see all related jobs for a single commit and the net result
-of each stage of your pipeline. This allows you to quickly see what failed and
-fix it.
+Jobs can be defined in the [`.gitlab-ci.yml`][jobs-yaml] file. Not to be
+confused with a `build` job or `build` stage.
-Stages in pipeline mini graphs are collapsible. Hover your mouse over them and click to expand their jobs.
+## Defining pipelines
-| Mini graph | Mini graph expanded |
-|:-------------------------------------------------------------|:---------------------------------------------------------------|
-| ![Pipelines mini graph](img/pipelines_mini_graph_simple.png) | ![Pipelines mini graph extended](img/pipelines_mini_graph.png) |
+Pipelines are defined in `.gitlab-ci.yml` by specifying [jobs] that run in
+[stages].
-### Job ordering in pipeline graphs
+See the reference [documentation for jobs](yaml/README.md#jobs).
-Job ordering depends on the type of pipeline graph. For [regular pipeline graphs](#regular-pipeline-graphs), jobs are sorted by name.
+## Manually executing pipelines
-For [pipeline mini graphs](#pipeline-mini-graphs) ([introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9760)
-in GitLab 9.0), jobs are sorted by severity and then by name.
+Pipelines can be manually executed, with predefined or manually-specified [variables](variables/README.md).
-The order of severity is:
+To execute a pipeline manually:
-- failed
-- warning
-- pending
-- running
-- manual
-- scheduled
-- canceled
-- success
-- skipped
-- created
+1. Navigate to your project's **CI/CD > Pipelines**.
+1. Click on the **Run Pipeline** button.
+1. Select the branch to run the pipeline for and enter any environment variables required for the pipeline run.
-For example:
+## Seeing pipeline status
-![Pipeline mini graph sorting](img/pipelines_mini_graph_sorting.png)
+You can find the current and historical pipeline runs under your project's
+**Pipelines** tab. Clicking on a pipeline will show the jobs that were run for
+that pipeline.
-### How pipeline duration is calculated
+![Pipelines index page](img/pipelines_index.png)
-Total running time for a given pipeline excludes retries and pending
-(queue) time.
+## Seeing job status
-Each job is represented as a `Period`, which consists of:
+When you visit a single pipeline you can see the related jobs for that pipeline.
+Clicking on an individual job will show you its job trace, and allow you to
+cancel the job, retry it, or erase the job trace.
-- `Period#first` (when the job started).
-- `Period#last` (when the job finished).
+![Pipelines example](img/pipelines.png)
-A simple example is:
+## Seeing the failure reason for jobs
-- A (1, 3)
-- B (2, 4)
-- C (6, 7)
+> [Introduced][ce-17782] in GitLab 10.7.
-In the example:
+When a pipeline fails or is allowed to fail, there are several places where you
+can quickly check the reason it failed:
-- A begins at 1 and ends at 3.
-- B begins at 2 and ends at 4.
-- C begins at 6 and ends at 7.
+- **In the pipeline graph** present on the pipeline detail view.
+- **In the pipeline widgets** present in the merge requests and commit pages.
+- **In the job views** present in the global and detailed views of a job.
-Visually it can be viewed as:
+In any case, if you hover over the failed job you can see the reason it failed.
-```text
-0 1 2 3 4 5 6 7
- AAAAAAA
- BBBBBBB
- CCCC
-```
+![Pipeline detail](img/job_failure_reason.png)
-The union of A, B, and C is (1, 4) and (6, 7). Therefore, the total running time is:
+From [GitLab 10.8][ce-17814] you can also see the reason it failed on the Job detail page.
-```text
-(4 - 1) + (7 - 6) => 4
-```
+## Pipeline graphs
-## Configuring pipelines
+> [Introduced][ce-5742] in GitLab 8.11.
+
+Pipelines can be complex structures with many sequential and parallel jobs.
+To make it a little easier to see what is going on, you can view a graph
+of a single pipeline and its status.
-Pipelines, and their component jobs and stages, are defined in the [`.gitlab-ci.yml`](yaml/README.md) file for each project.
+A pipeline graph can be shown in two different ways depending on what page you
+are on.
-In particular:
+---
-- Jobs are the [basic configuration](yaml/README.html#introduction) component.
-- Stages are defined using the [`stages`](yaml/README.html#stages) keyword.
+The regular pipeline graph that shows the names of the jobs of each stage can
+be found when you are on a [single pipeline page](#seeing-pipeline-status).
-For all available configuration options, see [GitLab CI/CD Pipeline Configuration Reference](yaml/README.md).
+![Pipelines example](img/pipelines.png)
-### Settings and schedules
+Then, there is the pipeline mini graph which takes less space and can give you a
+quick glance if all jobs pass or something failed. The pipeline mini graph can
+be found when you visit:
-In addition to configuring jobs through `.gitlab-ci.yml`, additional configuration options are available
-through the GitLab UI:
+- The pipelines index page.
+- A single commit page.
+- A merge request page.
-- Pipeline settings for each project. For more information, see [Pipeline settings](../user/project/pipelines/settings.md).
-- Schedules for pipelines. For more information, see [Pipeline schedules](../user/project/pipelines/schedules.md).
+That way, you can see all related jobs for a single commit and the net result
+of each stage of your pipeline. This allows you to quickly see what failed and
+fix it. Stages in pipeline mini graphs are collapsible. Hover your mouse over
+them and click to expand their jobs.
-### Grouping jobs
+| **Mini graph** | **Mini graph expanded** |
+| :------------: | :---------------------: |
+| ![Pipelines mini graph](img/pipelines_mini_graph_simple.png) | ![Pipelines mini graph extended](img/pipelines_mini_graph.png) |
-> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/6242) in GitLab 8.12.
+### Grouping similar jobs in the pipeline graph
-If you have many similar jobs, your [pipeline graph](#visualizing-pipelines) becomes long and hard
-to read.
+> [Introduced][ce-6242] in GitLab 8.12.
-For that reason, similar jobs can automatically be grouped together.
+If you have many similar jobs, your pipeline graph becomes very long and hard
+to read. For that reason, similar jobs can automatically be grouped together.
If the job names are formatted in certain ways, they will be collapsed into
a single group in regular pipeline graphs (not the mini graphs).
-
You'll know when a pipeline has grouped jobs if you don't see the retry or
cancel button inside them. Hovering over them will show the number of grouped
jobs. Click to expand them.
![Grouped pipelines](img/pipelines_grouped.png)
-#### Configuring grouping
-
-In the pipeline [configuration file](yaml/README.md), job names must include two numbers separated with one of
+The basic requirements is that there are two numbers separated with one of
the following (you can even use them interchangeably):
-- A space.
-- A slash (`/`).
-- A colon (`:`).
-
-NOTE: **Note:**
-More specifically, it uses [this](https://gitlab.com/gitlab-org/gitlab-ce/blob/2f3dc314f42dbd79813e6251792853bc231e69dd/app/models/commit_status.rb#L99) regular expression: `\d+[\s:\/\\]+\d+\s*`.
+- A space (` `)
+- A slash (`/`)
+- A colon (`:`)
-#### How grouping works
+>**Note:**
+More specifically, [it uses][regexp] this regular expression: `\d+[\s:\/\\]+\d+\s*`.
The jobs will be ordered by comparing those two numbers from left to right. You
usually want the first to be the index and the second the total.
For example, the following jobs will be grouped under a job named `test`:
-- `test 0 3`
-- `test 1 3`
-- `test 2 3`
+- `test 0 3` => `test`
+- `test 1 3` => `test`
+- `test 2 3` => `test`
The following jobs will be grouped under a job named `test ruby`:
-- `test 1:2 ruby`
-- `test 2:2 ruby`
+- `test 1:2 ruby` => `test ruby`
+- `test 2:2 ruby` => `test ruby`
The following jobs will be grouped under a job named `test ruby` as well:
-- `1/3 test ruby`
-- `2/3 test ruby`
-- `3/3 test ruby`
-
-### Pipelines for merge requests
+- `1/3 test ruby` => `test ruby`
+- `2/3 test ruby` => `test ruby`
+- `3/3 test ruby` => `test ruby`
-GitLab supports configuring pipelines that run only for merge requests. For more information, see
-[Pipelines for merge requests](merge_request_pipelines/index.md).
+### Manual actions from the pipeline graph
-### Badges
+> [Introduced][ce-7931] in GitLab 8.15.
-Pipeline status and test coverage report badges are available and configurable for each project.
+[Manual actions][manual] allow you to require manual interaction before moving
+forward with a particular job in CI. Your entire pipeline can run automatically,
+but the actual [deploy to production][env-manual] will require a click.
-For information on adding pipeline badges to project, see [Pipeline badges](../user/project/pipelines/settings.md#pipeline-badges).
-
-## Multi-project pipelines **[PREMIUM]**
-
-Pipelines for different projects can be combined and visualized together.
-
-For more information, see [Multi-project pipelines](https://docs.gitlab.com/ee/ci/multi_project_pipelines.html).
-
-## Working with pipelines
-
-Generally, pipelines are executed automatically and require no intervention once created.
-
-However, there are instances where you'll need to interact with pipelines. These are documented below.
-
-### Manually executing pipelines
-
-Pipelines can be manually executed, with predefined or manually-specified [variables](variables/README.md).
-
-You might do this if the results of a pipeline (for example, a code build) is required outside the normal
-operation of the pipeline.
-
-To execute a pipeline manually:
-
-1. Navigate to your project's **CI/CD > Pipelines**.
-1. Click on the **Run Pipeline** button.
-1. On the **Run Pipeline** page:
- 1. Select the branch to run the pipeline for in the **Create for** field.
- 1. Enter any [environment variables](variables/README.md) required for the pipeline run.
- 1. Click the **Create pipeline** button.
-
-The pipeline will execute the jobs as configured.
-
-### Accessing pipelines
-
-You can find the current and historical pipeline runs under your project's
-**CI/CD > Pipelines** page. Clicking on a pipeline will show the jobs that were run for
-that pipeline.
-
-![Pipelines index page](img/pipelines_index.png)
-
-You can also access pipelines for a merge request by navigating to its **Pipelines** tab.
-
-### Accessing individual jobs
-
-When you access a pipeline, you can see the related jobs for that pipeline.
-
-Clicking on an individual job will show you its job trace, and allow you to:
-
-- Cancel the job.
-- Retry the job.
-- Erase the job trace.
+You can do this straight from the pipeline graph. Just click on the play button
+to execute that particular job. For example, in the image below, the `production`
+stage has a job with a manual action.
-### Seeing the failure reason for jobs
+![Pipelines example](img/pipelines.png)
-> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/17782) in GitLab 10.7.
+### Delay a particular job in the pipeline graph
-When a pipeline fails or is allowed to fail, there are several places where you
-can quickly check the reason it failed:
+> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/21767) in GitLab 11.4.
-- In the pipeline graph, on the pipeline detail view.
-- In the pipeline widgets, in the merge requests and commit pages.
-- In the job views, in the global and detailed views of a job.
+When you do not want to run a job immediately, you can [delay the job to run after a certain period](yaml/README.md#whendelayed).
+This is especially useful for timed incremental rollout that new code is rolled out gradually.
+For example, if you start rolling out new code and users do not experience trouble, GitLab automatically completes the deployment from 0% to 100%.
+Alternatively, if you start rolling out and you noticed that a few users experience trouble with the version,
+you can stop the timed incremental rollout by canceling the pipeline, and [rolling](environments.md#rolling-back-changes) it back to the stable version.
-In any case, if you hover over the failed job you can see the reason it failed.
+![Pipelines example](img/pipeline_incremental_rollout.png)
-![Pipeline detail](img/job_failure_reason.png)
+### Ordering of jobs in pipeline graphs
-From [GitLab 10.8](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/17814),
-you can also see the reason it failed on the Job detail page.
+**Regular pipeline graph**
-### Manual actions from pipeline graphs
+In the single pipeline page, jobs are sorted by name.
-> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7931) in GitLab 8.15.
+**Mini pipeline graph**
-Manual actions, configured using the [`when:manual`](yaml/README.md#whenmanual) parameter,
-allow you to require manual interaction before moving forward in the pipeline.
+> [Introduced][ce-9760] in GitLab 9.0.
-You can do this straight from the pipeline graph. Just click on the play button
-to execute that particular job.
+In the pipeline mini graphs, the jobs are sorted first by severity and then
+by name. The order of severity is:
-For example, your entire pipeline could run automatically, but require manual action to
-[deploy to production](environments.md#manually-deploying-to-environments). Below, the `production`
-stage has a job with a manual action.
+- failed
+- warning
+- pending
+- running
+- manual
+- scheduled
+- canceled
+- success
+- skipped
+- created
-![Pipelines example](img/pipelines.png)
+![Pipeline mini graph sorting](img/pipelines_mini_graph_sorting.png)
-### Delay a job in a pipeline graph
+## How the pipeline duration is calculated
-> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/21767) in GitLab 11.4.
+Total running time for a given pipeline would exclude retries and pending
+(queue) time. We could reduce this problem down to finding the union of
+periods.
-When you do not want to run a job immediately, you can use the [`when:deplayed`](yaml/README.md#whendelayed) parameter to
-delay a job's execution for a certain period.
+So each job would be represented as a `Period`, which consists of
+`Period#first` as when the job started and `Period#last` as when the
+job was finished. A simple example here would be:
-This is especially useful for timed incremental rollout where new code is rolled out gradually.
+- A (1, 3)
+- B (2, 4)
+- C (6, 7)
-For example, if you start rolling out new code and users:
+Here A begins from 1, and ends to 3. B begins from 2, and ends to 4.
+C begins from 6, and ends to 7. Visually it could be viewed as:
-- Do not experience trouble, GitLab can automatically complete the deployment from 0% to 100%.
-- Experience trouble with the new code, you can stop the timed incremental rollout by canceling the pipeline
- and [rolling](environments.md#rolling-back-changes) back to last stable version.
+```
+0 1 2 3 4 5 6 7
+ AAAAAAA
+ BBBBBBB
+ CCCC
+```
-![Pipelines example](img/pipeline_incremental_rollout.png)
+The union of A, B, and C would be (1, 4) and (6, 7), therefore the
+total running time should be:
-### Using the API
+```
+(4 - 1) + (7 - 6) => 4
+```
-GitLab provides API endpoints to:
+## Badges
-- Perform basic functions. For more information, see [Pipelines API](../api/pipelines.md).
-- Maintain pipeline schedules. For more information, see [Pipeline schedules API](../api/pipeline_schedules.md).
-- Trigger pipeline runs. For more information, see:
- - [Triggering pipelines through the API](triggers/README.md).
- - [Pipeline triggers API](../api/pipeline_triggers.md).
+Pipeline status and test coverage report badges are available. You can find their
+respective link in the [Pipelines settings] page.
## Security on protected branches
@@ -336,11 +276,11 @@ The following actions are allowed on protected branches only if the user is
[allowed to merge or push](../user/project/protected_branches.md#using-the-allowed-to-merge-and-allowed-to-push-settings)
on that specific branch:
-- Run manual pipelines (using [Web UI](#manually-executing-pipelines) or pipelines API).
-- Run scheduled pipelines.
-- Run pipelines using triggers.
-- Trigger manual actions on existing pipelines.
-- Retry/cancel existing jobs (using Web UI or pipelines API).
+- Run **manual pipelines** (using [Web UI](#manually-executing-pipelines) or Pipelines API).
+- Run **scheduled pipelines**.
+- Run pipelines using **triggers**.
+- Trigger **manual actions** on existing pipelines.
+- **Retry/cancel** existing jobs (using Web UI or Pipelines API).
**Variables** marked as **protected** are accessible only to jobs that
run on protected branches, avoiding untrusted users to get unintended access to
@@ -351,3 +291,19 @@ branches, avoiding untrusted code to be executed on the protected runner and
preserving deployment keys and other credentials from being unintentionally
accessed. In order to ensure that jobs intended to be executed on protected
runners will not use regular runners, they must be tagged accordingly.
+
+[jobs]: #jobs
+[jobs-yaml]: yaml/README.md#jobs
+[manual]: yaml/README.md#whenmanual
+[env-manual]: environments.md#manually-deploying-to-environments
+[stages]: yaml/README.md#stages
+[runners]: runners/README.html
+[pipelines settings]: ../user/project/pipelines/settings.md
+[triggers]: triggers/README.md
+[ce-5742]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5742
+[ce-6242]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/6242
+[ce-7931]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7931
+[ce-9760]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9760
+[ce-17782]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/17782
+[ce-17814]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/17814
+[regexp]: https://gitlab.com/gitlab-org/gitlab-ce/blob/2f3dc314f42dbd79813e6251792853bc231e69dd/app/models/commit_status.rb#L99
diff --git a/doc/development/documentation/styleguide.md b/doc/development/documentation/styleguide.md
index c0386290785..0c51d3832aa 100644
--- a/doc/development/documentation/styleguide.md
+++ b/doc/development/documentation/styleguide.md
@@ -80,10 +80,11 @@ yield a useful result, and ensuring content is helpful and easy to consume.
## Text
-- Splitting long lines (preferably up to 100 characters) can make it easier to provide feedback on small chunks of text.
-- Insert an empty line for new paragraphs.
+- Split up long lines (wrap text), this makes it much easier to review and edit. Only
+ double line breaks are shown as a full line break by creating new paragraphs.
+ 80-100 characters is the recommended line length.
- Use sentence case for titles, headings, labels, menu items, and buttons.
-- Insert an empty line between different markups (e.g., after every paragraph, header, list, etc). Example:
+- Jump a line between different markups (e.g., after every paragraph, header, list, etc). Example:
```md
## Header
diff --git a/doc/development/testing_guide/end_to_end_tests.md b/doc/development/testing_guide/end_to_end_tests.md
index daa0714aec3..a239dc84a1c 100644
--- a/doc/development/testing_guide/end_to_end_tests.md
+++ b/doc/development/testing_guide/end_to_end_tests.md
@@ -25,10 +25,10 @@ You can find these nightly pipelines at [gitlab-org/quality/staging/pipelines][q
### Testing code in merge requests
-It is possible to run end-to-end tests for a merge request, eventually being run in
-a pipeline in the [`gitlab-qa`](https://gitlab.com/gitlab-org/gitlab-qa/) project,
-by triggering the `package-and-qa` manual action in the `test` stage (which should
-be present in a merge request widget, unless the merge request comes from a fork).
+It is possible to run end-to-end tests (eventually being run within a
+[GitLab QA pipeline][gitlab-qa-pipelines]) for a merge request by triggering
+the `package-and-qa` manual action in the `test` stage, that should be present
+in a merge request widget (unless the merge request is from a fork).
Manual action that starts end-to-end tests is also available in merge requests
in [Omnibus GitLab][omnibus-gitlab].
@@ -81,6 +81,7 @@ you can find an issue you would like to work on in
[omnibus-gitlab]: https://gitlab.com/gitlab-org/omnibus-gitlab
[gitlab-qa]: https://gitlab.com/gitlab-org/gitlab-qa
[gitlab-qa-readme]: https://gitlab.com/gitlab-org/gitlab-qa/tree/master/README.md
+[gitlab-qa-pipelines]: https://gitlab.com/gitlab-org/gitlab-qa/pipelines
[quality-nightly-pipelines]: https://gitlab.com/gitlab-org/quality/nightly/pipelines
[quality-staging-pipelines]: https://gitlab.com/gitlab-org/quality/staging/pipelines
[gitlab-qa-architecture]: https://gitlab.com/gitlab-org/gitlab-qa/blob/master/docs/architecture.md
diff --git a/doc/gitlab-basics/create-your-ssh-keys.md b/doc/gitlab-basics/create-your-ssh-keys.md
index 8fecdc6948e..da7853d7d34 100644
--- a/doc/gitlab-basics/create-your-ssh-keys.md
+++ b/doc/gitlab-basics/create-your-ssh-keys.md
@@ -1,22 +1,35 @@
-# How to create your SSH keys
+# How to create your SSH Keys
-This topic describes how to create SSH keys. You do this to use Git over SSH instead of Git over HTTP.
+1. Go to your [command line](start-using-git.md) and follow the [instructions](../ssh/README.md) to generate your SSH key pair.
-## Creating your SSH keys
+1. Log in to GitLab with your credentials.
+1. In the upper-right corner, click your avatar and then click **Settings**.
+
+ ![Profile settings dropdown](img/profile_settings.png)
+
+1. Navigate to the **SSH keys** tab.
+
+ ![SSH Keys](img/profile_settings_ssh_keys.png)
+
+1. Paste your **public** key that you generated in the first step in the 'Key'
+ box.
+
+ ![Paste SSH public key](img/profile_settings_ssh_keys_paste_pub.png)
-1. Go to your [command line](start-using-git.md) and follow the [instructions](../ssh/README.md) to generate your SSH key pair.
-1. Log in to GitLab.
-1. In the upper-right corner, click your avatar and select **Settings**.
-1. On the **User Settings** menu, select **SSH keys**.
-1. Paste the **public** key generated in the first step in the **Key**
- text field.
1. Optionally, give it a descriptive title so that you can recognize it in the
event you add multiple keys.
-1. Finally, click the **Add key** button to add it to GitLab. You will be able to see
+
+ ![SSH key title](img/profile_settings_ssh_keys_title.png)
+
+1. Finally, click **Add key** to add it to GitLab. You will be able to see
its fingerprint, title, and creation date.
![SSH key single page](img/profile_settings_ssh_keys_single_key.png)
-NOTE: **Note:**
-Once you add a key, you cannot edit it. If the paste
-didn't work, you need to remove the offending key and re-add it.
+>**Note:**
+Once you add a key, you cannot edit it, only remove it. In case the paste
+didn't work, you will have to remove the offending key and re-add it.
+
+---
+
+Congratulations! You are now ready to use Git over SSH, instead of Git over HTTP!
diff --git a/doc/gitlab-basics/img/profile_settings.png b/doc/gitlab-basics/img/profile_settings.png
new file mode 100644
index 00000000000..b91b698fb18
--- /dev/null
+++ b/doc/gitlab-basics/img/profile_settings.png
Binary files differ
diff --git a/doc/gitlab-basics/img/profile_settings_ssh_keys.png b/doc/gitlab-basics/img/profile_settings_ssh_keys.png
new file mode 100644
index 00000000000..8ac603a2af9
--- /dev/null
+++ b/doc/gitlab-basics/img/profile_settings_ssh_keys.png
Binary files differ
diff --git a/doc/gitlab-basics/img/profile_settings_ssh_keys_paste_pub.png b/doc/gitlab-basics/img/profile_settings_ssh_keys_paste_pub.png
new file mode 100644
index 00000000000..0b1c64a72f3
--- /dev/null
+++ b/doc/gitlab-basics/img/profile_settings_ssh_keys_paste_pub.png
Binary files differ
diff --git a/doc/gitlab-basics/img/profile_settings_ssh_keys_title.png b/doc/gitlab-basics/img/profile_settings_ssh_keys_title.png
new file mode 100644
index 00000000000..02ca0bf7478
--- /dev/null
+++ b/doc/gitlab-basics/img/profile_settings_ssh_keys_title.png
Binary files differ
diff --git a/doc/user/permissions.md b/doc/user/permissions.md
index 9db1e43fdf2..833b9b66102 100644
--- a/doc/user/permissions.md
+++ b/doc/user/permissions.md
@@ -23,12 +23,6 @@ To add or import a user, you can follow the
See our [product handbook on permissions](https://about.gitlab.com/handbook/product#permissions-in-gitlab)
-## Instance-wide user permissions
-
-By default, users can create top-level groups and change their
-usernames. A GitLab administrator can configure the GitLab instance to
-[modify this behavior](../administration/user_settings.md).
-
## Project members permissions
NOTE: **Note:**
diff --git a/doc/user/profile/img/personal_access_tokens.png b/doc/user/profile/img/personal_access_tokens.png
new file mode 100644
index 00000000000..d29f4cb0a20
--- /dev/null
+++ b/doc/user/profile/img/personal_access_tokens.png
Binary files differ
diff --git a/doc/user/profile/personal_access_tokens.md b/doc/user/profile/personal_access_tokens.md
index 3a4d09c35d9..7d55048c994 100644
--- a/doc/user/profile/personal_access_tokens.md
+++ b/doc/user/profile/personal_access_tokens.md
@@ -20,19 +20,21 @@ at midnight UTC.
You can create as many personal access tokens as you like from your GitLab
profile.
-1. Log in to GitLab.
-1. In the upper-right corner, click your avatar and select **Settings**.
-1. On the **User Settings** menu, select **Access Tokens**.
-1. Choose a name and optional expiry date for the token.
+1. Log in to your GitLab account.
+1. Go to your **Profile settings**.
+1. Go to **Access tokens**.
+1. Choose a name and optionally an expiry date for the token.
1. Choose the [desired scopes](#limiting-scopes-of-a-personal-access-token).
-1. Click the **Create personal access token** button.
+1. Click on **Create personal access token**.
1. Save the personal access token somewhere safe. Once you leave or refresh
the page, you won't be able to access it again.
-### Revoking a personal access token
+![Personal access tokens page](img/personal_access_tokens.png)
-At any time, you can revoke any personal access token by clicking the
-respective **Revoke** button under the **Active Personal Access Token** area.
+## Revoking a personal access token
+
+At any time, you can revoke any personal access token by just clicking the
+respective **Revoke** button under the 'Active personal access tokens' area.
## Limiting scopes of a personal access token
diff --git a/doc/user/project/badges.md b/doc/user/project/badges.md
index 025f3af0af5..19eb95099ce 100644
--- a/doc/user/project/badges.md
+++ b/doc/user/project/badges.md
@@ -63,12 +63,6 @@ are available:
- `%{commit_sha}`: ID of the most recent commit to the default branch of a
project's repository
-NOTE: **NOTE**
-Placeholders allow badges to expose otherwise-private information, such as the
-default branch or commit SHA when the project is configured to have a private
-repository. This is by design, as badges are intended to be used publicly. Avoid
-using these placeholders if the information is sensitive.
-
## API
You can also configure badges via the GitLab API. As in the settings, there is
diff --git a/doc/user/project/merge_requests/merge_when_pipeline_succeeds.md b/doc/user/project/merge_requests/merge_when_pipeline_succeeds.md
index f8af71ab46b..bdd7d0022e6 100644
--- a/doc/user/project/merge_requests/merge_when_pipeline_succeeds.md
+++ b/doc/user/project/merge_requests/merge_when_pipeline_succeeds.md
@@ -1,4 +1,4 @@
-# Merge when pipeline succeeds
+# Merge When Pipeline Succeeds
When reviewing a merge request that looks ready to merge but still has one or
more CI jobs running, you can set it to be merged automatically when the
diff --git a/lib/gitlab/database.rb b/lib/gitlab/database.rb
index e2637ad602a..b6ca777e029 100644
--- a/lib/gitlab/database.rb
+++ b/lib/gitlab/database.rb
@@ -76,7 +76,7 @@ module Gitlab
postgresql? && version.to_f >= 9.4
end
- def self.postgresql_minimum_supported_version?
+ def self.pg_stat_wal_receiver_supported?
postgresql? && version.to_f >= 9.6
end
@@ -98,10 +98,6 @@ module Gitlab
Gitlab::Database.postgresql_9_or_less? ? 'pg_last_xlog_replay_location' : 'pg_last_wal_replay_lsn'
end
- def self.pg_last_xact_replay_timestamp
- 'pg_last_xact_replay_timestamp'
- end
-
def self.nulls_last_order(field, direction = 'ASC')
order = "#{field} #{direction}"
diff --git a/locale/gitlab.pot b/locale/gitlab.pot
index 5b192f4ccbc..29cbf59cee2 100644
--- a/locale/gitlab.pot
+++ b/locale/gitlab.pot
@@ -966,6 +966,15 @@ msgstr ""
msgid "AutoDevOps|The Auto DevOps pipeline has been enabled and will be used if no alternative CI configuration file is found. %{more_information_link}"
msgstr ""
+msgid "AutoDevOps|You can automatically build and test your application if you %{link_to_auto_devops_settings} for this project. You can automatically deploy it as well, if you %{link_to_add_kubernetes_cluster}."
+msgstr ""
+
+msgid "AutoDevOps|add a Kubernetes cluster"
+msgstr ""
+
+msgid "AutoDevOps|enable Auto DevOps"
+msgstr ""
+
msgid "Automatically marked as default internal user"
msgstr ""
@@ -2306,9 +2315,6 @@ msgstr ""
msgid "Contribution"
msgstr ""
-msgid "Contribution Analytics"
-msgstr ""
-
msgid "Contribution Charts"
msgstr ""
@@ -3367,6 +3373,12 @@ msgstr ""
msgid "Except policy:"
msgstr ""
+msgid "Existing Git repository"
+msgstr ""
+
+msgid "Existing folder"
+msgstr ""
+
msgid "Existing members and groups"
msgstr ""
@@ -4061,6 +4073,9 @@ msgstr ""
msgid "If enabled"
msgstr ""
+msgid "If you already have files you can push them using the %{link_to_cli} below."
+msgstr ""
+
msgid "If your HTTP repository is not publicly accessible, add authentication information to the URL: <code>https://username:password@gitlab.company.com/group/project.git</code>."
msgstr ""
@@ -4525,6 +4540,9 @@ msgstr ""
msgid "Learn more about Kubernetes"
msgstr ""
+msgid "Learn more about protected branches"
+msgstr ""
+
msgid "Learn more about signing commits"
msgstr ""
@@ -5192,6 +5210,9 @@ msgstr ""
msgid "Not started"
msgstr ""
+msgid "Note that the master branch is automatically protected. %{link_to_protected_branches}"
+msgstr ""
+
msgid "Note that this invitation was sent to %{mail_to_invite_email}, but you are signed in as %{link_to_current_user} with email %{mail_to_current_user}."
msgstr ""
@@ -5383,6 +5404,9 @@ msgstr ""
msgid "Other Labels"
msgstr ""
+msgid "Otherwise it is recommended you start with one of the options below."
+msgstr ""
+
msgid "Outbound requests"
msgstr ""
@@ -6241,12 +6265,6 @@ msgstr ""
msgid "Push"
msgstr ""
-msgid "Push an existing Git repository"
-msgstr ""
-
-msgid "Push an existing folder"
-msgstr ""
-
msgid "Push events"
msgstr ""
@@ -8750,12 +8768,6 @@ msgstr ""
msgid "You can also star a label to make it a priority label."
msgstr ""
-msgid "You can also upload existing files from your computer using the instructions below."
-msgstr ""
-
-msgid "You can create files directly in GitLab using one of the following options."
-msgstr ""
-
msgid "You can easily contribute to them by requesting to join these groups."
msgstr ""
@@ -8960,6 +8972,9 @@ msgstr ""
msgid "branch name"
msgstr ""
+msgid "command line instructions"
+msgstr ""
+
msgid "commented on %{link_to_project}"
msgstr ""
diff --git a/locale/uk/gitlab.po b/locale/uk/gitlab.po
index 86b7048ad3d..67d9a556621 100644
--- a/locale/uk/gitlab.po
+++ b/locale/uk/gitlab.po
@@ -13,7 +13,7 @@ msgstr ""
"X-Crowdin-Project: gitlab-ee\n"
"X-Crowdin-Language: uk\n"
"X-Crowdin-File: /master/locale/gitlab.pot\n"
-"PO-Revision-Date: 2019-03-14 07:35\n"
+"PO-Revision-Date: 2019-02-11 08:11\n"
msgid " Status"
msgstr " СтатуÑ"
@@ -36,24 +36,17 @@ msgstr[2] " покращилоÑÑ Ð½Ð° %d одиниць"
msgstr[3] " покращилоÑÑ Ð½Ð° %d одиниць"
msgid " or "
-msgstr " або "
+msgstr ""
msgid " or <#epic id>"
-msgstr " або <#epic id>"
+msgstr ""
msgid " or <#issue id>"
-msgstr " або <#issue id>"
+msgstr ""
msgid "\"%{query}\" in projects"
msgstr "\"%{query}\" в проектах"
-msgid "%d comment"
-msgid_plural "%d comments"
-msgstr[0] "%d коментар"
-msgstr[1] "%d коментарі"
-msgstr[2] "%d коментарів"
-msgstr[3] "%d коментарів"
-
msgid "%d commit"
msgid_plural "%d commits"
msgstr[0] "%d коміт"
@@ -69,7 +62,7 @@ msgstr[2] "%d комітів позаду"
msgstr[3] "%d комітів позаду"
msgid "%d commits"
-msgstr "%d комітів"
+msgstr ""
msgid "%d exporter"
msgid_plural "%d exporters"
@@ -101,10 +94,10 @@ msgstr[3] "%d задач"
msgid "%d issue selected"
msgid_plural "%d issues selected"
-msgstr[0] "%d вибрана задача"
-msgstr[1] "%d вибрані задачі"
-msgstr[2] "%d вибраних задач"
-msgstr[3] "%d вибраних задач"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
msgid "%d layer"
msgid_plural "%d layers"
@@ -163,28 +156,12 @@ msgstr "%{counter_storage} (%{counter_repositories} репозиторій, %{co
msgid "%{count} %{alerts}"
msgstr "%{count} %{alerts}"
-msgid "%{count} approval required from %{name}"
-msgid_plural "%{count} approvals required from %{name}"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
-msgid "%{count} approvals from %{name}"
-msgstr ""
-
msgid "%{count} more"
-msgstr "%{count} більше"
+msgstr ""
msgid "%{count} more assignees"
msgstr "%{count} більше виконавців"
-msgid "%{count} of %{required} approvals from %{name}"
-msgstr ""
-
-msgid "%{count} of %{total}"
-msgstr "%{count} з %{total}"
-
msgid "%{count} participant"
msgid_plural "%{count} participants"
msgstr[0] "%{count} учаÑтник"
@@ -205,17 +182,17 @@ msgstr "%{filePath} видалено"
msgid "%{firstLabel} +%{labelCount} more"
msgstr "%{firstLabel} +%{labelCount} більше"
+msgid "%{firstOption} +%{extraOptionCount} more"
+msgstr ""
+
msgid "%{group_docs_link_start}Groups%{group_docs_link_end} allow you to manage and collaborate across multiple projects. Members of a group have access to all of its projects."
msgstr "%{group_docs_link_start}Групи%{group_docs_link_end} дозволÑÑŽÑ‚ÑŒ вам керувати Ñ– взаємодіÑти між кількома проектами. Члени групи мають доÑтуп до уÑÑ–Ñ… Ñ—Ñ— проектів."
msgid "%{issuableType} will be removed! Are you sure?"
msgstr "%{issuableType} буде видалено! Ви впевнені?"
-msgid "%{label_for_message} unavailable"
-msgstr ""
-
msgid "%{link_start}Read more%{link_end} about role permissions"
-msgstr "%{link_start}Читати більше%{link_end} про дозволи ролей"
+msgstr ""
msgid "%{loadingIcon} Started"
msgstr "%{loadingIcon} Початок"
@@ -236,31 +213,31 @@ msgid "%{percent}%% complete"
msgstr "%{percent}%% завершено"
msgid "%{state} epics"
-msgstr "%{state} епіки"
+msgstr ""
msgid "%{strong_start}%{branch_count}%{strong_end} Branch"
msgid_plural "%{strong_start}%{branch_count}%{strong_end} Branches"
-msgstr[0] "%{strong_start}%{branch_count}%{strong_end} Гілка"
-msgstr[1] "%{strong_start}%{branch_count}%{strong_end} Гілки"
-msgstr[2] "%{strong_start}%{branch_count}%{strong_end} Гілок"
-msgstr[3] "%{strong_start}%{branch_count}%{strong_end} Гілок"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
msgid "%{strong_start}%{commit_count}%{strong_end} Commit"
msgid_plural "%{strong_start}%{commit_count}%{strong_end} Commits"
-msgstr[0] "%{strong_start}%{commit_count}%{strong_end} Коміт"
-msgstr[1] "%{strong_start}%{commit_count}%{strong_end} Коміти"
-msgstr[2] "%{strong_start}%{commit_count}%{strong_end} Комітів"
-msgstr[3] "%{strong_start}%{commit_count}%{strong_end} Комітів"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
msgid "%{strong_start}%{human_size}%{strong_end} Files"
-msgstr "%{strong_start}%{human_size}%{strong_end} Файлів"
+msgstr ""
msgid "%{strong_start}%{tag_count}%{strong_end} Tag"
msgid_plural "%{strong_start}%{tag_count}%{strong_end} Tags"
-msgstr[0] "%{strong_start}%{tag_count}%{strong_end} Тег"
-msgstr[1] "%{strong_start}%{tag_count}%{strong_end} Теги"
-msgstr[2] "%{strong_start}%{tag_count}%{strong_end} Тегів"
-msgstr[3] "%{strong_start}%{tag_count}%{strong_end} Тегів"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
msgid "%{text} %{files}"
msgid_plural "%{text} %{files} files"
@@ -282,10 +259,10 @@ msgid "%{usage_ping_link_start}Learn more%{usage_ping_link_end} about what infor
msgstr "%{usage_ping_link_start}ДовідатиÑÑŒ більше%{usage_ping_link_end} про те, Ñкою інформацією Ви ділитеÑÑŒ із GitLab Inc."
msgid "%{user_name} profile page"
-msgstr "%{user_name} Ñторінка профілю"
+msgstr ""
msgid "(external source)"
-msgstr "(зовнішнє джерело)"
+msgstr ""
msgid "+ %{count} more"
msgstr "+ ще %{count}"
@@ -293,11 +270,8 @@ msgstr "+ ще %{count}"
msgid "+ %{moreCount} more"
msgstr "+ ще %{moreCount}"
-msgid "+%{extraOptionCount} more"
-msgstr "+%{extraOptionCount} більше"
-
msgid ", or "
-msgstr ", або "
+msgstr ""
msgid "- Runner is active and can process any new jobs"
msgstr "- Runner активний Ñ– може виконувати нові завданнÑ"
@@ -322,13 +296,6 @@ msgstr[1] "%{count} %{type} зміни"
msgstr[2] "%{count} %{type} змін"
msgstr[3] "%{count} %{type} змін"
-msgid "1 Day"
-msgid_plural "%d Days"
-msgstr[0] "1 день"
-msgstr[1] "%d дні"
-msgstr[2] "%d днів"
-msgstr[3] "%d днів"
-
msgid "1 closed issue"
msgid_plural "%d closed issues"
msgstr[0] "1 закрита задача"
@@ -396,13 +363,13 @@ msgid "1st contribution!"
msgstr "Перший внеÑок!"
msgid "2FA"
-msgstr "двофакторна автентифікаціÑ"
+msgstr ""
msgid "2FA enabled"
-msgstr "Двофакторна Ð°Ð²Ñ‚ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð°"
+msgstr "Двоетапна Ð°ÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð°"
msgid "403|Please contact your GitLab administrator to get permission."
-msgstr "Будь лаÑка, звернітьÑÑ Ð´Ð¾ адмініÑтратора GitLab, щоб отримати дозвіл."
+msgstr ""
msgid "403|You don't have the permission to access this page."
msgstr "У Ð²Ð°Ñ Ð½ÐµÐ¼Ð°Ñ” доÑтупу до цієї Ñторінки."
@@ -444,26 +411,11 @@ msgid "<strong>%{pushes}</strong> pushes, more than <strong>%{commits}</strong>
msgstr "<strong>%{pushes}</strong> відправок (push), більше ніж <strong>%{commits}</strong> зафікÑовано<strong>%{people}</strong> учаÑниками."
msgid "<strong>Deletes</strong> source branch"
-msgstr "<strong>ВидалÑÑ”</strong> гілку-джерело"
+msgstr ""
msgid "A 'Runner' is a process which runs a job. You can set up as many Runners as you need."
msgstr "'Runner' — це процеÑ, Ñкий виконує завданнÑ. Ви можете Ñтворити потрібну кількіÑÑ‚ÑŒ Runner'ів."
-msgid "A .NET Core console application template, customizable for any .NET Core project"
-msgstr ""
-
-msgid "A GitBook site that uses Netlify for CI/CD instead of GitLab, but still with all the other great GitLab features."
-msgstr ""
-
-msgid "A Hexo site that uses Netlify for CI/CD instead of GitLab, but still with all the other great GitLab features."
-msgstr ""
-
-msgid "A Hugo site that uses Netlify for CI/CD instead of GitLab, but still with all the other great GitLab features."
-msgstr ""
-
-msgid "A Jekyll site that uses Netlify for CI/CD instead of GitLab, but still with all the other great GitLab features."
-msgstr ""
-
msgid "A collection of graphs regarding Continuous Integration"
msgstr "Ðабір графіків відноÑно безперервної інтеграції"
@@ -479,18 +431,9 @@ msgstr "УчаÑник команди GitLab по боротьбі з поруш
msgid "A new branch will be created in your fork and a new merge request will be started."
msgstr "У вашому форку буде Ñтворено нову гілку, а також буде ініційований новий запит на злиттÑ."
-msgid "A plain HTML site that uses Netlify for CI/CD instead of GitLab, but still with all the other great GitLab features."
-msgstr ""
-
msgid "A project is where you house your files (repository), plan your work (issues), and publish your documentation (wiki), %{among_other_things_link}."
msgstr "Проект — це міÑце де ви можете розміщувати Ñвої файли (репозиторій), планувати роботу (задачі) Ñ– публікувати документацію (вікі), %{among_other_things_link}."
-msgid "A ready-to-go template for use with Android apps."
-msgstr ""
-
-msgid "A ready-to-go template for use with iOS Swift apps."
-msgstr ""
-
msgid "A regular expression that will be used to find the test coverage output in the job trace. Leave blank to disable"
msgstr "РегулÑрний вираз, Ñкий буде викориÑтовуватиÑÑ Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ результатів Ð¿Ð¾ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ñ‚ÐµÑтами в завданні. Залиште пуÑтим Ð´Ð»Ñ Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð½Ñ"
@@ -516,7 +459,7 @@ msgid "Abuse reports"
msgstr "Звіти про зловживаннÑ"
msgid "Accept invitation"
-msgstr "ПрийнÑти запрошеннÑ"
+msgstr ""
msgid "Accept terms"
msgstr "ПрийнÑти умови"
@@ -555,68 +498,41 @@ msgid "Add"
msgstr "Додати"
msgid "Add CHANGELOG"
-msgstr "Додати ÑпиÑок змін (CHANGELOG)"
+msgstr ""
msgid "Add CONTRIBUTING"
-msgstr "Додати CONTRIBUTING"
+msgstr ""
msgid "Add Group Webhooks and GitLab Enterprise Edition."
msgstr "Додайте групові веб-гуки та GitLab Enterprise Edition."
msgid "Add Jaeger URL"
-msgstr "Додати URL-адреÑу Jaeger"
+msgstr "Додати URL-Ð°Ð´Ñ€ÐµÑ Jaeger"
msgid "Add Kubernetes cluster"
msgstr "Додати Kubernetes-клаÑтер"
msgid "Add README"
-msgstr "Додати інÑтрукцію (README)"
-
-msgid "Add a bullet list"
-msgstr "Додати ненумерований ÑпиÑок"
+msgstr ""
msgid "Add a general comment to this %{noteable_name}."
-msgstr "Додайте загальний коментар до цього %{noteable_name}."
+msgstr ""
msgid "Add a homepage to your wiki that contains information about your project and GitLab will display it here instead of this message."
msgstr "Додати домашню Ñторінку в вікі, Ñка міÑтить інформацію про ваш проект, Ñ– GitLab відображатиме його тут заміÑÑ‚ÑŒ цього повідомленнÑ."
-msgid "Add a link"
-msgstr "Додати поÑиланнÑ"
-
-msgid "Add a numbered list"
-msgstr "Додати нумерований ÑпиÑок"
-
msgid "Add a table"
msgstr "Додати таблицю"
-msgid "Add a task list"
-msgstr "Додати ÑпиÑок завдань"
-
msgid "Add additional text to appear in all email communications. %{character_limit} character limit"
msgstr "Створіть додатковий текÑÑ‚, Ñкий буде приÑутній у вÑÑ–Ñ… повідомленнÑÑ… електронної пошти. МакÑимальна кількіÑÑ‚ÑŒ Ñимволів — %{character_limit}"
-msgid "Add approver(s)"
-msgstr "Додати затверджуючих оÑіб"
-
-msgid "Add approvers"
-msgstr "Додати затверджуючих оÑіб"
-
-msgid "Add bold text"
-msgstr "Додати жирний текÑÑ‚"
-
msgid "Add comment now"
msgstr "Додати коментар"
-msgid "Add header and footer to emails. Please note that color settings will only be applied within the application interface"
-msgstr ""
-
msgid "Add image comment"
msgstr "Додати коментар до зображеннÑ"
-msgid "Add italic text"
-msgstr "Додати курÑивний текÑÑ‚"
-
msgid "Add license"
msgstr "Додати ліцензію"
@@ -633,26 +549,23 @@ msgid "Add reaction"
msgstr "Додати реакцію"
msgid "Add to project"
-msgstr "Додати до проекту"
+msgstr ""
msgid "Add to review"
msgstr "Додати до перевірки"
msgid "Add todo"
-msgstr "Додати нагадуваннÑ"
+msgstr "Додати задачу"
msgid "Add user(s) to the group:"
msgstr "Додати кориÑтувачів до групу:"
msgid "Add users or groups who are allowed to approve every merge request"
-msgstr "Додайте кориÑтувачів або групи, Ñким дозволено затверджувати будь-Ñкий запит на злиттÑ"
+msgstr ""
msgid "Add users to group"
msgstr "Додати кориÑтувача до групи"
-msgid "Added at"
-msgstr ""
-
msgid "Adding new applications is disabled in your GitLab instance. Please contact your GitLab administrator to get the permission"
msgstr "Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¸Ñ… проектів Ð´Ð»Ñ Ð²Ð°ÑˆÐ¾Ð³Ð¾ інÑтанÑу GitLab заборонено. ЗвернітьÑÑ Ð´Ð¾ Ñвого адмініÑтратора GitLab, щоб отримати дозвіл"
@@ -699,40 +612,40 @@ msgid "AdminProjects|Delete project"
msgstr "Видалити проект"
msgid "AdminSettings|Auto DevOps domain"
-msgstr "Домен Auto DevOps"
+msgstr ""
msgid "AdminSettings|Environment variables are protected by default"
-msgstr "Змінні Ñередовища Ñ” захищеними за замовчуваннÑм"
+msgstr ""
msgid "AdminSettings|Specify a domain to use by default for every project's Auto Review Apps and Auto Deploy stages."
msgstr "Вкажіть домен, Ñкий буде викориÑтовуватиÑÑ Ð² проекті за замовчуваннÑм Ð´Ð»Ñ Ñтадій Auto Review Apps Ñ– Auto Deploy."
msgid "AdminSettings|When creating a new environment variable it will be protected by default."
-msgstr "При Ñтворенні нової змінної Ñередовища вона буде захищена за замовчуваннÑм."
+msgstr ""
msgid "AdminUsers|2FA Disabled"
-msgstr "2FA вимкнено"
+msgstr ""
msgid "AdminUsers|2FA Enabled"
-msgstr "2FA увімкнено"
+msgstr ""
msgid "AdminUsers|Active"
-msgstr "Ðктивні"
+msgstr ""
msgid "AdminUsers|Admin"
-msgstr "ÐдмініÑтратор"
+msgstr ""
msgid "AdminUsers|Admins"
-msgstr "ÐдмініÑтратори"
+msgstr ""
msgid "AdminUsers|Block user"
msgstr "Заблоквати кориÑтувача"
msgid "AdminUsers|Blocked"
-msgstr "Заблоковано"
+msgstr ""
msgid "AdminUsers|Cannot unblock LDAP blocked users"
-msgstr "Ðеможливо розблокувати кориÑтувачів заблокованих в LDAP"
+msgstr ""
msgid "AdminUsers|Delete User %{username} and contributions?"
msgstr "Видалити кориÑтувача %{username} та його внеÑки?"
@@ -747,28 +660,28 @@ msgid "AdminUsers|Delete user and contributions"
msgstr "Видалити кориÑтувача Ñ– його внеÑки"
msgid "AdminUsers|External"
-msgstr "Зовнішні"
+msgstr ""
msgid "AdminUsers|It's you!"
-msgstr "Це ви!"
+msgstr ""
msgid "AdminUsers|New user"
-msgstr "Ðовий кориÑтувач"
+msgstr ""
msgid "AdminUsers|No users found"
-msgstr "КориÑтувачів не знайдено"
+msgstr ""
msgid "AdminUsers|Search by name, email or username"
-msgstr "Шукати за іменем, електронною поштою або іменем кориÑтувача"
+msgstr ""
msgid "AdminUsers|Search users"
-msgstr "Пошук кориÑтувачів"
+msgstr ""
msgid "AdminUsers|Send email to users"
-msgstr "Відправити Ð¿Ð¾Ð²Ñ–Ð´Ð¼Ð¾Ð»ÐµÐ½Ð½Ñ ÐµÐ»ÐµÐºÑ‚Ñ€Ð¾Ð½Ð½Ð¾Ñ— пошти кориÑтувачам"
+msgstr ""
msgid "AdminUsers|Sort by"
-msgstr "Сортувати за"
+msgstr ""
msgid "AdminUsers|To confirm, type %{projectName}"
msgstr "Ð”Ð»Ñ Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ð²Ð²ÐµÐ´Ñ–Ñ‚ÑŒ %{projectName}"
@@ -777,12 +690,9 @@ msgid "AdminUsers|To confirm, type %{username}"
msgstr "Ð”Ð»Ñ Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ð²Ð²ÐµÐ´Ñ–Ñ‚ÑŒ %{username}"
msgid "AdminUsers|User will be blocked"
-msgstr "КориÑтувач буде заблокований"
+msgstr ""
msgid "AdminUsers|Without projects"
-msgstr "Без проектів"
-
-msgid "Advanced"
msgstr ""
msgid "Advanced permissions, Large File Storage and Two-Factor authentication settings."
@@ -791,9 +701,6 @@ msgstr "Додаткові дозволи, Ñховище великих файÐ
msgid "Advanced settings"
msgstr "Додаткові параметри"
-msgid "After a successful password update you will be redirected to login screen."
-msgstr ""
-
msgid "Alert"
msgid_plural "Alerts"
msgstr[0] "ПопередженнÑ"
@@ -802,14 +709,11 @@ msgstr[2] "Попереджень"
msgstr[3] "Попереджень"
msgid "Alerts"
-msgstr "ПопередженнÑ"
+msgstr ""
msgid "All"
msgstr "Ð’ÑÑ–"
-msgid "All Members"
-msgstr "Ð’ÑÑ– учаÑники"
-
msgid "All changes are committed"
msgstr "Ð’ÑÑ– зміни закомічені"
@@ -817,7 +721,7 @@ msgid "All features are enabled for blank projects, from templates, or when impo
msgstr "Ð’ÑÑ– функції Ð´Ð»Ñ Ð½Ð¾Ð²Ð¸Ñ… проектів берутьÑÑ Ñ–Ð· шаблонів або під Ñ‡Ð°Ñ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ, але ви можете вимикати Ñ—Ñ… пізніше в налаштуваннÑÑ… проекту."
msgid "All issues for this milestone are closed. You may close this milestone now."
-msgstr "Ð’ÑÑ– задачі Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ етапу закриті. Ви можете закрити цей етап."
+msgstr ""
msgid "All users"
msgstr "Ð’ÑÑ– кориÑтувачі"
@@ -840,9 +744,6 @@ msgstr "Дозволити Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð´Ñ–Ð°Ð³Ñ€Ð°Ð¼ PlantUML в Ð
msgid "Allow requests to the local network from hooks and services."
msgstr "Дозволити запити до локальної мережі із гуків та ÑервіÑів."
-msgid "Allow this key to push to repository as well? (Default only allows pull access.)"
-msgstr ""
-
msgid "Allow users to request access"
msgstr "Дозволити кориÑтувачам запитувати доÑтуп"
@@ -882,6 +783,9 @@ msgstr "Порожнє поле Gitlab-кориÑтувача буде запоÐ
msgid "An error has occurred"
msgstr "ТрапилаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°"
+msgid "An error occured while fetching the releases. Please try again."
+msgstr ""
+
msgid "An error occurred adding a draft to the discussion."
msgstr "Виникла помилка під Ñ‡Ð°Ñ Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ñ‡ÐµÑ€Ð½ÐµÑ‚ÐºÐ¸ до обговореннÑ."
@@ -889,15 +793,6 @@ msgid "An error occurred adding a new draft."
msgstr "Виникла помилка під Ñ‡Ð°Ñ Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¾Ñ— чернетки."
msgid "An error occurred creating the new branch."
-msgstr "Помилка при Ñтворенні нової гілки."
-
-msgid "An error occurred fetching the approval rules."
-msgstr ""
-
-msgid "An error occurred fetching the approvers for the new rule."
-msgstr "Помилка при отриманні затверджуючих оÑіб Ð´Ð»Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ правила."
-
-msgid "An error occurred fetching the dropdown data."
msgstr ""
msgid "An error occurred previewing the blob"
@@ -910,10 +805,7 @@ msgid "An error occurred when updating the issue weight"
msgstr "Збій під Ñ‡Ð°Ñ Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð²Ð°Ð³Ð¸ задачі"
msgid "An error occurred while adding approver"
-msgstr "Помилка при додаванні затверджуючої оÑоби"
-
-msgid "An error occurred while deleting the approvers group"
-msgstr "Помилка при видаленні групи затверджуючих оÑіб"
+msgstr "Помилка при додаванні учаÑника Ð´Ð»Ñ Ð·Ð°Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ"
msgid "An error occurred while deleting the comment"
msgstr "СталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° під Ñ‡Ð°Ñ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ ÐºÐ¾Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ñ"
@@ -951,9 +843,6 @@ msgstr "Помилка при отриманні завдань."
msgid "An error occurred while fetching the pipeline."
msgstr "Помилка при отриманні данних конвеєра."
-msgid "An error occurred while fetching the releases. Please try again."
-msgstr ""
-
msgid "An error occurred while getting projects"
msgstr "СталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° при отриманні проектів"
@@ -969,9 +858,6 @@ msgstr "Виникла помилка під Ñ‡Ð°Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð´Ð
msgid "An error occurred while loading commit signatures"
msgstr "ТрапилаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° при завантаженні Ñигнатур коміту"
-msgid "An error occurred while loading designs. Please try again."
-msgstr ""
-
msgid "An error occurred while loading diff"
msgstr "Помилка при завантаженні разниці (diff)"
@@ -982,19 +868,19 @@ msgid "An error occurred while loading the file"
msgstr "Помилка при завантаженні файлу"
msgid "An error occurred while loading the subscription details."
-msgstr "Помилка при завантаженні даних підпиÑки."
+msgstr ""
msgid "An error occurred while making the request."
msgstr "Помилка при Ñтворенні запиту."
msgid "An error occurred while removing approver"
-msgstr "Помилка при видаленні затверджуючої оÑоби"
+msgstr "Помилка при видаленні учаÑника Ð´Ð»Ñ Ð·Ð°Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ"
msgid "An error occurred while removing epics."
-msgstr "Помилка при видаленні епіків."
+msgstr ""
msgid "An error occurred while removing issues."
-msgstr "Помилка при видаленні задач."
+msgstr ""
msgid "An error occurred while rendering KaTeX"
msgstr "СталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° при рендерингу KaTeX"
@@ -1014,18 +900,12 @@ msgstr "Помилка при збереженні ÑтатуÑу перевиз
msgid "An error occurred while saving assignees"
msgstr "Помилка при збереженні виконавців"
-msgid "An error occurred while saving the approval settings"
-msgstr ""
-
msgid "An error occurred while subscribing to notifications."
msgstr "Помилка при підпиÑці на ÑповіщеннÑ."
msgid "An error occurred while unsubscribing to notifications."
msgstr "Помилка при відпиÑці від Ñповіщень."
-msgid "An error occurred while updating approvers"
-msgstr "Помилка при оновленні затверджуючих оÑіб"
-
msgid "An error occurred while updating the comment"
msgstr "Під Ñ‡Ð°Ñ Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ ÐºÐ¾Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ñ ÑталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°"
@@ -1033,59 +913,56 @@ msgid "An error occurred while validating username"
msgstr "СталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° під Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ¸ імені кориÑтувача"
msgid "An error occurred whilst committing your changes."
-msgstr "Помилка при коміті ваших змін."
+msgstr ""
msgid "An error occurred whilst fetching the job trace."
-msgstr "Помилка при отриманні логу завданнÑ."
+msgstr ""
msgid "An error occurred whilst fetching the latest pipeline."
-msgstr "Помилка при отриманні оÑтаннього конвеєра."
+msgstr ""
msgid "An error occurred whilst loading all the files."
-msgstr "Помилка при завантаженні вÑÑ–Ñ… файлів."
+msgstr ""
msgid "An error occurred whilst loading the file content."
-msgstr "Помилка при завантаженні вміÑту файлу."
+msgstr ""
msgid "An error occurred whilst loading the file."
-msgstr "Помилка при завантаженні файлу."
+msgstr ""
msgid "An error occurred whilst loading the merge request changes."
-msgstr "Помилка при завантаженні змін запиту на злиттÑ."
+msgstr ""
msgid "An error occurred whilst loading the merge request version data."
-msgstr "Помилка при завантаженні даних верÑÑ–Ñ— запиту на злиттÑ."
+msgstr ""
msgid "An error occurred whilst loading the merge request."
-msgstr "Помилка при завантаженні запиту на злиттÑ."
+msgstr ""
msgid "An error occurred whilst loading the pipelines jobs."
-msgstr "Помилка при завантаженні завдань конвеєру."
+msgstr ""
msgid "An error occurred. Please try again."
msgstr "СталаÑÑŒ помилка. Спробуйте ще раз."
msgid "An unexpected error occurred while checking the project environment."
-msgstr "Ðеочікувана помилка при перевірці Ñередовища проекту."
+msgstr ""
msgid "An unexpected error occurred while checking the project runners."
-msgstr "Ðеочікувана помилка при перевірці runner'ів проекту."
+msgstr ""
msgid "An unexpected error occurred while communicating with the Web Terminal."
-msgstr "Ðеочікувана помилка з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ñ–Ð· Веб-терміналом."
+msgstr ""
msgid "An unexpected error occurred while starting the Web Terminal."
-msgstr "Ðеочікувана помилка при запуÑку Веб-терміналу."
+msgstr ""
msgid "An unexpected error occurred while stopping the Web Terminal."
-msgstr "Ðеочікувана помилка при зупинці Веб-терміналу."
+msgstr ""
msgid "Analytics"
msgstr "Ðналітика"
-msgid "Ancestors"
-msgstr ""
-
msgid "Anonymous"
msgstr "Ðнонімно"
@@ -1114,65 +991,19 @@ msgid "Applications"
msgstr "ЗаÑтоÑунки"
msgid "Applied"
-msgstr "ЗаÑтоÑовано"
-
-msgid "Apply suggestion"
-msgstr "ЗаÑтоÑувати пропозицію"
-
-msgid "ApprovalRuleRemove|%d member"
-msgid_plural "ApprovalRuleRemove|%d members"
-msgstr[0] "%d учаÑник"
-msgstr[1] "%d учаÑника"
-msgstr[2] "%d учаÑників"
-msgstr[3] "%d учаÑників"
-
-msgid "ApprovalRuleRemove|Approvals from this member are not revoked."
-msgid_plural "ApprovalRuleRemove|Approvals from these members are not revoked."
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
-msgid "ApprovalRuleRemove|You are about to remove the %{name} approver group which has %{nMembers}."
-msgstr "Ви збираєтеÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ групу затверджуючих оÑіб %{name} Ñка налічує %{nMembers} учаÑників."
-
-msgid "ApprovalRuleSummary|%d member"
-msgid_plural "ApprovalRuleSummary|%d members"
-msgstr[0] "%d учаÑник"
-msgstr[1] "%d учаÑника"
-msgstr[2] "%d учаÑників"
-msgstr[3] "%d учаÑників"
-
-msgid "ApprovalRuleSummary|%{count} approval required from %{membersCount}"
-msgid_plural "ApprovalRuleSummary|%{count} approvals required from %{membersCount}"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
-msgid "ApprovalRule|All members with Developer role or higher and code owners (if any)"
msgstr ""
-msgid "ApprovalRule|Members"
-msgstr "УчаÑники"
-
-msgid "ApprovalRule|Name"
-msgstr "Ім'Ñ"
-
-msgid "ApprovalRule|No. approvals required"
-msgstr ""
-
-msgid "ApprovalRule|e.g. QA, Security, etc."
+msgid "Apply suggestion"
msgstr ""
msgid "Approvals"
-msgstr "ЗатвердженнÑ"
+msgstr ""
msgid "Approvals required"
-msgstr "Потрібні затвердженнÑ"
+msgstr ""
msgid "Approvers"
-msgstr "Затверджуючі оÑоби"
+msgstr ""
msgid "Apr"
msgstr "квіт."
@@ -1187,7 +1018,7 @@ msgid "Archived projects"
msgstr "Заархівовані проекти"
msgid "Are you sure"
-msgstr "Ви впевнені"
+msgstr ""
msgid "Are you sure you want to delete this pipeline schedule?"
msgstr "Ви впевнені, що хочете видалити цей розклад Ð´Ð»Ñ ÐºÐ¾Ð½Ð²ÐµÑ”Ñ€Ð°?"
@@ -1199,7 +1030,7 @@ msgid "Are you sure you want to lose unsaved changes?"
msgstr "Ви впевнені, що бажаєте втратити незбережені зміни?"
msgid "Are you sure you want to lose your issue information?"
-msgstr "Ви впевнені, що хочете втратити інформацію про задачу?"
+msgstr ""
msgid "Are you sure you want to regenerate the public key? You will have to update the public key on the remote server before mirroring will work again."
msgstr "Ви впевнені, що хочете повторно згенерувати відкритий ключ? Вам доведетьÑÑ Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ відкритий ключ на віддаленому Ñервері, перш ніж Ð´Ð·ÐµÑ€ÐºÐ°Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð¿Ñ€Ð°Ñ†ÑŽÑ” знову."
@@ -1207,20 +1038,14 @@ msgstr "Ви впевнені, що хочете повторно згенеру
msgid "Are you sure you want to remove %{group_name}?"
msgstr "Ви впевнені, що хочете видалити %{group_name}?"
-msgid "Are you sure you want to remove approver %{name}"
-msgstr "Ви впевнені, що хочете видалити затверджуючу оÑобу %{name}"
-
msgid "Are you sure you want to remove approver %{name}?"
-msgstr "Ви впевнені, що хочете видалити затверджуючу оÑобу %{name}?"
-
-msgid "Are you sure you want to remove group %{name}"
-msgstr "Ви впевнені, що хочете видалити групу %{name}"
+msgstr ""
msgid "Are you sure you want to remove group %{name}?"
-msgstr "Ви впевнені, що хочете видалити групу %{name}?"
+msgstr ""
msgid "Are you sure you want to remove the attachment?"
-msgstr "Ви впевнені, що бажаєте видалити вкладеннÑ?"
+msgstr ""
msgid "Are you sure you want to remove this identity?"
msgstr "Ви впевнені, що хочете видалити цю ідентифікацію?"
@@ -1238,7 +1063,7 @@ msgid "Are you sure you want to unlock %{path_lock_path}?"
msgstr "Ви впевнені, що хочете розблокувати %{path_lock_path}?"
msgid "Are you sure you want to unsubscribe from the %{type}: %{link_to_noteable_text}?"
-msgstr "Ви дійÑно бажаєте ÑкаÑувати підпиÑку на %{type}: %{link_to_noteable_text}?"
+msgstr ""
msgid "Are you sure?"
msgstr "Ви впевнені?"
@@ -1271,7 +1096,7 @@ msgid "Assign milestone"
msgstr "Призначити етап"
msgid "Assign some issues to this milestone."
-msgstr "Призначити деÑкі задачі до цього етапу."
+msgstr ""
msgid "Assign to"
msgstr "Призначити"
@@ -1300,11 +1125,8 @@ msgstr "СпиÑки виконавців показують уÑÑ– задачі
msgid "Assignee(s)"
msgstr "Виконавець(ці)"
-msgid "At least one approval from a code owner is required to change files matching the respective CODEOWNER rules."
-msgstr ""
-
msgid "Attach a file"
-msgstr "Прикріпити файл"
+msgstr ""
msgid "Attach a file by drag &amp; drop or %{upload_link}"
msgstr "Прикріпити файл за допомогою перетÑÐ³ÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ %{upload_link}"
@@ -1318,6 +1140,9 @@ msgstr "Ñерп."
msgid "August"
msgstr "Ñерпень"
+msgid "Auth Token"
+msgstr ""
+
msgid "Authentication Log"
msgstr "Журнал автентифікації"
@@ -1334,7 +1159,7 @@ msgid "Authorization code:"
msgstr "Код авторизації:"
msgid "Authorization key"
-msgstr "Ключ авторизації"
+msgstr ""
msgid "Authorization was granted by entering your username and password in the application."
msgstr "ÐÐ²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ñ–Ñ Ð²Ñ–Ð´Ð±ÑƒÐ»Ð°ÑÑ Ð¿Ñ–ÑÐ»Ñ Ð²Ð²Ð¾Ð´Ñƒ вашого імені та паролю у заÑтоÑунку."
@@ -1397,25 +1222,25 @@ msgid "Automatically marked as default internal user"
msgstr "Ðвтоматично позначено Ñк внутрішній кориÑтувач за замовчуваннÑм"
msgid "Automatically resolved"
-msgstr "Вирішено автоматично"
+msgstr ""
msgid "Available"
msgstr "ДоÑтупно"
msgid "Available group Runners: %{runners}"
-msgstr "ДоÑтупні групові Runner'и: %{runners}"
+msgstr ""
msgid "Available shared Runners:"
-msgstr "ДоÑтупні загальні Runner'и:"
+msgstr ""
msgid "Available specific runners"
-msgstr "ДоÑтупні Ñпеціальні Runner’и"
+msgstr ""
msgid "Avatar for %{assigneeName}"
-msgstr "Ðватар Ð´Ð»Ñ %{assigneeName}"
+msgstr ""
msgid "Avatar for %{name}"
-msgstr "Ðватар Ð´Ð»Ñ %{name}"
+msgstr ""
msgid "Avatar will be removed. Are you sure?"
msgstr "Ðватар буде видалено. Ви впевнені?"
@@ -1601,10 +1426,10 @@ msgid "Bitbucket import"
msgstr "Імпорт з Bitbucket"
msgid "Block"
-msgstr "Блок"
+msgstr ""
msgid "Blocked"
-msgstr "Заблокований"
+msgstr ""
msgid "Blog"
msgstr "Блог"
@@ -1769,34 +1594,34 @@ msgid "Browse files"
msgstr "ПереглÑд файлів"
msgid "Built-in"
-msgstr "Вбудований"
+msgstr ""
msgid "Business"
-msgstr "БізнеÑ"
+msgstr ""
msgid "Business metrics (Custom)"
msgstr "Ð‘Ñ–Ð·Ð½ÐµÑ Ð¼ÐµÑ‚Ñ€Ð¸ÐºÐ¸ (ВлаÑні)"
msgid "By %{user_name}"
-msgstr "Від %{user_name}"
+msgstr ""
msgid "ByAuthor|by"
msgstr "від"
msgid "CHANGELOG"
-msgstr "СпиÑок змін (CHANGELOG)"
+msgstr ""
msgid "CI / CD"
msgstr "CI / CD"
msgid "CI / CD Charts"
-msgstr "СтатиÑтика CI / CD"
+msgstr ""
msgid "CI / CD Settings"
msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ CI/CD"
msgid "CI Lint"
-msgstr "Перевірка CI конфігурації"
+msgstr ""
msgid "CI will run using the credentials assigned above."
msgstr "CI буде працювати з викориÑтаннÑм облікових даних, визначених вище."
@@ -1844,9 +1669,6 @@ msgid "CICD|The Auto DevOps pipeline will run if no alternative CI configuration
msgstr "Конвеєр Auto DevOps буде запущено, Ñкщо не буде знайдено альтернативного файлу конфігуріції CI."
msgid "CICD|You must add a %{kubernetes_cluster_start}Kubernetes cluster integration%{kubernetes_cluster_end} to this project with a domain in order for your deployment strategy to work correctly."
-msgstr "Ви повинні додати %{kubernetes_cluster_start}клаÑтерну інтеграцію Kubernetes%{kubernetes_cluster_end} до цього проекту з доменом Ð´Ð»Ñ ÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¾Ñ— роботи Ñтратегії розгортаннÑ."
-
-msgid "CICD|group enabled"
msgstr ""
msgid "CICD|instance enabled"
@@ -1859,16 +1681,13 @@ msgid "Callback URL"
msgstr "URL зворотнього виклику"
msgid "Can override approvers and approvals required per merge request"
-msgstr "Можна змінювати необхідні Ð·Ð°Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ñ‚Ð° затверджуючих оÑіб Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñ–Ð² на злиттÑ"
+msgstr ""
msgid "Can't find HEAD commit for this branch"
msgstr "Ðе можу знайти HEAD-коміт Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— гілки"
-msgid "Can't remove group members without group managed account"
-msgstr ""
-
msgid "Canary Deployments is a popular CI strategy, where a small portion of the fleet is updated to the new version of your application."
-msgstr "Canary Deployments — це популÑрна ÑÑ‚Ñ€Ð°Ñ‚ÐµÐ³Ñ–Ñ Ð±ÐµÐ·Ð¿ÐµÑ€ÐµÑ€Ð²Ð½Ð¾Ñ— інтеграції, коли нова верÑÑ–Ñ Ð²Ð°ÑˆÐ¾Ð³Ð¾ заÑтоÑунку вÑтановлюєтьÑÑ Ð½Ð° невелику кількіÑÑ‚ÑŒ машин."
+msgstr ""
msgid "Cancel"
msgstr "СкаÑувати"
@@ -1882,14 +1701,11 @@ msgstr "Ðеможливо злити автоматично"
msgid "Cannot modify managed Kubernetes cluster"
msgstr "Ðеможливо змінити керований клаÑтер Kubernetes"
-msgid "Cannot render the image. Maximum character count (%{charLimit}) has been exceeded."
-msgstr ""
-
msgid "Certificate"
-msgstr "Сертифікат"
+msgstr ""
msgid "Certificate (PEM)"
-msgstr "Сертифікат (PEM)"
+msgstr ""
msgid "Certificate fingerprint"
msgstr "Відбиток Ñертифіката"
@@ -1898,7 +1714,7 @@ msgid "Change Weight"
msgstr "Змінити вагу"
msgid "Change permissions"
-msgstr "Змінити права доÑтупу"
+msgstr ""
msgid "Change template"
msgstr "Змінити шаблон"
@@ -1921,9 +1737,6 @@ msgstr "Ðнулювати коміт"
msgid "ChangeTypeAction|This will create a new commit in order to revert the existing changes."
msgstr "Це Ñтворить новий коміт, щоб анулювати Ñ–Ñнуючі зміни."
-msgid "Changes"
-msgstr "Зміни"
-
msgid "Changes are shown as if the <b>source</b> revision was being merged into the <b>target</b> revision."
msgstr "Зміни відображаютьÑÑ Ñ‚Ð°Ðº, ніби <b>редакціÑ-джерело</b> була злита в <b>цільову редакцію</b>."
@@ -1936,20 +1749,17 @@ msgstr "СтатиÑтика"
msgid "Chat"
msgstr "Чат"
-msgid "Check again"
-msgstr "Перевірити знову"
-
msgid "Check the %{docs_link_start}documentation%{docs_link_end}."
msgstr "ПереглÑньте %{docs_link_start}документацію%{docs_link_end}."
msgid "Check your .gitlab-ci.yml"
-msgstr "Перевірте Ñвій .gitlab-ci.yml"
+msgstr ""
msgid "Checking %{text} availability…"
msgstr "Перевірка доÑтупноÑÑ‚Ñ– %{text}…"
msgid "Checking approval status"
-msgstr "Перевірка ÑтатуÑу затвердженнÑ"
+msgstr ""
msgid "Checking branch availability..."
msgstr "Перевірка доÑтупноÑÑ‚Ñ– гілки..."
@@ -1973,7 +1783,7 @@ msgid "Choose a branch/tag (e.g. %{master}) or enter a commit (e.g. %{sha}) to s
msgstr "Виберіть гілку чи тег (напр. %{master}) або введіть коміт (напр. %{sha}) Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду змін або Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñƒ на злиттÑ."
msgid "Choose a file"
-msgstr "Виберіть файл"
+msgstr ""
msgid "Choose a role permission"
msgstr ""
@@ -1996,21 +1806,21 @@ msgstr "Виберіть файл..."
msgid "Choose the top-level group for your repository imports."
msgstr "Оберіть групу найвищого Ñ€Ñ–Ð²Ð½Ñ Ð´Ð»Ñ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚Ñƒ репозиторіїв."
-msgid "Choose visibility level, enable/disable project features (issues, repository, wiki, snippets) and set permissions."
+msgid "Choose what content you want to see on a group’s overview page"
msgstr ""
-msgid "Choose what content you want to see on a group’s overview page"
-msgstr "Вибрати вміÑÑ‚ оглÑдової Ñторінки групи"
+msgid "Choose which groups you wish to synchronize to this secondary node."
+msgstr "Виберіть групи Ð´Ð»Ñ Ñинхронізації на цей вторинний вузол."
msgid "Choose which repositories you want to connect and run CI/CD pipelines."
msgstr "Виберіть, Ñкі репозиторії ви хочете підключити Ñ– запуÑтити конвеєри CI/CD."
+msgid "Choose which repositories you want to import."
+msgstr "Виберіть, Ñкі репозиторії ви хочете імпортувати."
+
msgid "Choose which shards you wish to synchronize to this secondary node."
msgstr "Виберіть Ñегменти Ð´Ð»Ñ Ñинхронізації на цей вторинний вузол."
-msgid "Choose your merge method, set up a default merge request description template."
-msgstr ""
-
msgid "CiStatusLabel|canceled"
msgstr "ÑкаÑовано"
@@ -2093,7 +1903,7 @@ msgid "CiVariable|Create wildcard"
msgstr "Створити шаблон"
msgid "CiVariable|Error occurred while saving variables"
-msgstr "Помилка при збереженні змінних"
+msgstr ""
msgid "CiVariable|New environment"
msgstr "Ðове Ñередовище"
@@ -2114,10 +1924,10 @@ msgid "ClassificationLabelUnavailable|is unavailable: %{reason}"
msgstr "не доÑтупно: %{reason}"
msgid "Clear"
-msgstr "ОчиÑтити"
+msgstr ""
msgid "Clear input"
-msgstr "ОчиÑтити ввід"
+msgstr ""
msgid "Clear search"
msgstr "ОчиÑтити пошук"
@@ -2153,25 +1963,22 @@ msgid "Client authentication key"
msgstr "Ключ автентифікації клієнта"
msgid "Client authentication key password"
-msgstr "Пароль ключа автентифікації клієнта"
+msgstr "Пароль ключа аутентифікації клієнта"
msgid "Clients"
msgstr "Клієнти"
msgid "Clone"
-msgstr "Клонувати"
+msgstr ""
msgid "Clone repository"
msgstr "Клонувати репозиторій"
msgid "Clone with %{http_label}"
-msgstr "Клонувати з %{http_label}"
-
-msgid "Clone with KRB5"
msgstr ""
msgid "Clone with SSH"
-msgstr "Клонувати з SSH"
+msgstr ""
msgid "Close"
msgstr "Закрити"
@@ -2180,19 +1987,22 @@ msgid "Close epic"
msgstr "Закрити епік"
msgid "Close milestone"
-msgstr "Закрити етап"
+msgstr ""
msgid "Closed"
msgstr "Закрито"
+msgid "Closed (moved)"
+msgstr ""
+
msgid "Closed issues"
msgstr "Закриті задачі"
msgid "ClusterIntegration| %{custom_domain_start}More information%{custom_domain_end}."
-msgstr "%{custom_domain_start}Детальніше%{custom_domain_end}."
+msgstr ""
msgid "ClusterIntegration| can be used instead of a custom domain."
-msgstr "може викориÑтовуватиÑÑ Ð·Ð°Ð¼Ñ–ÑÑ‚ÑŒ влаÑного домену."
+msgstr ""
msgid "ClusterIntegration| is the default environment scope for this cluster. This means that all jobs, regardless of their environment, will use this cluster. %{environment_scope_start}More information%{environment_scope_end}"
msgstr ""
@@ -2200,6 +2010,9 @@ msgstr ""
msgid "ClusterIntegration|%{appList} was successfully installed on your Kubernetes cluster"
msgstr "%{appList} були уÑпішно вÑтановлені на ваш Kubernetes-клаÑтер"
+msgid "ClusterIntegration|%{boldNotice} This will add some extra resources like a load balancer, which may incur additional costs depending on the hosting provider your Kubernetes cluster is installed on. If you are using Google Kubernetes Engine, you can %{pricingLink}."
+msgstr "%{boldNotice} Це додаÑÑ‚ÑŒ додаткові реÑурÑи, такі Ñк баланÑувальник навантаженнÑ, Ñкий може збільшити витрати в залежноÑÑ‚Ñ– від провайдера хоÑтингу, на Ñкому вÑтановлено клаÑтер Kubernetes. Якщо ви викориÑтовуєте Google Kubernetes Engine, ви можете %{pricingLink}."
+
msgid "ClusterIntegration|%{title} upgraded successfully."
msgstr ""
@@ -2221,17 +2034,20 @@ msgstr "Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ñ–Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ñ–Ñ— до вашої групи наÐ
msgid "ClusterIntegration|Advanced options on this Kubernetes cluster's integration"
msgstr "Детальні Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ–Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ñ–Ñ— із цим Kubernetes-клаÑтером"
+msgid "ClusterIntegration|After installing Ingress, you will need to point your wildcard DNS at the generated external IP address in order to view your app after it is deployed. %{ingressHelpLink}"
+msgstr "ПіÑÐ»Ñ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ingress, вам необхідно направити Ñвій DNS на згенеровану зовнішню IP-адреÑу, щоб переглÑнути ваш заÑтоÑунок піÑÐ»Ñ Ð¹Ð¾Ð³Ð¾ розгортаннÑ. %{ingressHelpLink}"
+
msgid "ClusterIntegration|Alternatively"
msgstr ""
+msgid "ClusterIntegration|An error occured while trying to fetch project zones: %{error}"
+msgstr "Помилка при отриманні зон проекту: %{error}"
+
msgid "ClusterIntegration|An error occurred when trying to contact the Google Cloud API. Please try again later."
msgstr "Помилка під Ñ‡Ð°Ñ Ð·'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· Google Cloud API. Будь лаÑка, Ñпробуйте знову пізніше."
-msgid "ClusterIntegration|An error occurred while trying to fetch project zones: %{error}"
-msgstr "Помилка при отриманні зон проекту: %{error}"
-
msgid "ClusterIntegration|An error occurred while trying to fetch your projects: %{error}"
-msgstr "Помилка при отриманні ваших проектів: %{error}"
+msgstr ""
msgid "ClusterIntegration|An error occurred while trying to fetch zone machine types: %{error}"
msgstr ""
@@ -2246,13 +2062,13 @@ msgid "ClusterIntegration|Are you sure you want to remove this Kubernetes cluste
msgstr "Ви впевнені, що хочете видалити інтеграцію із цим Kubernetes-клаÑтером? Це не призведе до Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ñамого клаÑтера."
msgid "ClusterIntegration|Base domain"
-msgstr "ОÑновний домен"
+msgstr ""
msgid "ClusterIntegration|CA Certificate"
msgstr "Сертифікат центру Ñертифікації"
msgid "ClusterIntegration|Cert-Manager"
-msgstr "Cert-Manager"
+msgstr ""
msgid "ClusterIntegration|Cert-Manager is a native Kubernetes certificate management controller that helps with issuing certificates. Installing Cert-Manager on your cluster will issue a certificate by %{letsEncrypt} and ensure that certificates are valid and up-to-date."
msgstr ""
@@ -2266,9 +2082,6 @@ msgstr "Виберіть, Ñкі заÑтоÑунки необхідно вÑÑ‚Ð
msgid "ClusterIntegration|Choose which of your environments will use this cluster."
msgstr "Виберіть, Ñке із ваших Ñередовищ буде викориÑтовувати цей клаÑтер."
-msgid "ClusterIntegration|Cluster health"
-msgstr ""
-
msgid "ClusterIntegration|Clusters are utilized by selecting the nearest ancestor with a matching environment scope. For example, project clusters will override group clusters."
msgstr ""
@@ -2278,13 +2091,13 @@ msgstr "Скопіювати API URL"
msgid "ClusterIntegration|Copy CA Certificate"
msgstr "Скопіювати Ñертифікат центру Ñертифікації"
-msgid "ClusterIntegration|Copy Ingress Endpoint to clipboard"
-msgstr ""
+msgid "ClusterIntegration|Copy Ingress IP Address to clipboard"
+msgstr "Копіювати IP-адреÑу Ingress в буфер обміну"
msgid "ClusterIntegration|Copy Jupyter Hostname to clipboard"
msgstr "Скопіювати Ñ–Ð¼â€™Ñ Ñ…Ð¾Ñта Jupyter в буфер обміну"
-msgid "ClusterIntegration|Copy Knative Endpoint to clipboard"
+msgid "ClusterIntegration|Copy Knative IP Address to clipboard"
msgstr ""
msgid "ClusterIntegration|Copy Kubernetes cluster name"
@@ -2365,14 +2178,14 @@ msgstr "Приховати"
msgid "ClusterIntegration|If you are setting up multiple clusters and are using Auto DevOps, %{help_link_start}read this first%{help_link_end}."
msgstr "Якщо ви налаштовуєте декілька клаÑтерів Ñ– викориÑтовуєте Auto DevOps, %{help_link_start}прочитайте Ð´Ð»Ñ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÑƒ це%{help_link_end}."
-msgid "ClusterIntegration|In order to view the health of your cluster, you must first install Prometheus below."
-msgstr ""
+msgid "ClusterIntegration|In order to show the health of the cluster, we'll need to provision your cluster with Prometheus to collect the required data."
+msgstr "Ð”Ð»Ñ Ñ‚Ð¾Ð³Ð¾, щоб показати працездатніÑÑ‚ÑŒ клаÑтера, нам потрібно буде забезпечити ваш клаÑтер з Prometheus Ð´Ð»Ñ Ð·Ð±Ð¾Ñ€Ñƒ необхідних даних."
msgid "ClusterIntegration|Ingress"
msgstr "Ingress"
-msgid "ClusterIntegration|Ingress Endpoint"
-msgstr ""
+msgid "ClusterIntegration|Ingress IP Address"
+msgstr "Ingress IP-адреÑа"
msgid "ClusterIntegration|Ingress gives you a way to route requests to services based on the request host or path, centralizing a number of services into a single entrypoint."
msgstr "Ingress дозволÑÑ” вам маршрутизувати запити до Ñлужб на оÑнові запитаного хоÑта або шлÑху, об'єднуючи Ñ€Ñд ÑервіÑів в одну точку входу."
@@ -2380,18 +2193,15 @@ msgstr "Ingress дозволÑÑ” вам маршрутизувати запитÐ
msgid "ClusterIntegration|Install"
msgstr "Ð’Ñтановити"
+msgid "ClusterIntegration|Install Prometheus"
+msgstr "Ð’Ñтановити Prometheus"
+
msgid "ClusterIntegration|Installed"
msgstr "Ð’Ñтановлений"
msgid "ClusterIntegration|Installing"
msgstr "Ð’ÑтановленнÑ"
-msgid "ClusterIntegration|Installing Ingress may incur additional costs. Learn more about %{pricingLink}."
-msgstr ""
-
-msgid "ClusterIntegration|Installing Knative may incur additional costs. Learn more about %{pricingLink}."
-msgstr ""
-
msgid "ClusterIntegration|Integrate Kubernetes cluster automation"
msgstr "Ð†Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ñ–Ñ ÐºÐ»Ð°Ñтерної автоматизації Kubernetes"
@@ -2399,7 +2209,7 @@ msgid "ClusterIntegration|Integration status"
msgstr "Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ñ–Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ñ–Ñ—"
msgid "ClusterIntegration|Issuer Email"
-msgstr "Електронна пошта емітента"
+msgstr ""
msgid "ClusterIntegration|Issuers represent a certificate authority. You must provide an email address for your Issuer. "
msgstr ""
@@ -2419,7 +2229,7 @@ msgstr "Knative"
msgid "ClusterIntegration|Knative Domain Name:"
msgstr "Доменне ім'Ñ Knative:"
-msgid "ClusterIntegration|Knative Endpoint:"
+msgid "ClusterIntegration|Knative IP Address:"
msgstr ""
msgid "ClusterIntegration|Knative extends Kubernetes to provide a set of middleware components that are essential to build modern, source-centric, and container-based applications that can run anywhere: on premises, in the cloud, or even in a third-party data center."
@@ -2431,6 +2241,9 @@ msgstr "Kubernetes-клаÑтер"
msgid "ClusterIntegration|Kubernetes cluster details"
msgstr "Параметри Kubernetes-клаÑтера"
+msgid "ClusterIntegration|Kubernetes cluster health"
+msgstr "Стан Kubernetes-клаÑтера"
+
msgid "ClusterIntegration|Kubernetes cluster is being created on Google Kubernetes Engine..."
msgstr "Kubernetes-клаÑтер ÑтворюєтьÑÑ Ð½Ð° Google Kubernetes Engine..."
@@ -2459,7 +2272,7 @@ msgid "ClusterIntegration|Learn more about group Kubernetes clusters"
msgstr "ДізнайтеÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про групові клаÑтери Kubernetes"
msgid "ClusterIntegration|Let's Encrypt"
-msgstr "Let's Encrypt"
+msgstr ""
msgid "ClusterIntegration|Machine type"
msgstr "Тип машини"
@@ -2473,6 +2286,9 @@ msgstr "УправліннÑ"
msgid "ClusterIntegration|Manage your Kubernetes cluster by visiting %{link_gke}"
msgstr "Керуйте вашим Kubernetes-клаÑтером за допомогою %{link_gke}"
+msgid "ClusterIntegration|More information"
+msgstr "Додаткова інформаціÑ"
+
msgid "ClusterIntegration|No machine types matched your search"
msgstr "Жоден тип машин не відповідає вашому пошуку"
@@ -2485,6 +2301,9 @@ msgstr "Жоден проект не відповідає вашому пошуÐ
msgid "ClusterIntegration|No zones matched your search"
msgstr "Жодна зона не відповідає вашому пошуку"
+msgid "ClusterIntegration|Note:"
+msgstr "Примітка:"
+
msgid "ClusterIntegration|Number of nodes"
msgstr "КількіÑÑ‚ÑŒ вузлів"
@@ -2494,8 +2313,8 @@ msgstr "Введіть інформацію про доÑтуп до Ñвого
msgid "ClusterIntegration|Please make sure that your Google account meets the following requirements:"
msgstr "Будь-лаÑка впевнітьÑÑ, що ваш обліковий Ð·Ð°Ð¿Ð¸Ñ Google задовольнÑÑ” наÑтупним вимогам:"
-msgid "ClusterIntegration|Point a wildcard DNS to this generated endpoint in order to access your application after it has been deployed."
-msgstr ""
+msgid "ClusterIntegration|Point a wildcard DNS to this generated IP address in order to access your application after it has been deployed."
+msgstr "Ðаправте ваш DNS на цю згенеровану IP-адреÑу, щоб отримати доÑтуп до вашого додатку, піÑÐ»Ñ Ð¹Ð¾Ð³Ð¾ розгортаннÑ."
msgid "ClusterIntegration|Project cluster"
msgstr "КлаÑтер проекту"
@@ -2533,7 +2352,7 @@ msgstr "При бажанні ви можете замінити це на ваÑ
msgid "ClusterIntegration|Request to begin installing failed"
msgstr "Запит про початок вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð½Ðµ виконано"
-msgid "ClusterIntegration|Retry update"
+msgid "ClusterIntegration|Retry upgrade"
msgstr ""
msgid "ClusterIntegration|Save changes"
@@ -2578,6 +2397,9 @@ msgstr "Показати"
msgid "ClusterIntegration|Something went wrong on our end."
msgstr "ЩоÑÑŒ пішло не так з нашого боку."
+msgid "ClusterIntegration|Something went wrong when upgrading %{title}. Please check the logs and try again."
+msgstr ""
+
msgid "ClusterIntegration|Something went wrong while creating your Kubernetes cluster on Google Kubernetes Engine"
msgstr "Помилка при Ñтворенні вашого Kubernetes-клаÑтера на Google Kubernetes Engine"
@@ -2585,32 +2407,23 @@ msgid "ClusterIntegration|Something went wrong while installing %{title}"
msgstr "Під Ñ‡Ð°Ñ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ %{title} ÑталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°"
msgid "ClusterIntegration|Specifying a domain will allow you to use Auto Review Apps and Auto Deploy stages for %{auto_devops_start}Auto DevOps%{auto_devops_end}. The domain should have a wildcard DNS configured matching the domain."
-msgstr "Ð—Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð¾Ð¼ÐµÐ½Ñƒ дозволить вам викориÑтовувати фази Auto Review Apps та Auto Deploy Ð´Ð»Ñ %{auto_devops_start}Auto DevOps%{auto_devops_end}. Домен повинен мати шаблон DNS, що задовільнÑÑ” цей домен."
-
-msgid "ClusterIntegration|The endpoint is in the process of being assigned. Please check your Kubernetes cluster or Quotas on Google Kubernetes Engine if it takes a long time."
msgstr ""
+msgid "ClusterIntegration|The IP address is in the process of being assigned. Please check your Kubernetes cluster or Quotas on Google Kubernetes Engine if it takes a long time."
+msgstr "ВідбуваєтьÑÑ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ IP-адреÑи. Будь лаÑка, перевірте квоти вашого Kubernetes клаÑтера на Google Kubernetes Engine, Ñкщо це займає багато чаÑу."
+
msgid "ClusterIntegration|This account must have permissions to create a Kubernetes cluster in the %{link_to_container_project} specified below"
msgstr "Цей обліковий Ð·Ð°Ð¿Ð¸Ñ Ð¿Ð¾Ð²Ð¸Ð½ÐµÐ½ мати наÑтупні права Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Kubernetes-клаÑтера в %{link_to_container_project}"
msgid "ClusterIntegration|This option will allow you to install applications on RBAC clusters."
msgstr "Цей параметр дозволить вам вÑтановлювати заÑтоÑунки на клаÑтери RBAC."
-msgid "ClusterIntegration|To access your application after deployment, point a wildcard DNS to the Knative Endpoint."
-msgstr ""
-
msgid "ClusterIntegration|Toggle Kubernetes cluster"
msgstr "Увімкнути/вимкнути Kubernetes-клаÑтер"
msgid "ClusterIntegration|Token"
msgstr "Токен"
-msgid "ClusterIntegration|Update failed. Please check the logs and try again."
-msgstr ""
-
-msgid "ClusterIntegration|Updating"
-msgstr ""
-
msgid "ClusterIntegration|Upgrade"
msgstr ""
@@ -2647,6 +2460,9 @@ msgstr "Зона"
msgid "ClusterIntegration|access to Google Kubernetes Engine"
msgstr "доÑтуп до Google Kubernetes Engine"
+msgid "ClusterIntegration|check the pricing here"
+msgstr "переглÑнути ціни тут"
+
msgid "ClusterIntegration|documentation"
msgstr "документації"
@@ -2656,9 +2472,6 @@ msgstr "Ñторінка допомоги"
msgid "ClusterIntegration|meets the requirements"
msgstr "задовольнÑÑ” вимогам"
-msgid "ClusterIntegration|pricing"
-msgstr ""
-
msgid "ClusterIntegration|properly configured"
msgstr "правильно налаштований"
@@ -2666,43 +2479,31 @@ msgid "ClusterIntegration|sign up"
msgstr "реєÑтрації"
msgid "Code"
-msgstr "Код"
-
-msgid "Code Owners"
-msgstr "ВлаÑники коду"
-
-msgid "Code owner approval is required"
msgstr ""
msgid "Code owners"
msgstr "ВлаÑники коду"
-msgid "CodeOwner|Pattern"
-msgstr ""
-
msgid "Cohorts"
msgstr "Когорти"
msgid "Collapse"
msgstr "Згорнути"
-msgid "Collapse approvers"
-msgstr "Згорнути ÑпиÑок затверджуючих оÑіб"
-
msgid "Collapse sidebar"
msgstr "Згорнути панель"
msgid "Command line instructions"
-msgstr "ІнÑтрукції Ð´Ð»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð³Ð¾ Ñ€Ñдка"
+msgstr ""
msgid "Comment"
msgstr "Коментар"
msgid "Comment & close %{noteable_name}"
-msgstr "Коментувати та закрити %{noteable_name}"
+msgstr ""
msgid "Comment & reopen %{noteable_name}"
-msgstr "Коментувати та повторно відкрити %{noteable_name}"
+msgstr ""
msgid "Comment & resolve discussion"
msgstr "Залишити коментар Ñ– завершити обговореннÑ"
@@ -2724,19 +2525,19 @@ msgstr[2] "Комітів"
msgstr[3] "Комітів"
msgid "Commit %{commit_id}"
-msgstr "Коміт %{commit_id}"
+msgstr ""
msgid "Commit Message"
-msgstr "ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ ÐºÐ¾Ð¼Ñ–Ñ‚Ñƒ"
+msgstr "Коміт-повідомелннÑ"
msgid "Commit deleted"
-msgstr "Коміт видалено"
+msgstr ""
msgid "Commit duration in minutes for last 30 commits"
msgstr "ТриваліÑÑ‚ÑŒ оÑтанніх 30 комітів у хвилинах"
msgid "Commit message"
-msgstr "ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ ÐºÐ¾Ð¼Ñ–Ñ‚Ñƒ"
+msgstr "Коміт-повідомленнÑ"
msgid "Commit statistics for %{ref} %{start_time} - %{end_time}"
msgstr "СтатиÑтика комітів Ð´Ð»Ñ %{ref} %{start_time} - %{end_time}"
@@ -2796,7 +2597,7 @@ msgid "Compare Revisions"
msgstr "ПорівнÑÐ½Ð½Ñ Ñ€ÐµÐ´Ð°ÐºÑ†Ñ–Ð¹"
msgid "Compare changes"
-msgstr "ПорівнÑти зміни"
+msgstr ""
msgid "Compare changes with the last commit"
msgstr "ПорівнÑти зміни з оÑтаннім комітом"
@@ -2826,7 +2627,7 @@ msgid "Confidentiality"
msgstr "КонфіденційніÑÑ‚ÑŒ"
msgid "Configure GitLab runners to start using the Web Terminal. %{helpStart}Learn more.%{helpEnd}"
-msgstr "Ðалаштувати runner'ів GitLab Ð´Ð»Ñ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÑƒ викориÑÑ‚Ð°Ð½Ð½Ñ Ð’ÐµÐ±-терміналу. %{helpStart}Докладніше.%{helpEnd}"
+msgstr ""
msgid "Configure Gitaly timeouts."
msgstr "Ðалаштувати таймаути Gitaly."
@@ -2835,7 +2636,7 @@ msgid "Configure Tracing"
msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð’Ñ–Ð´ÑтеженнÑ"
msgid "Configure a <code>.gitlab-webide.yml</code> file in the <code>.gitlab</code> directory to start using the Web Terminal. %{helpStart}Learn more.%{helpEnd}"
-msgstr "Ðалаштуйте файл <code>.gitlab-webide.yml</code> у директорії <code>.gitlab</code>, щоб почати викориÑтовувати Веб-термінал. %{helpStart}Докладніше.%{helpEnd}"
+msgstr ""
msgid "Configure automatic git checks and housekeeping on repositories."
msgstr "Ðалаштувати автоматичні перевірки git Ñ– Ð¾Ñ‡Ð¸Ñ‰ÐµÐ½Ð½Ñ Ð² репозиторіÑÑ…."
@@ -2871,7 +2672,7 @@ msgid "Connecting..."
msgstr "З'єднаннÑ..."
msgid "Contact sales to upgrade"
-msgstr "ЗвернітьÑÑ Ð´Ð¾ відділу продажів Ð´Ð»Ñ Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ"
+msgstr ""
msgid "Container Registry"
msgstr "РеєÑÑ‚Ñ€ Контейнерів"
@@ -2922,7 +2723,7 @@ msgid "ContainerRegistry|You can also use a %{deploy_token} for read-only access
msgstr "Ви також можете викориÑтовувати %{deploy_token} Ð´Ð»Ñ Ð´Ð¾Ñтупу тільки Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð´Ð¾ образів у реєÑтрі."
msgid "Contents of .gitlab-ci.yml"
-msgstr "ВміÑÑ‚ .gitlab-ci.yml"
+msgstr ""
msgid "Continue"
msgstr "Продовжити"
@@ -2940,7 +2741,7 @@ msgid "Contribution"
msgstr "ВнеÑок"
msgid "Contribution Charts"
-msgstr "СтатиÑтика внеÑків"
+msgstr ""
msgid "Contributions for <strong>%{calendar_date}</strong>"
msgstr "ВнеÑки за <strong>%{calendar_date}</strong>"
@@ -2966,14 +2767,23 @@ msgstr "Будь лаÑка, зачекайте, Ñ†Ñ Ñторінка автоÐ
msgid "Control the display of third party offers."
msgstr "Керувати відображеннÑм Ñторонніх пропозицій."
+msgid "Control the maximum concurrency of LFS/attachment backfill for this secondary node"
+msgstr "Задати макÑимальну кількіÑÑ‚ÑŒ потоків Ð´Ð»Ñ Ñ„Ð¾Ð½Ð¾Ð²Ð¾Ð³Ð¾ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ LFS/вкладень Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ вторинного вузла"
+
msgid "Control the maximum concurrency of repository backfill for this secondary node"
msgstr "Задати макÑимальну кількіÑÑ‚ÑŒ потоків Ð´Ð»Ñ Ñ„Ð¾Ð½Ð¾Ð²Ð¾Ð³Ð¾ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ñ–Ñ—Ð² Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ вторинного вузла"
+msgid "Control the maximum concurrency of verification operations for this Geo node"
+msgstr "Ð’Ñтановіть макÑимальну кількіÑÑ‚ÑŒ паралельних операцій перевірки Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ Geo-вузла"
+
+msgid "Control the minimum interval in days that a repository should be reverified for this primary node"
+msgstr ""
+
msgid "ConvDev Index"
msgstr "Ð†Ð½Ð´ÐµÐºÑ ConvDev"
msgid "Copy %{http_label} clone URL"
-msgstr "Скопіювати URL Ð´Ð»Ñ ÐºÐ»Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‡ÐµÑ€ÐµÐ· %{http_label}"
+msgstr ""
msgid "Copy %{protocol} clone URL"
msgstr "Скопіювати URL Ð´Ð»Ñ ÐºÐ»Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‡ÐµÑ€ÐµÐ· %{protocol}"
@@ -2981,14 +2791,11 @@ msgstr "Скопіювати URL Ð´Ð»Ñ ÐºÐ»Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‡ÐµÑ€ÐµÐ· %{protoc
msgid "Copy ID to clipboard"
msgstr "Скопіювати ID в буфер обміну"
-msgid "Copy KRB5 clone URL"
-msgstr ""
-
msgid "Copy SSH clone URL"
msgstr "Скопіювати URL Ð´Ð»Ñ ÐºÐ»Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‡ÐµÑ€ÐµÐ· SSH"
msgid "Copy SSH public key"
-msgstr "Скопіювати публічний ключ SSH"
+msgstr ""
msgid "Copy SSH public key to clipboard"
msgstr "Скопіюйте відкритий SSH-ключ в буфер обміну"
@@ -3036,7 +2843,7 @@ msgid "Create New Directory"
msgstr "Створити новий каталог"
msgid "Create New Domain"
-msgstr "Створити новий домен"
+msgstr ""
msgid "Create a new branch"
msgstr "Створити нову гілку"
@@ -3048,7 +2855,7 @@ msgid "Create a new issue"
msgstr "Створити нову задачу"
msgid "Create a new repository"
-msgstr "Створити новий репозиторій"
+msgstr ""
msgid "Create a personal access token on your account to pull or push via %{protocol}."
msgstr "Створіть токен доÑтупу Ð´Ð»Ñ Ð²Ð°ÑˆÐ¾Ð³Ð¾ аккаунта, щоб відправлÑти та отримувати через %{protocol}."
@@ -3077,6 +2884,9 @@ msgstr "Створити групу"
msgid "Create group label"
msgstr "Створити мітку групи"
+msgid "Create issue"
+msgstr "Створити задачу"
+
msgid "Create lists from labels. Issues with that label appear in that list."
msgstr "Створити ÑпиÑок на оÑнові міток. Ð’ ньому будуть задачі з такими мітками."
@@ -3087,7 +2897,7 @@ msgid "Create merge request and branch"
msgstr "Створити запит на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ñ‚Ð° гілку"
msgid "Create milestone"
-msgstr "Створити етап"
+msgstr ""
msgid "Create new branch"
msgstr "Створити нову гілку"
@@ -3146,9 +2956,6 @@ msgstr "СинтакÑÐ¸Ñ Cron"
msgid "Current Branch"
msgstr "Поточна гілка"
-msgid "Current Project"
-msgstr "Поточний проект"
-
msgid "Current node"
msgstr "Поточний вузол"
@@ -3174,7 +2981,7 @@ msgid "Custom project templates"
msgstr "ВлаÑні шаблони проектів"
msgid "Custom project templates have not been set up for groups that you are a member of. They are enabled from a group’s settings page. Contact your group’s Owner or Maintainer to setup custom project templates."
-msgstr "ВлаÑні шаблони проектів не налаштовані Ð´Ð»Ñ Ð³Ñ€ÑƒÐ¿, до Ñких ви входите. Вони активуютьÑÑ Ð½Ð° Ñторінці налаштувань групи. ЗвернітьÑÑ Ð´Ð¾ влаÑника або керівника вашої групи Ð´Ð»Ñ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð»Ð°Ñних шаблонів проектів."
+msgstr ""
msgid "Customize colors"
msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð»ÑŒÐ¾Ñ€Ñ–Ð²"
@@ -3186,9 +2993,9 @@ msgid "Customize how Google Code email addresses and usernames are imported into
msgstr "Ðалаштуйте, Ñк адреÑи електронної пошти та імена кориÑтувачів Google Code імпортуютьÑÑ Ð² GitLab. Ðа наÑтупному кроці ви зможете вибрати проекти, Ñкі потрібно імпортувати."
msgid "Customize language and region related settings."
-msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð¾Ð²Ð¸ Ñ– параметрів, пов'Ñзаних із регіоном."
+msgstr ""
-msgid "Customize your issue restrictions."
+msgid "Customize your merge request approval settings."
msgstr ""
msgid "Customize your pipeline configuration, view your pipeline status and coverage report."
@@ -3222,7 +3029,7 @@ msgid "CycleAnalyticsStage|Test"
msgstr "ТеÑтуваннÑ"
msgid "DNS"
-msgstr "DNS"
+msgstr ""
msgid "Dashboard"
msgstr "Панель керуваннÑ"
@@ -3234,7 +3041,7 @@ msgid "DashboardProjects|Personal"
msgstr "ОÑобиÑÑ‚Ñ–"
msgid "Data is still calculating..."
-msgstr "Дані вÑе ще обчиÑлюютьÑÑ..."
+msgstr ""
msgid "Date picker"
msgstr "Вибір дати"
@@ -3249,7 +3056,7 @@ msgid "December"
msgstr "грудень"
msgid "Decline"
-msgstr "Відхилити"
+msgstr ""
msgid "Decline and sign out"
msgstr "Відхити та вийти"
@@ -3261,10 +3068,10 @@ msgid "Default classification label"
msgstr "Мітка клаÑифікації за замовчуваннÑм"
msgid "Default first day of the week"
-msgstr "Перший день Ñ‚Ð¸Ð¶Ð½Ñ Ð·Ð° замовчуваннÑм"
+msgstr ""
msgid "Default first day of the week in calendars and date pickers."
-msgstr "Перший день Ñ‚Ð¸Ð¶Ð½Ñ Ð·Ð° замовчуваннÑм в календарÑÑ… та при виборі дати."
+msgstr ""
msgid "Default: Directly import the Google Code email address or username"
msgstr "За замовчуваннÑм: безпоÑередньо імпортувати адреÑу електронної пошти або ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача Google Code"
@@ -3276,7 +3083,7 @@ msgid "Define a custom pattern with cron syntax"
msgstr "Визначте влаÑний шаблон за допомогою ÑинтакÑиÑу cron"
msgid "Define environments in the deploy stage(s) in <code>.gitlab-ci.yml</code> to track deployments here."
-msgstr "Визначте Ñередовища на Ñтадії Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ñƒ <code>.gitlab-ci.yml</code> щоб відÑтежувати Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ñ‚ÑƒÑ‚."
+msgstr ""
msgid "DelayedJobs|Are you sure you want to run %{jobName} immediately? Otherwise this job will run automatically after it's timer finishes."
msgstr "Ви впевнені, що ви хочете запуÑтити %{jobName} відразу? Ð’ іншому випадку це Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð±ÑƒÐ´Ðµ виконано автоматично по завершенню таймера."
@@ -3309,10 +3116,10 @@ msgid "Delete list"
msgstr "Видалити ÑпиÑок"
msgid "Delete source branch"
-msgstr "Видалити гілку-джерело"
+msgstr ""
msgid "Delete this attachment"
-msgstr "Видалити це вкладеннÑ"
+msgstr ""
msgid "Deleted"
msgstr "Видалено"
@@ -3451,7 +3258,7 @@ msgid "DeployTokens|Your new project deploy token has been created."
msgstr "Створено ваш новий токен Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚Ñƒ."
msgid "Deployed"
-msgstr "Розгорнуто"
+msgstr ""
msgid "Deployed to"
msgstr "Розгорнуто на"
@@ -3474,9 +3281,6 @@ msgstr "Шаблони опиÑу дозволÑÑŽÑ‚ÑŒ визначити кон
msgid "Description:"
msgstr "ОпиÑ:"
-msgid "Designs"
-msgstr ""
-
msgid "Destroy"
msgstr "Знищити"
@@ -3484,7 +3288,7 @@ msgid "Details"
msgstr "Деталі"
msgid "Details (default)"
-msgstr "Деталі (за замовчуваннÑм)"
+msgstr ""
msgid "Detect host keys"
msgstr "ВиÑÐ²Ð»ÐµÐ½Ð½Ñ ÐºÐ»ÑŽÑ‡Ñ–Ð² хоÑта"
@@ -3517,10 +3321,10 @@ msgid "Disable group Runners"
msgstr "Вимкнути групові Runner'и"
msgid "Disable shared Runners"
-msgstr "Вимкнути загальні Runner'и"
+msgstr ""
msgid "Disabled"
-msgstr "Вимкнено"
+msgstr ""
msgid "Discard"
msgstr "Відхилити"
@@ -3544,25 +3348,22 @@ msgid "Discard review"
msgstr "Відхилити перевірку"
msgid "Discover GitLab Geo"
-msgstr "Відкрийте GitLab Geo"
+msgstr ""
msgid "Discover projects, groups and snippets. Share your projects with others"
msgstr "Відкрийте Ð´Ð»Ñ Ñебе групи, проекти та фрагменти коду. ПоділітьÑÑ Ñвоїми проектами з іншими"
msgid "Discuss a specific suggestion or question"
-msgstr "Обговорити конкретну пропозицію чи питаннÑ"
+msgstr ""
msgid "Discuss a specific suggestion or question that needs to be resolved"
-msgstr "Обговорити конкретну пропозицію або питаннÑ, що необхідно вирішити"
-
-msgid "Discussion"
-msgstr "ОбговореннÑ"
+msgstr ""
msgid "Dismiss"
msgstr "Відхилити"
msgid "Dismiss ConvDev introduction"
-msgstr "Відхилити вÑтуп до ConvDev"
+msgstr ""
msgid "Dismiss Cycle Analytics introduction box"
msgstr "Відхилити блок вÑтупу до Ðналитики Циклу"
@@ -3592,7 +3393,7 @@ msgid "Download"
msgstr "Завантажити"
msgid "Download artifacts"
-msgstr "Завантажити артефакти"
+msgstr ""
msgid "Download asset"
msgstr ""
@@ -3640,16 +3441,13 @@ msgid "Edit"
msgstr "Редагувати"
msgid "Edit %{name}"
-msgstr "Редагувати %{name}"
-
-msgid "Edit Deploy Key"
-msgstr "Редагувати ключ Ð´Ð»Ñ Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ"
+msgstr ""
msgid "Edit Label"
msgstr "Редагувати мітку"
msgid "Edit Milestone"
-msgstr "Редагувати етап"
+msgstr ""
msgid "Edit Pipeline Schedule %{id}"
msgstr "Редагувати Розклад Конвеєра %{id}"
@@ -3661,13 +3459,10 @@ msgid "Edit application"
msgstr "Редагувати заÑтоÑунок"
msgid "Edit comment"
-msgstr "Редагувати коментар"
+msgstr ""
msgid "Edit environment"
-msgstr "Редагувати Ñередовище"
-
-msgid "Edit file"
-msgstr "Редагувати файл"
+msgstr ""
msgid "Edit files in the editor and commit changes here"
msgstr "Редагуйте файли в редакторі і закомітьте зміни тут"
@@ -3679,9 +3474,6 @@ msgid "Edit identity for %{user_name}"
msgstr "Редагувати ідентифікацію Ð´Ð»Ñ %{user_name}"
msgid "Edit issues"
-msgstr "Редагувати задачі"
-
-msgid "Edit public deploy key"
msgstr ""
msgid "Elasticsearch"
@@ -3702,11 +3494,8 @@ msgstr "ÐдреÑи електронної пошти"
msgid "Embed"
msgstr "Вбудувати"
-msgid "Emojis|Something went wrong while loading emojis."
-msgstr ""
-
msgid "Empty file"
-msgstr "Порожній файл"
+msgstr ""
msgid "Enable"
msgstr "Увімкнути"
@@ -3733,7 +3522,7 @@ msgid "Enable classification control using an external service"
msgstr "Увімкнути контроль за клаÑифікацією за допомогою зовнішньої Ñлужби"
msgid "Enable error tracking"
-msgstr "Увімкнути відÑÑ‚ÐµÐ¶ÐµÐ½Ð½Ñ Ð¿Ð¾Ð¼Ð¸Ð»Ð¾Ðº"
+msgstr ""
msgid "Enable for this project"
msgstr "Увімкнути Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ проекту"
@@ -3741,9 +3530,6 @@ msgstr "Увімкнути Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ проекту"
msgid "Enable group Runners"
msgstr "Увімкнути групові Runner'и"
-msgid "Enable header and footer in emails"
-msgstr ""
-
msgid "Enable or disable the Pseudonymizer data collection."
msgstr "Увімкнути чи вимкнути збір даних Ð´Ð»Ñ Pseudonymizer."
@@ -3754,16 +3540,16 @@ msgid "Enable reCAPTCHA or Akismet and set IP limits."
msgstr "Увімкнути reCAPTCHA або Akismet та вÑтановити Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð¿Ð¾ IP."
msgid "Enable self approval of merge requests"
-msgstr "Дозволити ÑамоÑтійне Ð·Ð°Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñ–Ð² на злиттÑ"
+msgstr ""
msgid "Enable shared Runners"
-msgstr "Увімкнути загальні Runner'и"
+msgstr ""
msgid "Enable the Performance Bar for a given group."
msgstr "Увімкнути панель продуктивноÑÑ‚Ñ– Ð´Ð»Ñ Ð´Ð°Ð½Ð¾Ñ— групи."
msgid "Enable two-factor authentication"
-msgstr "Увімкнути двофакторну автентифікацію"
+msgstr ""
msgid "Enable usage ping"
msgstr "Увімкнути викориÑÑ‚Ð°Ð½Ð½Ñ ping"
@@ -3780,9 +3566,6 @@ msgstr "ЗавершуєтьÑÑ Ð¾ (за Грінвічем)"
msgid "Enforce SSO-only authentication for this group"
msgstr ""
-msgid "Enforce users to have dedicated group managed accounts for this group"
-msgstr ""
-
msgid "Enforced SSO"
msgstr ""
@@ -3801,23 +3584,26 @@ msgstr "Введіть Ð¾Ð¿Ð¸Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñƒ на злиттÑ"
msgid "Enter the merge request title"
msgstr "Введіть назву запиту на злиттÑ"
+msgid "Enter your Sentry API URL"
+msgstr ""
+
msgid "Environment variables"
-msgstr "Змінні Ñередовища"
+msgstr ""
msgid "Environment variables are applied to environments via the runner. They can be protected by only exposing them to protected branches or tags. You can use environment variables for passwords, secret keys, or whatever you want."
msgstr ""
msgid "Environment variables are configured by your administrator to be %{link_start}protected%{link_end} by default"
-msgstr "Змінні Ñередовища налаштовані адмініÑтратором бути %{link_start}захищеними%{link_end} за замовчуваннÑм"
+msgstr ""
msgid "Environment:"
-msgstr "Середовище:"
+msgstr ""
msgid "Environments"
msgstr "Середовища"
msgid "Environments allow you to track deployments of your application %{link_to_read_more}."
-msgstr "Середовища дозволÑÑŽÑ‚ÑŒ відÑтежувати Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð²Ð°ÑˆÐ¾Ð³Ð¾ заÑтоÑунку %{link_to_read_more}."
+msgstr ""
msgid "Environments|An error occurred while fetching the environments."
msgstr "Виникла помилка при завантаженні Ñередовищ."
@@ -3825,12 +3611,6 @@ msgstr "Виникла помилка при завантаженні Ñеред
msgid "Environments|An error occurred while making the request."
msgstr "Під Ñ‡Ð°Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñƒ ÑталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°."
-msgid "Environments|An error occurred while re-deploying the environment, please try again"
-msgstr ""
-
-msgid "Environments|An error occurred while rolling back the environment, please try again"
-msgstr ""
-
msgid "Environments|An error occurred while stopping the environment, please try again"
msgstr "Виникла помилка під Ñ‡Ð°Ñ Ð·ÑƒÐ¿Ð¸Ð½ÐºÐ¸ Ñередовища, будь лаÑка, Ñпробуйте ще раз"
@@ -3882,33 +3662,15 @@ msgstr "Відкрити працююче Ñередовище"
msgid "Environments|Pod logs from"
msgstr "Журнал Pod’а"
-msgid "Environments|Re-deploy"
-msgstr "Повторно розгорнути"
-
-msgid "Environments|Re-deploy environment %{environment_name}?"
-msgstr ""
-
-msgid "Environments|Re-deploy environment %{name}?"
-msgstr ""
-
msgid "Environments|Re-deploy to environment"
msgstr "Повторно розгорнути в Ñередовищі"
msgid "Environments|Read more about environments"
msgstr "ДізнайтеÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про Ñередовища"
-msgid "Environments|Rollback"
-msgstr ""
-
msgid "Environments|Rollback environment"
msgstr "Відкотити Ñередовище"
-msgid "Environments|Rollback environment %{environment_name}?"
-msgstr ""
-
-msgid "Environments|Rollback environment %{name}?"
-msgstr ""
-
msgid "Environments|Show all"
msgstr "Показати вÑÑ–"
@@ -3919,18 +3681,6 @@ msgid "Environments|Stop environment"
msgstr "Зупинити Ñередовище"
msgid "Environments|Stopping"
-msgstr "Зупинка"
-
-msgid "Environments|This action will relaunch the job for commit %{commit_id}, putting the environment in a previous version. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Environments|This action will relaunch the job for commit %{linkStart}%{commitId}%{linkEnd}, putting the environment in a previous version. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Environments|This action will run the job defined by %{name} for commit %{linkStart}%{commitId}%{linkEnd} putting the environment in a previous version. You can revert it by re-deploying the latest version of your application. Are you sure you want to continue?"
-msgstr ""
-
-msgid "Environments|This action will run the job defined by staging for commit %{commit_id}, putting the environment in a previous version. You can revert it by re-deploying the latest version of your application. Are you sure you want to continue?"
msgstr ""
msgid "Environments|Updated"
@@ -3955,7 +3705,7 @@ msgid "Epics let you manage your portfolio of projects more efficiently and with
msgstr "Епіки дозволÑÑŽÑ‚ÑŒ керувати вашим портфелем проектів ефективніше та з меншими зуÑиллÑми"
msgid "Epics|An error occurred while saving the %{epicDateType} date"
-msgstr "СталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° при збереженні дати %{epicDateType}"
+msgstr ""
msgid "Epics|How can I solve this?"
msgstr "Як Ñ Ð¼Ð¾Ð¶Ñƒ це вирішити?"
@@ -3982,16 +3732,13 @@ msgid "Error Reporting and Logging"
msgstr "Звіти про помилки та логуваннÑ"
msgid "Error Tracking"
-msgstr "ВідÑÑ‚ÐµÐ¶ÐµÐ½Ð½Ñ Ð¿Ð¾Ð¼Ð¸Ð»Ð¾Ðº"
-
-msgid "Error creating a new path"
-msgstr "Помилка при Ñтворенні нового шлÑху"
+msgstr ""
msgid "Error creating epic"
msgstr "Помилка при Ñтворенні епіку"
msgid "Error deleting %{issuableType}"
-msgstr "Помилка при видаленні %{issuableType}"
+msgstr ""
msgid "Error fetching contributors data."
msgstr "Помилка Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… учаÑників."
@@ -4036,55 +3783,28 @@ msgid "Error occurred when toggling the notification subscription"
msgstr "СталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° під Ñ‡Ð°Ñ Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð¿Ñ–Ð´Ð¿Ð¸Ñки на ÑповіщеннÑ"
msgid "Error rendering markdown preview"
-msgstr "Помилка при попередньому переглÑді markdown"
+msgstr ""
msgid "Error saving label update."
msgstr "Помилка при збереженні мітки."
msgid "Error updating %{issuableType}"
-msgstr "Помилка при оновленні %{issuableType}"
+msgstr ""
msgid "Error updating status for all todos."
-msgstr "Помилка Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ ÑтатуÑу Ð´Ð»Ñ Ð²ÑÑ–Ñ… нагадувань."
+msgstr "Помилка Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ ÑтатуÑу Ð´Ð»Ñ Ð²ÑÑ–Ñ… задач."
msgid "Error updating todo status."
-msgstr "Помилка при оновленні ÑтатуÑу нагадуваннÑ."
+msgstr "Помилка при оновленні ÑтатуÑу задачі."
msgid "Error while loading the merge request. Please try again."
msgstr "Помилка при завантаженні запита на злиттÑ. Будь лаÑка, Ñпробуйте знову."
msgid "Error:"
-msgstr "Помилка:"
-
-msgid "ErrorTracking|Active"
-msgstr ""
-
-msgid "ErrorTracking|After adding your Auth Token, use the 'Connect' button to load projects"
-msgstr ""
-
-msgid "ErrorTracking|Auth Token"
-msgstr ""
-
-msgid "ErrorTracking|Click 'Connect' to re-establish the connection to Sentry and activate the dropdown."
-msgstr ""
-
-msgid "ErrorTracking|Connection has failed. Re-check Auth Token and try again."
-msgstr ""
-
-msgid "ErrorTracking|Find your hostname in your Sentry account settings page"
-msgstr ""
-
-msgid "ErrorTracking|No projects available"
-msgstr ""
-
-msgid "ErrorTracking|Select project"
-msgstr ""
-
-msgid "ErrorTracking|To enable project selection, enter a valid Auth Token"
msgstr ""
msgid "Errors"
-msgstr "Помилки"
+msgstr ""
msgid "Estimated"
msgstr "За оцінками"
@@ -4108,10 +3828,10 @@ msgid "EventFilterBy|Filter by team"
msgstr "Фільтрувати по команді"
msgid "Events"
-msgstr "Події"
+msgstr ""
msgid "Every %{action} attempt has failed: %{job_error_message}. Please try again."
-msgstr "УÑÑ– Ñпроби %{action} закінчилиÑÑ Ð½ÐµÐ²Ð´Ð°Ñ‡ÐµÑŽ: %{job_error_message}. Будь лаÑка, Ñпробуйте знову."
+msgstr ""
msgid "Every day (at 4:00am)"
msgstr "Кожен день (в 4:00 ранку)"
@@ -4123,37 +3843,37 @@ msgid "Every week (Sundays at 4:00am)"
msgstr "Ð©Ð¾Ñ‚Ð¸Ð¶Ð½Ñ (в неділю о 4:00 ранку)"
msgid "Everyone"
-msgstr "Будь-хто"
+msgstr ""
msgid "Everyone can contribute"
msgstr "Кожен може зробити Ñвій внеÑок"
msgid "Everything you need to create a GitLab Pages site using GitBook."
-msgstr "Ð’Ñе, що потрібно Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñайту на GitLab Pages за допомогою GitBook."
+msgstr ""
msgid "Everything you need to create a GitLab Pages site using Hexo."
-msgstr "Ð’Ñе, що потрібно Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñайту на GitLab Pages за допомогою Hexo."
+msgstr ""
msgid "Everything you need to create a GitLab Pages site using Hugo."
-msgstr "Ð’Ñе, що потрібно Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñайту на GitLab Pages за допомогою Hugo."
+msgstr ""
msgid "Everything you need to create a GitLab Pages site using Jekyll."
-msgstr "Ð’Ñе, що потрібно Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñайту на GitLab Pages за допомогою Jekyll."
+msgstr ""
msgid "Everything you need to create a GitLab Pages site using plain HTML."
-msgstr "Ð’Ñе, що потрібно Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñайту на GitLab Pages за допомогою проÑтого HTML."
+msgstr ""
msgid "Except policy:"
msgstr ""
msgid "Existing Git repository"
-msgstr "ІÑнуючий репозиторій Git"
+msgstr ""
msgid "Existing folder"
-msgstr "ІÑнуюча папка"
+msgstr ""
msgid "Existing members and groups"
-msgstr "ІÑнуючі учаÑники та групи"
+msgstr ""
msgid "Expand"
msgstr "Розгорнути"
@@ -4161,9 +3881,6 @@ msgstr "Розгорнути"
msgid "Expand all"
msgstr "Розгорнути вÑе"
-msgid "Expand approvers"
-msgstr "Розгорнути ÑпиÑок затверджуючих оÑіб"
-
msgid "Expand sidebar"
msgstr "Розгорніть бічну панель"
@@ -4198,22 +3915,22 @@ msgid "Explore public groups"
msgstr "ПереглÑнути публічні групи"
msgid "Export as CSV"
-msgstr "ЕкÑпортувати Ñк CSV"
+msgstr ""
msgid "Export issues"
-msgstr "ЕкÑпортувати задачі"
+msgstr ""
msgid "External Classification Policy Authorization"
msgstr "Ð—Ð¾Ð²Ð½Ñ–ÑˆÐ½Ñ ÐšÐ»Ð°ÑÐ¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ ÐŸÐ¾Ð»Ñ–Ñ‚Ð¸ÐºÐ¸ Ðвторизації"
msgid "External URL"
-msgstr "Зовнішній URL"
+msgstr ""
msgid "External Wiki"
-msgstr "Ð—Ð¾Ð²Ð½Ñ–ÑˆÐ½Ñ Ð²Ñ–ÐºÑ–"
+msgstr ""
msgid "External authentication"
-msgstr "Ð—Ð¾Ð²Ð½Ñ–ÑˆÐ½Ñ Ð°Ð²Ñ‚ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ"
+msgstr "Ð—Ð¾Ð²Ð½Ñ–ÑˆÐ½Ñ Ð°ÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ"
msgid "External authorization denied access to this project"
msgstr "Ð—Ð¾Ð²Ð½Ñ–ÑˆÐ½Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ñ–Ñ Ð·Ð°Ð±Ð¾Ñ€Ð¾Ð½Ð¸Ð»Ð° доÑтуп до цього проекту"
@@ -4251,7 +3968,7 @@ msgstr "Ðе вдалоÑÑ Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ð½ÑƒÑ‚Ð¸ до"
msgid "Failed to load emoji list."
msgstr "Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ ÑпиÑок Ñмайликів."
-msgid "Failed to load errors from Sentry. Error message: %{errorMessage}"
+msgid "Failed to load errors from Sentry"
msgstr ""
msgid "Failed to remove issue from board, please try again."
@@ -4288,10 +4005,10 @@ msgid "Feature Flags"
msgstr "Перемикачі функцій"
msgid "FeatureFlags|* (All Environments)"
-msgstr "* (УÑÑ– Ñередовища)"
+msgstr ""
msgid "FeatureFlags|* (All environments)"
-msgstr "* (вÑÑ– Ñередовища)"
+msgstr ""
msgid "FeatureFlags|API URL"
msgstr "URL-адреÑа API"
@@ -4309,46 +4026,49 @@ msgid "FeatureFlags|Create feature flag"
msgstr "Створити перемикач функції"
msgid "FeatureFlags|Delete %{name}?"
-msgstr "Видалити %{name}?"
+msgstr ""
msgid "FeatureFlags|Delete feature flag"
-msgstr "Вимкнути перемикач функції"
+msgstr ""
msgid "FeatureFlags|Description"
msgstr "ОпиÑ"
+msgid "FeatureFlags|Edit %{feature_flag_name}"
+msgstr "Редагувати %{feature_flag_name}"
+
msgid "FeatureFlags|Edit Feature Flag"
msgstr "Редагувати перемикач функції"
msgid "FeatureFlags|Environment Spec"
-msgstr "Ð¡Ð¿ÐµÑ†Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ Ñередовища"
+msgstr ""
msgid "FeatureFlags|Environment Specs"
-msgstr "Специфікації Ñередовищ"
+msgstr ""
msgid "FeatureFlags|Feature Flag"
msgstr "Перемикач функції"
msgid "FeatureFlags|Feature Flag behavior is built up by creating a set of rules to define the status of target environments. A default wildcare rule %{codeStart}*%{codeEnd} for %{boldStart}All Environments%{boldEnd} is set, and you are able to add as many rules as you need by choosing environment specs below. You can toggle the behavior for each of your rules to set them %{boldStart}Active%{boldEnd} or %{boldStart}Inactive%{boldEnd}."
-msgstr "Поведінка перемикачів функцій ÑтворюєтьÑÑ ÑˆÐ»Ñхом ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð°Ð±Ð¾Ñ€Ñƒ правил Ð´Ð»Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñтану цільових Ñередовищ. Правило за замовчуваннÑм %{codeStart}*%{codeEnd} Ð´Ð»Ñ %{boldStart}Ð’ÑÑ–Ñ… Ñередовищ%{boldEnd} вже налаштовано, Ñ– ви можете додати Ñтільки правил, Ñкільки вам потрібно, шлÑхом Ð·Ð°Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ñпецифікацій Ñередовищ нижче. Ви можете перемикати Ñтан Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ з ваших правил, щоб зробити Ñ—Ñ… %{boldStart}Ðктивними%{boldEnd} або %{boldStart}Ðеактивними%{boldEnd}."
+msgstr ""
msgid "FeatureFlags|Feature Flags"
-msgstr "Перемикачі функцій"
+msgstr ""
msgid "FeatureFlags|Feature Flags allow you to configure your code into different flavors by dynamically toggling certain functionality."
-msgstr "Перемикачі функцій дозволÑÑŽÑ‚ÑŒ налаштовувати ваш код по-різному за допомогою динамічного ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð½Ñ Ñ‡Ð¸ Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð½Ñ Ð¿ÐµÐ²Ð½Ð¾Ñ— функціональноÑÑ‚Ñ–."
+msgstr ""
msgid "FeatureFlags|Feature flag %{name} will be removed. Are you sure?"
-msgstr "Перемикач функції %{name} буде видалено. Ви впевнені?"
+msgstr ""
msgid "FeatureFlags|Get started with Feature Flags"
-msgstr "Розпочати роботу з перемикачами функцій"
+msgstr ""
msgid "FeatureFlags|Inactive"
msgstr "Ðеактивний"
msgid "FeatureFlags|Inactive flag for %{scope}"
-msgstr "Ðеактивний перемикач функції Ð´Ð»Ñ %{scope}"
+msgstr ""
msgid "FeatureFlags|Install a %{docs_link_start}compatible client library%{docs_link_end} and specify the API URL, application name, and instance ID during the configuration setup."
msgstr "Ð’Ñтановіть %{docs_link_start}ÑуміÑну клієнтÑьку бібліотеку%{docs_link_end} Ñ– вкажіть URL адреÑу API, назву заÑтоÑунку та ідентифікатор інÑтанÑа під Ñ‡Ð°Ñ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ."
@@ -4357,10 +4077,10 @@ msgid "FeatureFlags|Instance ID"
msgstr "Ідентифікатор ІнÑтанÑу"
msgid "FeatureFlags|Loading Feature Flags"
-msgstr "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÐµÐ¼Ð¸ÐºÐ°Ñ‡Ñ–Ð² функцій"
+msgstr ""
msgid "FeatureFlags|More Information"
-msgstr "Більше інформації"
+msgstr ""
msgid "FeatureFlags|More information"
msgstr "Більше інформації"
@@ -4374,23 +4094,26 @@ msgstr "Ðовий"
msgid "FeatureFlags|New Feature Flag"
msgstr "Ðовий перемикач функції"
+msgid "FeatureFlags|Save changes"
+msgstr "Зберегти зміни"
+
msgid "FeatureFlags|Status"
msgstr "СтатуÑ"
msgid "FeatureFlags|Target environments"
-msgstr "Цільові Ñередовища"
+msgstr ""
msgid "FeatureFlags|There are no active Feature Flags"
-msgstr "Ðемає активних перемикачів функцій"
+msgstr ""
msgid "FeatureFlags|There are no inactive Feature Flags"
-msgstr "Ðемає неактивних перемикачів функцій"
+msgstr ""
msgid "FeatureFlags|There was an error fetching the feature flags."
-msgstr "Помилка при отриманні перемикачів функцій."
+msgstr ""
msgid "FeatureFlags|Try again in a few moments or contact your support team."
-msgstr "Повторіть Ñпробу через деÑкий Ñ‡Ð°Ñ Ð°Ð±Ð¾ звернітьÑÑ Ð´Ð¾ вашої Ñлужби підтримки."
+msgstr ""
msgid "Feb"
msgstr "лют."
@@ -4403,31 +4126,31 @@ msgstr "ÐŸÐ¾Ð»Ñ Ð½Ð° цій Ñторінці зараз недоÑтупні д
msgid "File"
msgid_plural "Files"
-msgstr[0] "Файл"
-msgstr[1] "Файли"
-msgstr[2] "Файлів"
-msgstr[3] "Файлів"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
msgid "File added"
-msgstr "Файл додано"
+msgstr ""
msgid "File browser"
-msgstr "Файловий менеджер"
+msgstr ""
msgid "File deleted"
-msgstr "Файл видалено"
+msgstr ""
msgid "File mode changed from %{a_mode} to %{b_mode}"
msgstr ""
msgid "File moved"
-msgstr "Файл переміщено"
+msgstr ""
msgid "File templates"
msgstr "Шаблони файлів"
msgid "File upload error."
-msgstr "Помилка Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ."
+msgstr ""
msgid "Files"
msgstr "Файли"
@@ -4445,28 +4168,31 @@ msgid "Filter by %{issuable_type} that are currently opened."
msgstr "Фільтрувати відкриті за %{issuable_type}."
msgid "Filter by commit message"
-msgstr "Фільтрувати за повідомленнÑм Ð´Ð»Ñ ÐºÐ¾Ð¼Ñ–Ñ‚Ñƒ"
+msgstr "Фільтрувати за коміт-повідомленнÑм"
msgid "Filter by milestone name"
-msgstr "Фільтрувати за назвою етапу"
+msgstr ""
msgid "Filter by two-factor authentication"
-msgstr "Фільтрувати за двофакторною автентифікацією"
+msgstr ""
msgid "Filter results by group"
-msgstr "Фільтрувати результати за групою"
+msgstr ""
msgid "Filter results by project"
-msgstr "Фільтрувати результати за проектом"
+msgstr ""
msgid "Filter..."
msgstr "Фільтр..."
+msgid "Find and manage Auth Tokens in your Sentry account settings page."
+msgstr ""
+
msgid "Find by path"
msgstr "Пошук по шлÑху"
msgid "Find existing members by name"
-msgstr "Знайти Ñ–Ñнуючих учаÑників за ім'Ñм"
+msgstr ""
msgid "Find file"
msgstr "Знайти файл"
@@ -4477,14 +4203,11 @@ msgstr "Знайдіть завантажений ZIP-файл і розпаку
msgid "Find the newly extracted <code>Takeout/Google Code Project Hosting/GoogleCodeProjectHosting.json</code> file."
msgstr "Знайдіть щойно розпакований <code>Takeout/Google Code Project Hosting/GoogleCodeProjectHosting.json</code> файл."
-msgid "Fingerprint"
-msgstr ""
-
msgid "Fingerprints"
msgstr "Відбитки пальців"
msgid "Finish editing this message first!"
-msgstr "Спочатку завершіть Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ повідомленнÑ!"
+msgstr ""
msgid "Finish review"
msgstr "Завершити перевірку"
@@ -4493,7 +4216,7 @@ msgid "Finished"
msgstr "Завершено"
msgid "First day of the week"
-msgstr "Перший день тижнÑ"
+msgstr ""
msgid "FirstPushedBy|First"
msgstr "Перший"
@@ -4541,7 +4264,7 @@ msgid "For internal projects, any logged in user can view pipelines and access j
msgstr "Ð”Ð»Ñ Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ–Ñ… проектів будь-Ñкий зареєÑтрований кориÑтувач може переглÑдати конвеєри та отримати доÑтуп до інформації про роботу (логи та артефакти)"
msgid "For more info, read the documentation."
-msgstr "Ð”Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ¾Ð²Ð¾Ñ— інформації читайте документацію."
+msgstr ""
msgid "For more information, go to the "
msgstr "Ð”Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ¾Ð²Ð¾Ñ— інформації, відвідайте "
@@ -4568,7 +4291,7 @@ msgid "Forking in progress"
msgstr "ВідбуваєтьÑÑ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ„Ð¾Ñ€ÐºÑƒ"
msgid "Forks"
-msgstr "Форки"
+msgstr ""
msgid "Format"
msgstr "Формат"
@@ -4579,8 +4302,8 @@ msgstr "Знайдено помилки у вашому .gitlab-ci.yml:"
msgid "Free Trial of GitLab.com Gold"
msgstr "Безкоштовна пробна верÑÑ–Ñ GitLab.com Gold"
-msgid "From %{providerTitle}"
-msgstr ""
+msgid "From %{provider_title}"
+msgstr "З %{provider_title}"
msgid "From Bitbucket"
msgstr "З Bitbucket"
@@ -4609,21 +4332,12 @@ msgstr "З етапів:"
msgid "From the Kubernetes cluster details view, install Runner from the applications list"
msgstr "Із Ñторінки деталей Kubernetes-клаÑтера, вÑтановіть runner зі ÑпиÑку заÑтоÑунків"
-msgid "GPG Key ID:"
-msgstr ""
-
msgid "GPG Keys"
msgstr "GPG ключі"
-msgid "GPG signature (loading...)"
-msgstr ""
-
msgid "General"
msgstr "Загальні"
-msgid "General Settings"
-msgstr ""
-
msgid "General pipelines"
msgstr "Загальні конвеєри"
@@ -4631,7 +4345,7 @@ msgid "Generate a default set of labels"
msgstr "Створити Ñтандартний набір міток"
msgid "Generate key"
-msgstr "Згенерувати ключ"
+msgstr ""
msgid "Geo"
msgstr "Geo"
@@ -4648,9 +4362,6 @@ msgstr "Вузол не працює або зламаний."
msgid "GeoNodeSyncStatus|Node is slow, overloaded, or it just recovered after an outage."
msgstr "Вузол працює повільно, перевантажений або тільки що відновивÑÑ Ð¿Ñ–ÑÐ»Ñ Ð·Ð±Ð¾ÑŽ."
-msgid "GeoNodes|Alternate URL"
-msgstr ""
-
msgid "GeoNodes|Checksummed"
msgstr "Із контрольною Ñумою"
@@ -4715,7 +4426,7 @@ msgid "GeoNodes|New node"
msgstr "Ðовий вузол"
msgid "GeoNodes|Node Authentication was successfully repaired."
-msgstr "Ðвтентифікацію вузла уÑпішно полагоджено."
+msgstr "Ðутентифікацію вузла уÑпішно полагоджено."
msgid "GeoNodes|Node was successfully removed."
msgstr "Вузол уÑпішно видалено."
@@ -4727,10 +4438,10 @@ msgid "GeoNodes|Out of sync"
msgstr "РозÑинхронізовані"
msgid "GeoNodes|Removing a primary node stops the sync process for all nodes. Syncing cannot be resumed without losing some data on all secondaries. In this case we would recommend setting up all nodes from scratch. Are you sure?"
-msgstr "Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð¾Ñновного вузла зупинÑÑ” Ð¿Ñ€Ð¾Ñ†ÐµÑ Ñинхронізації Ð´Ð»Ñ Ð²ÑÑ–Ñ… вузлів. Синхронізацію неможливо буде відновити без втрати деÑких даних на вÑÑ–Ñ… вторинних вузлах. У цьому випадку рекомендовано налаштувати вÑÑ– вузли з нулÑ. Ви впевнені?"
+msgstr ""
msgid "GeoNodes|Removing a secondary node stops the sync process. It is not currently possible to add back the same node without losing some data. We only recommend setting up a new secondary node in this case. Are you sure?"
-msgstr "Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð²Ñ‚Ð¾Ñ€Ð¸Ð½Ð½Ð¾Ð³Ð¾ вузла зупинÑÑ” Ð¿Ñ€Ð¾Ñ†ÐµÑ Ñинхронізації. Ðаразі неможливо додати назад той Ñамий вузол без втрати деÑких даних. У цьому випадку рекомендовано Ñтворити новий вторинний вузол. Ви впевнені?"
+msgstr ""
msgid "GeoNodes|Replication slot WAL"
msgstr "Слот реплікації WAL"
@@ -4805,7 +4516,7 @@ msgid "GeoNodes|Wikis verified with their counterparts on the Primary node"
msgstr "Вікі перевірено із їхніми копіÑми на первинному вузлі"
msgid "GeoNodes|With %{geo} you can install a special read-only and replicated instance anywhere. Before you add nodes, follow the %{instructions} in the exact order they appear."
-msgstr "З %{geo} ви можете вÑтановити будь-де Ñпеціальній реплікований інÑÑ‚Ð°Ð½Ñ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ. Перед тим, Ñк додавати вузли, дотримайтеÑÑ %{instructions} в точному порÑдку."
+msgstr ""
msgid "GeoNodes|You have configured Geo nodes using an insecure HTTP connection. We recommend the use of HTTPS."
msgstr "Ви налаштували Geo-вузли через незахищене HTTP-з’єднаннÑ. Ми рекомендуємо викориÑтовувати HTTPS."
@@ -4831,24 +4542,9 @@ msgstr "Ð’ÑÑ– проекти плануютьÑÑ Ð´Ð»Ñ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾Ñ— пÐ
msgid "Geo|All projects are being scheduled for re-sync"
msgstr "Ð’ÑÑ– проекти плануютьÑÑ Ð´Ð»Ñ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾Ñ— Ñинхронізації"
-msgid "Geo|Alternate URL"
-msgstr ""
-
msgid "Geo|Batch operations"
msgstr "Групові операції"
-msgid "Geo|Choose which groups you wish to synchronize to this secondary node."
-msgstr ""
-
-msgid "Geo|Control the maximum concurrency of LFS/attachment backfill for this secondary node"
-msgstr ""
-
-msgid "Geo|Control the maximum concurrency of verification operations for this Geo node"
-msgstr ""
-
-msgid "Geo|Control the minimum interval in days that a repository should be reverified for this primary node"
-msgstr ""
-
msgid "Geo|Could not remove tracking entry for an existing project."
msgstr "Ðе вдалоÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ Ð·Ð°Ð¿Ð¸Ñ Ð²Ñ–Ð´ÑÑ‚ÐµÐ¶ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ñ–Ñнуючого проекту."
@@ -4868,7 +4564,7 @@ msgid "Geo|In sync"
msgstr "Синхронізовано"
msgid "Geo|Last repository check run"
-msgstr "ОÑÑ‚Ð°Ð½Ð½Ñ Ð·Ð°Ð¿ÑƒÑк перевірки репозиторію"
+msgstr ""
msgid "Geo|Last successful sync"
msgstr "ОÑÑ‚Ð°Ð½Ð½Ñ ÑƒÑпішна ÑинхронізаціÑ"
@@ -4907,7 +4603,7 @@ msgid "Geo|Projects in certain storage shards"
msgstr "Проекти в певних Ñегментах Ñховищ"
msgid "Geo|Re-verification interval"
-msgstr "Інтервал повторної перевірки"
+msgstr ""
msgid "Geo|Recheck"
msgstr "Повторна перевірка"
@@ -4936,9 +4632,6 @@ msgstr "КількіÑÑ‚ÑŒ Ñпроб"
msgid "Geo|Select groups to replicate."
msgstr "Виберіть групи Ð´Ð»Ñ Ñ€ÐµÐ¿Ð»Ñ–ÐºÐ°Ñ†Ñ–Ñ—."
-msgid "Geo|Selective synchronization"
-msgstr ""
-
msgid "Geo|Shards to synchronize"
msgstr "Сегменти Ð´Ð»Ñ Ñинхронізації"
@@ -4951,21 +4644,12 @@ msgstr "Синхронізовано"
msgid "Geo|Synchronization failed - %{error}"
msgstr "Ð¡Ð¸Ð½Ñ…Ñ€Ð¾Ð½Ñ–Ð·Ð°Ñ†Ñ–Ñ Ð½ÐµÐ²Ð´Ð°Ð»Ð°: %{error}"
-msgid "Geo|This is a primary node"
-msgstr ""
-
-msgid "Geo|To support OAuth logins to this node at a different domain than URL"
-msgstr ""
-
msgid "Geo|Tracking entry for project (%{project_id}) was successfully removed."
msgstr "Ð—Ð°Ð¿Ð¸Ñ Ð²Ñ–Ð´ÑÑ‚ÐµÐ¶ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚Ñƒ (%{project_id}) уÑпішно видалено."
msgid "Geo|Tracking entry will be removed. Are you sure?"
msgstr "Буде видалено Ð·Ð°Ð¿Ð¸Ñ Ð¿Ñ€Ð¾ відÑтеженнÑ. Ви впевнені?"
-msgid "Geo|URL"
-msgstr ""
-
msgid "Geo|Unknown state"
msgstr "Ðевідомий Ñтан"
@@ -4985,7 +4669,7 @@ msgid "Geo|You are on a secondary, <b>read-only</b> Geo node. You may be able to
msgstr "Ви знаходитеÑÑŒ на вторинному <b>лише Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ</b> Geo-вузлі. Ви зможете вноÑити лише обмежену кількіÑÑ‚ÑŒ змін та виконувати обмежений набір операцій з цієї Ñторінки."
msgid "Geo|You need a different license to use Geo replication"
-msgstr "Вам потрібна інша Ð»Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ Ð½Ð° викориÑÑ‚Ð°Ð½Ð½Ñ Geo реплікації"
+msgstr "Вам потрібна інша Ð»Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ Ð½Ð° викориÑÑ‚Ð°Ð½Ð½Ñ Ð³ÐµÐ¾Ð³Ñ€Ð°Ñ„Ñ–Ñ‡Ð½Ð¾Ñ— реплікації"
msgid "Geo|misconfigured"
msgstr "неправильно налаштований"
@@ -5000,16 +4684,16 @@ msgid "Get a free instance review"
msgstr "Отримайте безкоштовну оцінку інÑтанÑа"
msgid "Get started with error tracking"
-msgstr "Розпочати роботу з відÑтеженнÑм помилок"
+msgstr ""
msgid "Getting started with releases"
-msgstr "Розпочати роботу з релізами"
+msgstr ""
msgid "Git"
msgstr "Git"
msgid "Git global setup"
-msgstr "Глобальні Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Git"
+msgstr ""
msgid "Git repository URL"
msgstr "URL Git-репозиторіÑ"
@@ -5078,29 +4762,20 @@ msgid "Gitea Import"
msgstr "Імпорт з Gitea"
msgid "Given access %{time_ago}"
-msgstr "Ðадано доÑтуп %{time_ago}"
+msgstr ""
msgid "Go Back"
msgstr "ПовернутиÑÑ"
-msgid "Go Micro is a framework for micro service development."
-msgstr ""
-
msgid "Go back"
msgstr "ПовернутиÑÑ"
-msgid "Go full screen"
-msgstr "Ðа повний екран"
-
msgid "Go to"
msgstr "Перейти до"
msgid "Go to %{link_to_google_takeout}."
msgstr "Перейти до %{link_to_google_takeout}."
-msgid "Go to project"
-msgstr "Перейти до проекту"
-
msgid "Google Code import"
msgstr "Імпорт з Google Code"
@@ -5108,13 +4783,13 @@ msgid "Google Takeout"
msgstr "Google Takeout"
msgid "Google authentication is not %{link_to_documentation}. Ask your GitLab administrator if you want to use this service."
-msgstr "ÐÐ²Ñ‚ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ Google не %{link_to_documentation}. ПопроÑÑ–Ñ‚ÑŒ Ñвого адмініÑтратора GitLab, Ñкщо ви хочете ÑкориÑтатиÑÑ Ñ†Ð¸Ð¼ ÑервіÑом."
+msgstr "ÐÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ Google не %{link_to_documentation}. ПопроÑÑ–Ñ‚ÑŒ Ñвого адмініÑтратора GitLab, Ñкщо ви хочете ÑкориÑтатиÑÑ Ñ†Ð¸Ð¼ ÑервіÑом."
msgid "Got it!"
msgstr "Зрозуміло!"
msgid "Grant access"
-msgstr "Ðадати доÑтуп"
+msgstr ""
msgid "Graph"
msgstr "Графік"
@@ -5131,9 +4806,6 @@ msgstr "Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ð³Ñ€ÑƒÐ¿Ð¸ Git LFS:"
msgid "Group ID"
msgstr "Ідентифікатор групи"
-msgid "Group ID: %{group_id}"
-msgstr ""
-
msgid "Group Runners"
msgstr "Групові Runner'и"
@@ -5161,17 +4833,14 @@ msgstr "Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ групу:"
msgid "Group maintainers can register group runners in the %{link}"
msgstr "Керівники групи можуть зареєÑтрувати групові runner'и через %{link}"
-msgid "Group managed accounts"
-msgstr ""
-
msgid "Group name"
msgstr "Ðазва групи"
msgid "Group overview content"
-msgstr "ВміÑÑ‚ оглÑдової Ñторінки групи"
+msgstr ""
msgid "Group:"
-msgstr "Група:"
+msgstr ""
msgid "Group: %{group_name}"
msgstr "Група: %{group_name}"
@@ -5189,48 +4858,33 @@ msgid "GroupRoadmap|The roadmap shows the progress of your epics along a timelin
msgstr "План-графік епіків відображає Ñтан ваших епіків у чаÑÑ–"
msgid "GroupRoadmap|To view the roadmap, add a start or due date to one of your epics in this group or its subgroups; from %{startDate} to %{endDate}."
-msgstr "Ð”Ð»Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду плану-графіку, додайте дату початку чи Ð·Ð°ÐºÑ–Ð½Ñ‡ÐµÐ½Ð½Ñ Ð´Ð¾ одного з ваших епіків в цій групі або Ñ—Ñ— підгрупах; від %{startDate} до %{endDate}."
+msgstr ""
msgid "GroupRoadmap|To widen your search, change or remove filters; from %{startDate} to %{endDate}."
-msgstr "Щоб розширити пошук, змініть або видаліть фільтри; від %{startDate} до %{endDate}."
+msgstr ""
msgid "GroupRoadmap|Until %{dateWord}"
msgstr "До %{dateWord}"
-msgid "GroupSettings|Auto DevOps pipeline was updated for the group"
-msgstr ""
-
-msgid "GroupSettings|Auto DevOps will automatically build, test and deploy your application based on a predefined Continuous Integration and Delivery configuration. %{auto_devops_start}Learn more about Auto DevOps%{auto_devops_end}"
-msgstr ""
-
msgid "GroupSettings|Badges"
msgstr "Значки"
msgid "GroupSettings|Custom project templates"
-msgstr "ВлаÑні шаблони проектів"
+msgstr ""
msgid "GroupSettings|Customize your group badges."
msgstr "Ðалаштувати значки групи."
-msgid "GroupSettings|Default to Auto DevOps pipeline for all projects within this group"
-msgstr ""
-
msgid "GroupSettings|Learn more about badges."
msgstr "ДізнайтеÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про значки."
msgid "GroupSettings|Learn more about group-level project templates."
-msgstr "Докладніше про шаблони проектів на рівні групи."
+msgstr ""
msgid "GroupSettings|Prevent sharing a project within %{group} with other groups"
msgstr "Заборонити Ñпільний доÑтуп до проекту в рамках %{group} з іншими групами"
msgid "GroupSettings|Select a sub-group as the custom project template source for this group."
-msgstr "Виберіть підгрупу Ñк джерело влаÑних шаблонів проектів Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— групи."
-
-msgid "GroupSettings|The Auto DevOps pipeline will run if no alternative CI configuration file is found."
-msgstr ""
-
-msgid "GroupSettings|There was a problem updating Auto DevOps pipeline: %{error_messages}."
msgstr ""
msgid "GroupSettings|This setting is applied on %{ancestor_group} and has been overridden on this subgroup."
@@ -5258,7 +4912,7 @@ msgid "Groups can also be nested by creating %{subgroup_docs_link_start}subgroup
msgstr "Групи також можуть бути вкладеними при викориÑтанні %{subgroup_docs_link_start}підгруп%{subgroup_docs_link_end}."
msgid "Groups with access to <strong>%{project_name}</strong>"
-msgstr "Групи з доÑтупом до <strong>%{project_name}</strong>"
+msgstr ""
msgid "GroupsDropdown|Frequently visited"
msgstr "ЧаÑто відвідувані"
@@ -5360,7 +5014,7 @@ msgid "Here is the public SSH key that needs to be added to the remote server. F
msgstr "Це відкритий (публічний) SSH ключ, Ñкий потрібно додати на віддалений Ñервер. Ð”Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ¾Ð²Ð¾Ñ— інформації, звернітьÑÑ Ð´Ð¾ документації."
msgid "Hide file browser"
-msgstr "Сховати файловий менеджер"
+msgstr ""
msgid "Hide host keys manual input"
msgstr "Сховати ввід ключів хоÑта"
@@ -5376,7 +5030,7 @@ msgstr[2] "Сховати значень"
msgstr[3] "Сховати значень"
msgid "Hide values"
-msgstr "Сховати значеннÑ"
+msgstr ""
msgid "History"
msgstr "ІÑторіÑ"
@@ -5384,11 +5038,8 @@ msgstr "ІÑторіÑ"
msgid "Housekeeping successfully started"
msgstr "ÐžÑ‡Ð¸Ñ‰ÐµÐ½Ð½Ñ ÑƒÑпішно розпочато"
-msgid "Housekeeping, export, path, transfer, remove, archive."
-msgstr ""
-
msgid "However, you are already a member of this %{member_source}. Sign in using a different account to accept the invitation."
-msgstr "Проте ви вже Ñ” учаÑником цього %{member_source}. Увійдіть, викориÑтовуючи інший обліковий запиÑ, щоб прийнÑти запрошеннÑ."
+msgstr ""
msgid "I accept the %{terms_link}"
msgstr "Я приймаю %{terms_link}"
@@ -5469,7 +5120,7 @@ msgid "If you already have files you can push them using the %{link_to_cli} belo
msgstr "Якщо у Ð²Ð°Ñ ÑƒÐ¶Ðµ Ñ” файли, ви можете відправити Ñ—Ñ… за допомогою %{link_to_cli} нижче."
msgid "If your HTTP repository is not publicly accessible, add authentication information to the URL: <code>https://username:password@gitlab.company.com/group/project.git</code>."
-msgstr "Якщо ваш HTTP-репозиторій не Ñ” публічним, додайте дані Ð´Ð»Ñ Ð°Ð²Ñ‚ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ— до URL: <code>https://username:password@gitlab.company.com/group/project.git</code>."
+msgstr "Якщо ваш HTTP-репозиторій не Ñ” публічним, додайте дані Ð´Ð»Ñ Ð°ÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ— до URL: <code>https://username:password@gitlab.company.com/group/project.git</code>."
msgid "ImageDiffViewer|2-up"
msgstr "2 поруч"
@@ -5481,13 +5132,13 @@ msgid "ImageDiffViewer|Swipe"
msgstr "Ðакладені (проведеннÑ)"
msgid "Impersonation has been disabled"
-msgstr "УоÑÐ¾Ð±Ð»ÐµÐ½Ð½Ñ Ð±ÑƒÐ»Ð¾ вимкнено"
+msgstr ""
msgid "Import"
msgstr "Імпорт"
msgid "Import CSV"
-msgstr "Імпортувати CSV"
+msgstr ""
msgid "Import Projects from Gitea"
msgstr "Імпортувати проекти з Gitea"
@@ -5508,13 +5159,13 @@ msgid "Import in progress"
msgstr "Імпорт триває"
msgid "Import issues"
-msgstr "Імпорт задач"
+msgstr ""
msgid "Import members"
-msgstr "Імпортувати учаÑників"
+msgstr ""
msgid "Import members from another project"
-msgstr "Імпортувати учаÑників з іншого проекту"
+msgstr ""
msgid "Import multiple repositories by uploading a manifest file."
msgstr "Імпортувати кілька репозиторіїв, надіÑлавши файл маніфеÑту."
@@ -5523,7 +5174,7 @@ msgid "Import project"
msgstr "Імпорт проекту"
msgid "Import project members"
-msgstr "Імпортувати учаÑників проекту"
+msgstr ""
msgid "Import projects from Bitbucket"
msgstr "Імпортувати проекти з Bitbucket"
@@ -5552,24 +5203,9 @@ msgstr "Імпорт репозиторію"
msgid "Import timed out. Import took longer than %{import_jobs_expiration} seconds"
msgstr ""
-msgid "Import/Export illustration"
-msgstr ""
-
msgid "ImportButtons|Connect repositories from"
msgstr "Підключити репозиторії із"
-msgid "ImportProjects|Importing the project failed"
-msgstr ""
-
-msgid "ImportProjects|Requesting your %{provider} repositories failed"
-msgstr ""
-
-msgid "ImportProjects|Select the projects you want to import"
-msgstr ""
-
-msgid "ImportProjects|Updating the imported projects failed"
-msgstr ""
-
msgid "Improve Issue boards with GitLab Enterprise Edition."
msgstr "Покращити дошки обговорень за допомогою верÑÑ–Ñ— GitLab Enterprise Edition."
@@ -5592,19 +5228,19 @@ msgid "Include a Terms of Service agreement and Privacy Policy that all users mu
msgstr "Включити угоду про Ð½Ð°Ð´Ð°Ð½Ð½Ñ Ð¿Ð¾Ñлуг та правила конфіденційноÑÑ‚Ñ–, Ñкі повинні прийнÑти вÑÑ– кориÑтувачі."
msgid "Include merge request description"
-msgstr "Додайте Ð¾Ð¿Ð¸Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñƒ на злиттÑ"
+msgstr ""
msgid "Include the username in the URL if required: <code>https://username@gitlab.company.com/group/project.git</code>."
msgstr "Якщо необхідно додайте ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача в URL: <code>https: //username@gitlab.company.com/group/project.git</code>."
msgid "Includes an MVC structure to help you get started."
-msgstr "Включає Ñтруктуру MVC, щоб допомогти вам розпочати роботу."
+msgstr ""
msgid "Includes an MVC structure, Gemfile, Rakefile, along with many others, to help you get started."
-msgstr "Включає Ñтруктуру MVC, Gemfile, Rakefile, а також багато іншого, щоб допомогти вам розпочати роботу."
+msgstr ""
msgid "Includes an MVC structure, mvnw and pom.xml to help you get started."
-msgstr "Включає Ñтруктуру MVC, mvnw Ñ– pom.xml, щоб допомогти вам розпочати роботу."
+msgstr ""
msgid "Incompatible Project"
msgstr "ÐеÑуміÑний проект"
@@ -5621,16 +5257,7 @@ msgstr "Введіть ключі хоÑта вручну"
msgid "Input your repository URL"
msgstr "Введіть ваш URL репозиторію"
-msgid "Insert a quote"
-msgstr "Ð’Ñтавити цитату"
-
-msgid "Insert code"
-msgstr "Ð’Ñтавити код"
-
msgid "Insert suggestion"
-msgstr "Додати пропозицію"
-
-msgid "Insights"
msgstr ""
msgid "Install GitLab Runner"
@@ -5665,7 +5292,7 @@ msgid "Interested parties can even contribute by pushing commits if they want to
msgstr "Зацікавлені Ñторони за бажаннÑм можуть навіть робити внеÑки шлÑхом Ð²Ñ–Ð´Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ ÐºÐ¾Ð¼Ñ–Ñ‚Ñ–Ð²."
msgid "Internal"
-msgstr "Внутрішній"
+msgstr ""
msgid "Internal - The group and any internal projects can be viewed by any logged in user."
msgstr "Ð’Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ â€” будь-Ñкий автентифікований кориÑтувач має доÑтуп до цієї групи та уÑÑ–Ñ… Ñ—Ñ— внутрішніх проектів."
@@ -5685,11 +5312,8 @@ msgstr "ПредÑтавлÑємо аналітику циклу"
msgid "Introducing Your Conversational Development Index"
msgstr ""
-msgid "Invalid input, please avoid emojis"
-msgstr "Ðекорректний ввід, будь лаÑка, уникайте Ñмайликів"
-
msgid "Invitation"
-msgstr "ЗапрошеннÑ"
+msgstr ""
msgid "Invite"
msgstr "ЗапрошеннÑ"
@@ -5698,7 +5322,7 @@ msgid "Invite group"
msgstr ""
msgid "Invite member"
-msgstr "ЗапроÑити учаÑника"
+msgstr ""
msgid "Invoke Count"
msgstr ""
@@ -5706,9 +5330,6 @@ msgstr ""
msgid "Invoke Time"
msgstr ""
-msgid "IssuableStatus|Closed (%{moved_link_start}moved%{moved_link_end})"
-msgstr ""
-
msgid "Issue"
msgstr "Задача"
@@ -5721,9 +5342,6 @@ msgstr "Режим фокуÑÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð´Ð¾ÑˆÐºÐ¸ задач"
msgid "Issue events"
msgstr "Задачі"
-msgid "Issue settings"
-msgstr ""
-
msgid "IssueBoards|Board"
msgstr "Дошка"
@@ -5731,19 +5349,19 @@ msgid "IssueBoards|Boards"
msgstr "Дошки"
msgid "IssueBoards|Create new board"
-msgstr "Створити нову дошку"
+msgstr ""
msgid "IssueBoards|Delete board"
-msgstr "Видалити дошку"
+msgstr ""
msgid "IssueBoards|No matching boards found"
-msgstr "Ðе знайдено відповідних дошок"
+msgstr ""
msgid "IssueBoards|Some of your boards are hidden, activate a license to see them again."
-msgstr "ДеÑкі з ваших дошок Ñ” прихованими, активуйте ліцензію, щоб побачити Ñ—Ñ… знову."
+msgstr ""
msgid "IssueBoards|Switch board"
-msgstr "Перемкнути дошку"
+msgstr ""
msgid "Issues"
msgstr "Задачі"
@@ -5754,8 +5372,8 @@ msgstr "Задачі можуть бути помилками, нагадуваÐ
msgid "Issues closed"
msgstr "Задачі закриті"
-msgid "Issues, merge requests, pushes, and comments."
-msgstr ""
+msgid "Issues, merge requests, pushes and comments."
+msgstr "Задачі, запити на злиттÑ, Ð²Ñ–Ð´Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ ÐºÐ¾Ð´Ñƒ Ñ– коментарі."
msgid "IssuesAnalytics|After you begin creating issues for your projects, we can start tracking and displaying metrics for them"
msgstr "ПіÑÐ»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð´Ð°Ñ‡ Ð´Ð»Ñ Ð²Ð°ÑˆÐ¸Ñ… проектів, ми зможемо почати відÑтежувати Ñ– відображати метрики Ð´Ð»Ñ Ð½Ð¸Ñ…"
@@ -5782,7 +5400,7 @@ msgid "It must have a header row and at least two columns: the first column is t
msgstr ""
msgid "It's you"
-msgstr "Це ви"
+msgstr ""
msgid "Jaeger URL"
msgstr "URL-адреÑа Jaeger"
@@ -5803,10 +5421,10 @@ msgid "Job has been erased"
msgstr "Ð—Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð±ÑƒÐ»Ð¾ Ñтерте"
msgid "Job is stuck. Check runners."
-msgstr "Ð—Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð·Ð°Ð±Ð»Ð¾ÐºÐ¾Ð²Ð°Ð½Ðµ. Перевірте runner'и."
+msgstr ""
msgid "Job was retried"
-msgstr "Ð—Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð±ÑƒÐ»Ð¾ перезапущене"
+msgstr ""
msgid "Jobs"
msgstr "ЗавданнÑ"
@@ -5848,10 +5466,10 @@ msgid "Job|The artifacts were removed"
msgstr "Ðртефакти були видалені"
msgid "Job|The artifacts will be removed"
-msgstr "Ðртефакти будуть видалені"
+msgstr ""
msgid "Job|This job is stuck because the project doesn't have any runners online assigned to it."
-msgstr "Це Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð·Ð°Ð±Ð»Ð¾ÐºÐ¾Ð²Ð°Ð½Ðµ, тому що цей проект не має жодних runner'ів призначених Ð´Ð»Ñ Ð½ÑŒÐ¾Ð³Ð¾."
+msgstr ""
msgid "Jul"
msgstr "лип."
@@ -5866,7 +5484,7 @@ msgid "June"
msgstr "червень"
msgid "Key (PEM)"
-msgstr "Ключ (PEM)"
+msgstr ""
msgid "Kubernetes"
msgstr "Kubernetes"
@@ -5875,7 +5493,7 @@ msgid "Kubernetes Cluster"
msgstr "КлаÑтер Kubernetes"
msgid "Kubernetes Clusters"
-msgstr "КлаÑтери Kubernetes"
+msgstr ""
msgid "Kubernetes cluster creation time exceeds timeout; %{timeout}"
msgstr "ÐŸÐµÑ€ÐµÐ²Ð¸Ñ‰ÐµÐ½Ð½Ñ Ð»Ñ–Ð¼Ñ–Ñ‚Ñƒ чаÑу при Ñтворенні Kubernetes-клаÑтера; %{timeout}"
@@ -5943,9 +5561,6 @@ msgstr "ПеренеÑти мітку"
msgid "Labels|Promoting %{labelTitle} will make it available for all projects inside %{groupName}. Existing project labels with the same title will be merged. This action cannot be reversed."
msgstr "ПеренеÑÐµÐ½Ð½Ñ %{labelTitle} на рівень групи зробить Ñ—Ñ— доÑтупною Ð´Ð»Ñ Ð²ÑÑ–Ñ… проектів в групі %{groupName}. ІÑнуючі проектні мітки із такими ж іменами будуть об'єднані. Дана Ð´Ñ–Ñ Ð½Ðµ може бути ÑкаÑована."
-msgid "Language"
-msgstr "Мова"
-
msgid "Large File Storage"
msgstr "Сховище великих файлів (LFS)"
@@ -5960,7 +5575,7 @@ msgid "Last Pipeline"
msgstr "ОÑтанній Конвеєр"
msgid "Last activity"
-msgstr "ОÑÑ‚Ð°Ð½Ð½Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ñ–ÑÑ‚ÑŒ"
+msgstr ""
msgid "Last commit"
msgstr "ОÑтанній коміт"
@@ -5996,7 +5611,7 @@ msgid "Latest changes"
msgstr "ОÑтанні зміни"
msgid "Latest pipeline for this branch"
-msgstr "ОÑтанній конвеєр Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— гілки"
+msgstr ""
msgid "Lead"
msgstr ""
@@ -6011,32 +5626,26 @@ msgid "Learn more about %{issue_boards_url}, to keep track of issues in multiple
msgstr "ДізнайтеÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про %{issue_boards_url}, щоб Ñтежити за задачами в кількох ÑпиÑках, викориÑтовуючи мітки, виконавців та етапи. Якщо вам чогоÑÑŒ не виÑтачає в дошках обговорень задач, Ñтворіть задачу на %{gitlab_issues_url}."
msgid "Learn more about Auto DevOps"
-msgstr "ДізнайтеÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про Auto DevOps"
+msgstr ""
msgid "Learn more about Kubernetes"
msgstr "ДізнайтеÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про Kubernetes"
msgid "Learn more about Web Terminal"
-msgstr "ДізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про Веб-термінал"
-
-msgid "Learn more about approvals."
msgstr ""
msgid "Learn more about custom project templates"
-msgstr "Докладніше про влаÑні шаблони проектів"
+msgstr ""
msgid "Learn more about group-level project templates"
-msgstr "Докладніше про шаблони проектів на рівні групи"
+msgstr ""
msgid "Learn more about incoming email addresses"
-msgstr "Докладніше про вхідні адреÑи електронної пошти"
+msgstr ""
msgid "Learn more about protected branches"
msgstr "ДізнайтеÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про захищені гілки"
-msgid "Learn more about signing commits"
-msgstr ""
-
msgid "Learn more in the"
msgstr "ДізнайтеÑÑŒ більше"
@@ -6174,10 +5783,10 @@ msgid "Loading..."
msgstr "ЗавантаженнÑ..."
msgid "Loading…"
-msgstr "ЗавантаженнÑ…"
+msgstr ""
msgid "Localization"
-msgstr "Регіональні налаштуваннÑ"
+msgstr ""
msgid "Lock"
msgstr "Блокувати"
@@ -6212,21 +5821,6 @@ msgstr "Вхід за допомогою Ñмарт-картки"
msgid "Logs"
msgstr "Логи"
-msgid "MRApprovals|Approved by"
-msgstr ""
-
-msgid "MRApprovals|Approvers"
-msgstr "Затверджуючі оÑоби"
-
-msgid "MRApprovals|Pending approvals"
-msgstr ""
-
-msgid "MRDiff|Show changes only"
-msgstr ""
-
-msgid "MRDiff|Show full file"
-msgstr ""
-
msgid "Make everyone on your team more productive regardless of their location. GitLab Geo creates read-only mirrors of your GitLab instance so you can reduce the time it takes to clone and fetch large repos."
msgstr "Зробіть кожного учаÑника команди більш продуктивним незалежно від його міÑцезнаходженнÑ. GitLab Geo Ñтворює копії \"тільки Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ\" вашого GitLab Ñервера, щоб Ñкоротити Ñ‡Ð°Ñ Ð´Ð»Ñ ÐºÐ»Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñ– Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ ÐºÐ¾Ð´Ñƒ з великих репозиторіїв."
@@ -6261,7 +5855,7 @@ msgid "Manage project labels"
msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ñ–Ñ‚ÐºÐ°Ð¼Ð¸ проекту"
msgid "Manage two-factor authentication"
-msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð²Ð¾Ñ„Ð°ÐºÑ‚Ð¾Ñ€Ð½Ð¾ÑŽ автентифікацією"
+msgstr ""
msgid "Manage your group’s membership while adding another level of security with SAML."
msgstr "Керуйте членÑтвом у вашій групі додаючи ще один рівень безпеки із SAML."
@@ -6272,9 +5866,6 @@ msgstr "МаніфеÑÑ‚"
msgid "Manifest file import"
msgstr "Імпортувати файл маніфеÑту"
-msgid "Manual job"
-msgstr ""
-
msgid "Map a FogBugz account ID to a GitLab user"
msgstr "Зв’Ñзати обліковий Ð·Ð°Ð¿Ð¸Ñ FogBugz з кориÑтувачем GitLab"
@@ -6297,11 +5888,41 @@ msgid "Mark todo as done"
msgstr "Відмітити Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð¸Ð¼"
msgid "Markdown"
-msgstr "Markdown"
+msgstr ""
msgid "Markdown enabled"
msgstr "Markdown увімкнено"
+msgid "MarkdownToolbar|Add a bullet list"
+msgstr "Додати ненумерований ÑпиÑок"
+
+msgid "MarkdownToolbar|Add a link"
+msgstr "Додати поÑиланнÑ"
+
+msgid "MarkdownToolbar|Add a numbered list"
+msgstr "Додати нумерований ÑпиÑок"
+
+msgid "MarkdownToolbar|Add a table"
+msgstr "Додати таблицю"
+
+msgid "MarkdownToolbar|Add a task list"
+msgstr "Додати ÑпиÑок завдань"
+
+msgid "MarkdownToolbar|Add bold text"
+msgstr "Додати жирний текÑÑ‚"
+
+msgid "MarkdownToolbar|Add italic text"
+msgstr "Додати курÑивний текÑÑ‚"
+
+msgid "MarkdownToolbar|Go full screen"
+msgstr "Повний екран"
+
+msgid "MarkdownToolbar|Insert a quote"
+msgstr "Ð’Ñтавити цитату"
+
+msgid "MarkdownToolbar|Insert code"
+msgstr "Ð’Ñтавити код"
+
msgid "Maven Metadata"
msgstr "Maven-метадані"
@@ -6327,10 +5948,10 @@ msgid "Members"
msgstr "КориÑтувачі"
msgid "Members can be added by project <i>Maintainers</i> or <i>Owners</i>"
-msgstr "УчаÑники можуть будуть додані <i>Керівниками</i> або <i>ВлаÑниками</i> проекту"
+msgstr ""
msgid "Members of <strong>%{project_name}</strong>"
-msgstr "УчаÑники <strong>%{project_name}</strong>"
+msgstr ""
msgid "Members will be forwarded here when signing in to your group. Get this from your identity provider, where it can also be called \"SSO Service Location\", \"SAML Token Issuance Endpoint\", or \"SAML 2.0/W-Federation URL\"."
msgstr "УчаÑники будуть перенаправлені Ñюди, коли будуть заходити до вашої групи. Отримайте його від Ñвого провайдера ідентифікації, де вона також може називатиÑÑ \"SSO Service Location\", \"SAML Token Issuance Endpoint\", або \"SAML 2.0/W-Federation URL\"."
@@ -6345,18 +5966,15 @@ msgid "Merge Requests created"
msgstr "Запит на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð±ÑƒÐ»Ð¾ Ñтворено"
msgid "Merge commit message"
-msgstr "ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð´Ð»Ñ ÐºÐ¾Ð¼Ñ–Ñ‚Ñƒ-злиттÑ"
+msgstr ""
msgid "Merge events"
msgstr "Події злиттÑ"
msgid "Merge immediately"
-msgstr "Злити негайно"
+msgstr ""
msgid "Merge in progress"
-msgstr "Ð—Ð»Ð¸Ñ‚Ñ‚Ñ Ð² процеÑÑ–"
-
-msgid "Merge pipelines will try to validate the post-merge result prior to merging"
msgstr ""
msgid "Merge request"
@@ -6372,31 +5990,31 @@ msgid "Merge requests are a place to propose changes you've made to a project an
msgstr "Запит на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ â€” це ÑпоÑіб запропонувати Ñвої зміни до проекту Ñ– обговорити Ñ—Ñ… із іншими"
msgid "Merge when pipeline succeeds"
-msgstr "Злити, коли конвеєр уÑпішно завершитьÑÑ"
+msgstr ""
msgid "MergeRequests|Add a reply"
-msgstr "Додати відповідь"
+msgstr ""
msgid "MergeRequests|An error occurred while saving the draft comment."
msgstr "Виникла помилка під Ñ‡Ð°Ñ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ñ‡ÐµÑ€Ð½ÐµÑ‚ÐºÐ¸ коментарÑ."
msgid "MergeRequests|Discussion stays resolved"
-msgstr "ÐžÐ±Ð³Ð¾Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð»Ð¸ÑˆÐ°Ñ”Ñ‚ÑŒÑÑ Ð²Ð¸Ñ€Ñ–ÑˆÐµÐ½Ð¸Ð¼"
+msgstr ""
msgid "MergeRequests|Discussion stays unresolved"
-msgstr "ÐžÐ±Ð³Ð¾Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð»Ð¸ÑˆÐ°Ñ”Ñ‚ÑŒÑÑ Ð½ÐµÐ²Ð¸Ñ€Ñ–ÑˆÐµÐ½Ð¸Ð¼"
+msgstr ""
msgid "MergeRequests|Discussion will be resolved"
-msgstr "ÐžÐ±Ð³Ð¾Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð±ÑƒÐ´Ðµ вирішеним"
+msgstr ""
msgid "MergeRequests|Discussion will be unresolved"
-msgstr "ÐžÐ±Ð³Ð¾Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð±ÑƒÐ´Ðµ невирішеним"
+msgstr ""
msgid "MergeRequests|Jump to next unresolved discussion"
-msgstr "Перейти до наÑтупного невирішеного обговореннÑ"
+msgstr ""
msgid "MergeRequests|Reply..."
-msgstr "ВідповіÑти..."
+msgstr ""
msgid "MergeRequests|Resolve this discussion in a new issue"
msgstr "Вирішити це Ð¾Ð±Ð³Ð¾Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð² новій задачі"
@@ -6414,29 +6032,26 @@ msgid "MergeRequests|View replaced file @ %{commitId}"
msgstr "ПереглÑнути замінений файл Ñтаном на %{commitId}"
msgid "MergeRequests|commented on commit %{commitLink}"
-msgstr "прокоментував (-ла) коміт %{commitLink}"
+msgstr ""
msgid "MergeRequests|started a discussion"
-msgstr "розпочав (-ла) обговореннÑ"
+msgstr ""
msgid "MergeRequests|started a discussion on %{linkStart}an old version of the diff%{linkEnd}"
-msgstr "розпочав (-ла) Ð¾Ð±Ð³Ð¾Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ %{linkStart}Ñтарої верÑÑ–Ñ— порівнÑÐ½Ð½Ñ (diff)%{linkEnd}"
+msgstr ""
msgid "MergeRequests|started a discussion on %{linkStart}the diff%{linkEnd}"
-msgstr "розпочав (-ла) Ð¾Ð±Ð³Ð¾Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ %{linkStart}порівнÑÐ½Ð½Ñ (diff)%{linkEnd}"
+msgstr ""
msgid "MergeRequests|started a discussion on an outdated change in commit %{linkStart}%{commitId}%{linkEnd}"
-msgstr "розпочав (-ла) Ð¾Ð±Ð³Ð¾Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ñтарілих змін в коміті %{linkStart}%{commitId}%{linkEnd}"
+msgstr ""
msgid "MergeRequests|started a discussion on commit %{linkStart}%{commitId}%{linkEnd}"
-msgstr "розпочав (-ла) коміту %{linkStart}%{commitId}%{linkEnd}"
+msgstr ""
msgid "MergeRequest| %{paragraphStart}changed the description %{descriptionChangedTimes} times %{timeDifferenceMinutes}%{paragraphEnd}"
msgstr "%{paragraphStart} Ð¾Ð¿Ð¸Ñ Ð·Ð¼Ñ–Ð½ÐµÐ½Ð¾ %{descriptionChangedTimes} раз(а,ів) %{timeDifferenceMinutes}%{paragraphEnd}"
-msgid "MergeRequest|Error loading full diff. Please try again."
-msgstr ""
-
msgid "MergeRequest|Filter files"
msgstr "Фільтр файлів"
@@ -6444,7 +6059,7 @@ msgid "MergeRequest|No files found"
msgstr "Файлів не знайдено"
msgid "MergeRequest|Search files"
-msgstr "Пошук файлів"
+msgstr ""
msgid "Merged"
msgstr "Злито"
@@ -6465,7 +6080,7 @@ msgid "Metrics and profiling"
msgstr "Метрики та профілюваннÑ"
msgid "Metrics for environment"
-msgstr "Метрики Ð´Ð»Ñ Ñередовища"
+msgstr ""
msgid "Metrics|Check out the CI/CD documentation on deploying to an environment"
msgstr "Перевірте документацію CI/CD щодо Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð² Ñередовищі"
@@ -6474,10 +6089,10 @@ msgid "Metrics|Create metric"
msgstr "Створити метрику"
msgid "Metrics|Delete metric"
-msgstr "Видалити метрику"
+msgstr ""
msgid "Metrics|Delete metric?"
-msgstr "Видалити метрику?"
+msgstr ""
msgid "Metrics|Edit metric"
msgstr "Редагувати метрику"
@@ -6489,7 +6104,7 @@ msgid "Metrics|For grouping similar metrics"
msgstr "Ð”Ð»Ñ Ð³Ñ€ÑƒÐ¿ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð´Ñ–Ð±Ð½Ð¸Ñ… метрик"
msgid "Metrics|Label of the y-axis (usually the unit). The x-axis always represents time."
-msgstr "Мітка оÑÑ– - y (зазвичай Ð¾Ð´Ð¸Ð½Ð¸Ñ†Ñ Ð²Ð¸Ð¼Ñ–Ñ€ÑŽÐ²Ð°Ð½Ð½Ñ). ОÑÑ– - x завжди позначає чаÑ."
+msgstr ""
msgid "Metrics|Learn about environments"
msgstr "ДізнайтеÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про Ñередовища"
@@ -6507,11 +6122,14 @@ msgid "Metrics|No deployed environments"
msgstr "Ðемає розгорнутих Ñередовищ"
msgid "Metrics|PromQL query is valid"
-msgstr "Запит PromQL Ñ” дійÑним"
+msgstr ""
msgid "Metrics|Prometheus Query Documentation"
msgstr "Ð”Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ñ–Ñ Ð¿Ð¾ запитам Prometheus"
+msgid "Metrics|System"
+msgstr "СиÑтема"
+
msgid "Metrics|There was an error fetching the environments data, please try again"
msgstr "ТрапилаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° під Ñ‡Ð°Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ— про Ñередовища. Будь лаÑка, Ñпробуйте ще раз"
@@ -6522,7 +6140,7 @@ msgid "Metrics|There was an error getting environments information."
msgstr "ТрапилаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° під Ñ‡Ð°Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ— про Ñередовища."
msgid "Metrics|There was an error trying to validate your query"
-msgstr "Помилка при перевірці вашого запиту"
+msgstr ""
msgid "Metrics|There was an error while retrieving metrics"
msgstr "ТрапилаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° під Ñ‡Ð°Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð¼ÐµÑ‚Ñ€Ð¸Ðº"
@@ -6546,7 +6164,7 @@ msgid "Metrics|Y-axis label"
msgstr "Ðазва оÑÑ– Y"
msgid "Metrics|You're about to permanently delete this metric. This cannot be undone."
-msgstr "Ви збираєтеÑÑ Ð¾Ñтаточно видалити цю метрику. Це не можна відмінити."
+msgstr ""
msgid "Metrics|e.g. Throughput"
msgstr "напр. пропуÑкна здатніÑÑ‚ÑŒ"
@@ -6623,20 +6241,17 @@ msgstr "СкаÑувати"
msgid "Modal|Close"
msgstr "Закрити"
-msgid "Modify commit message"
-msgstr "Змінити Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð´Ð»Ñ ÐºÐ¾Ð¼Ñ–Ñ‚Ñ–Ð²"
-
msgid "Modify commit messages"
-msgstr "Змінити Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð´Ð»Ñ ÐºÐ¾Ð¼Ñ–Ñ‚Ñ–Ð²"
+msgstr ""
msgid "Modify merge commit"
-msgstr "Змінити коміт-злиттÑ"
+msgstr ""
msgid "Monday"
-msgstr "Понеділок"
+msgstr ""
msgid "Monitor your errors by integrating with Sentry"
-msgstr "Моніторинг ваших помилок шлÑхом інтеграції із Sentry"
+msgstr ""
msgid "Monitoring"
msgstr "Моніторинг"
@@ -6659,9 +6274,6 @@ msgstr "Детальніше"
msgid "More information is available|here"
msgstr "тут"
-msgid "More than %{number_commits_distance} commits different with %{default_branch}"
-msgstr ""
-
msgid "Most stars"
msgstr "Ðайбільше в обраних"
@@ -6686,9 +6298,6 @@ msgstr "Ðазвіть ваш індивідуальний ключ за допÐ
msgid "Name:"
msgstr "Ім’Ñ:"
-msgid "Naming, tags, avatar"
-msgstr ""
-
msgid "Naming, visibility"
msgstr "ÐайменуваннÑ, видиміÑÑ‚ÑŒ"
@@ -6705,7 +6314,7 @@ msgid "Nav|Sign out and sign in with a different account"
msgstr "Вийти Ñ– зайти під іншим обліковим запиÑом"
msgid "Need help?"
-msgstr "Потрібна допомога?"
+msgstr ""
msgid "Network"
msgstr "Мережа"
@@ -6720,7 +6329,7 @@ msgid "New Application"
msgstr "Ðовий додаток"
msgid "New Environment"
-msgstr "Ðове Ñередовище"
+msgstr ""
msgid "New Group"
msgstr "Ðова група"
@@ -6739,12 +6348,9 @@ msgid "New Label"
msgstr "Ðова мітка"
msgid "New Milestone"
-msgstr "Ðовий етап"
+msgstr ""
msgid "New Pages Domain"
-msgstr "Ðовий домен Pages"
-
-msgid "New Password"
msgstr ""
msgid "New Pipeline Schedule"
@@ -6753,20 +6359,20 @@ msgstr "Ðовий розклад Конвеєра"
msgid "New Snippet"
msgstr "Ðовий Ñніпет"
+msgid "New Snippets"
+msgstr "Ðові Ñніпети"
+
msgid "New branch"
msgstr "Ðова гілка"
msgid "New branch unavailable"
msgstr "Ðова гілка недоÑтупна"
-msgid "New deploy key"
-msgstr ""
-
msgid "New directory"
msgstr "Ðовий каталог"
msgid "New environment"
-msgstr "Ðове Ñередовище"
+msgstr ""
msgid "New epic"
msgstr "Ðовий епік"
@@ -6790,7 +6396,7 @@ msgid "New merge request"
msgstr "Ðовий запит на злиттÑ"
msgid "New milestone"
-msgstr "Ðовий етап"
+msgstr ""
msgid "New pipelines will cancel older, pending pipelines on the same branch"
msgstr "Ðові конвеєри ÑкаÑують Ñтарі, що очікують на тій же гілці"
@@ -6816,17 +6422,11 @@ msgstr "Ðовий..."
msgid "No"
msgstr "ÐÑ–"
-msgid "No %{providerTitle} repositories available to import"
-msgstr "Ðемає репозиторіїв %{providerTitle} Ð´Ð»Ñ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚Ñƒ"
-
msgid "No Label"
msgstr "Без Мітки"
-msgid "No Tag"
-msgstr ""
-
msgid "No activities found"
-msgstr "Ðе знайднено активноÑтей"
+msgstr ""
msgid "No assignee"
msgstr "Ðемає виконавцÑ"
@@ -6838,7 +6438,7 @@ msgid "No changes"
msgstr "Ðемає змін"
msgid "No changes between %{ref_start}%{source_branch}%{ref_end} and %{ref_start}%{target_branch}%{ref_end}"
-msgstr "Ðемає змін між %{ref_start}%{source_branch}%{ref_end} та %{ref_start}%{target_branch}%{ref_end}"
+msgstr ""
msgid "No connection could be made to a Gitaly Server, please check your logs!"
msgstr "Ðеможливо з'єднатиÑÑŒ із Ñервером Gitaly, будь лаÑка, перевірте логи!"
@@ -6852,16 +6452,13 @@ msgstr "ВнеÑки не знайдено"
msgid "No credit card required."
msgstr "Ðе потрібна кредитна картка."
-msgid "No designs found."
-msgstr ""
-
msgid "No details available"
-msgstr "Ðемає деталей Ð´Ð»Ñ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ"
+msgstr ""
msgid "No due date"
msgstr "Ðемає"
-msgid "No errors to display."
+msgid "No errors to display"
msgstr ""
msgid "No estimate or time spent"
@@ -6871,7 +6468,7 @@ msgid "No file chosen"
msgstr "Файл не вибрано"
msgid "No file selected"
-msgstr "Файл не вибраний"
+msgstr ""
msgid "No files found."
msgstr "Ðе знайдено жодного файлу."
@@ -6886,7 +6483,7 @@ msgid "No license. All rights reserved"
msgstr "Ðемає ліцензії. Ð’ÑÑ– права захищені"
msgid "No matching results"
-msgstr "Ðемає відповідних результатів"
+msgstr ""
msgid "No merge requests for the selected time period."
msgstr "Ðемає запитів на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð·Ð° вибраний період чаÑу."
@@ -6898,13 +6495,13 @@ msgid "No messages were logged"
msgstr "Ðемає повідомлень у журналі"
msgid "No milestones to show"
-msgstr "Ðемає етапів Ð´Ð»Ñ Ð¿Ð¾ÐºÐ°Ð·Ñƒ"
+msgstr ""
msgid "No other labels with such name or description"
msgstr "Ðемає інших міток з таким іменем або опиÑом"
msgid "No preview for this file type"
-msgstr "Попереднього переглÑду Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ типу файлів немає"
+msgstr ""
msgid "No prioritised labels with such name or description"
msgstr "Ðемає пріоритетних міток з таким іменем або опиÑом"
@@ -6925,7 +6522,7 @@ msgid "No schedules"
msgstr "Ðемає розкладів"
msgid "No start date"
-msgstr "Ðемає дати початку"
+msgstr ""
msgid "No, directly import the existing email addresses and usernames."
msgstr "ÐÑ–, безпоÑередньо імпортувати Ñ–Ñнуючі адреÑи електронної пошти та імена кориÑтувачів."
@@ -6957,14 +6554,11 @@ msgstr "ÐедоÑтатньо даних"
msgid "Not now"
msgstr "Пізніше"
-msgid "Not started"
-msgstr ""
-
msgid "Note that the master branch is automatically protected. %{link_to_protected_branches}"
msgstr "Майте на увазі, що гілка master захищена автоматично. %{link_to_protected_branches}"
msgid "Note that this invitation was sent to %{mail_to_invite_email}, but you are signed in as %{link_to_current_user} with email %{mail_to_current_user}."
-msgstr "Зауважте, що це Ð·Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð½Ñ Ð±ÑƒÐ»Ð¾ надіÑлано на %{mail_to_invite_email}, але ви увійшли Ñк %{link_to_current_user} з електронною поштою %{mail_to_current_user}."
+msgstr ""
msgid "Note: As an administrator you may like to configure %{github_integration_link}, which will allow login via GitHub and allow connecting repositories without generating a Personal Access Token."
msgstr "Примітка: Ñк адмініÑтратор ви можете налаштувати %{github_integration_link}, що дозволить входити через GitHub Ñ– підключати репозиторії без ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¾ÑобиÑтого токену доÑтупу."
@@ -6997,10 +6591,10 @@ msgid "Notification events"
msgstr "ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ події"
msgid "Notification setting"
-msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñповіщень"
+msgstr ""
msgid "Notification setting - %{notification_title}"
-msgstr "Параметр ÑÐ¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ - %{notification_title}"
+msgstr ""
msgid "NotificationEvent|Close issue"
msgstr "Задача закрита"
@@ -7109,13 +6703,13 @@ msgid "Only policy:"
msgstr ""
msgid "Only proceed if you trust %{idp_url} to control your GitLab account sign in."
-msgstr "Продовжуйте тільки Ñкщо ви довірÑєте %{idp_url} контроль над входом до вашого облікового запиÑу GitLab."
+msgstr ""
msgid "Only project members can comment."
msgstr "Тільки учаÑники проекту можуть залишати коментарі."
msgid "Only project members will be imported. Group members will be skipped."
-msgstr "Лише учаÑника проекту будуть імпортовані. УчаÑники групи будуть пропущені."
+msgstr ""
msgid "Oops, are you sure?"
msgstr "Ой, а ви впевнені?"
@@ -7124,13 +6718,13 @@ msgid "Open"
msgstr "Відкриті"
msgid "Open Documentation"
-msgstr "Відкрити документацію"
+msgstr ""
msgid "Open comment type dropdown"
-msgstr "Випадаючий ÑпиÑок типу коментарів"
+msgstr ""
msgid "Open errors"
-msgstr "Відкрити помилки"
+msgstr ""
msgid "Open in Xcode"
msgstr "Відкрити в Xcode"
@@ -7165,9 +6759,6 @@ msgstr "Операції"
msgid "Operations Dashboard"
msgstr "Панель ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ñми"
-msgid "Operations Settings"
-msgstr ""
-
msgid "OperationsDashboard|Add a project to the dashboard"
msgstr "Додайте проект до панелі керуваннÑ"
@@ -7175,9 +6766,6 @@ msgid "OperationsDashboard|The operations dashboard provides a summary of each p
msgstr "Панель ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ñми міÑтить інформацію про Ñтан кожного з проектів разом зі Ñтаном його конвеєрів та попереджень."
msgid "OperationsDashboard|Unable to add %{invalidProjects}. The Operations Dashboard is available for public projects, and private projects in groups with a Gold plan."
-msgstr "Ðеможливо додати %{invalidProjects}. Панель ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ñми доÑтупна Ð´Ð»Ñ Ð¿ÑƒÐ±Ð»Ñ–Ñ‡Ð½Ð¸Ñ… та приватних проектів в групах із тарифним планом Gold."
-
-msgid "Optional"
msgstr ""
msgid "Optionally, you can %{link_to_customize} how FogBugz email addresses and usernames are imported into GitLab."
@@ -7226,10 +6814,10 @@ msgid "Pages"
msgstr "Сторінки"
msgid "Pages Domain"
-msgstr "Домен Pages"
+msgstr ""
msgid "Pages Domains"
-msgstr "Домени Pages"
+msgstr ""
msgid "Pagination|Last »"
msgstr "ОÑÑ‚Ð°Ð½Ð½Ñ Â»"
@@ -7244,7 +6832,10 @@ msgid "Pagination|« First"
msgstr "« Перша"
msgid "Parameter"
-msgstr "Параметр"
+msgstr ""
+
+msgid "Parent epic"
+msgstr ""
msgid "Part of merge request changes"
msgstr "ЧаÑтина змін у запиті на злиттÑ"
@@ -7253,16 +6844,13 @@ msgid "Password"
msgstr "Пароль"
msgid "Past due"
-msgstr "ПроÑтрочені"
-
-msgid "Paste a machine public key here. Read more about how to generate it %{link_start}here%{link_end}"
msgstr ""
msgid "Paste epic link"
-msgstr "Ð’Ñтавити поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° епік"
+msgstr ""
msgid "Paste issue link"
-msgstr "Ð’Ñтавити поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° задачу"
+msgstr ""
msgid "Paste your public SSH key, which is usually contained in the file '~/.ssh/id_rsa.pub' and begins with 'ssh-rsa'. Don't use your private SSH key."
msgstr "Ð’Ñтавте Ñвій відкритий ключ SSH, Ñкий зазвичай знаходитьÑÑ Ñƒ файлі '~/.ssh/id_rsa.pub' Ñ– починаєтьÑÑ Ð· 'ssh-rsa'. Ðе викориÑтовуйте Ñвій приватний ключ SSH."
@@ -7301,14 +6889,17 @@ msgid "Personal Access Token"
msgstr "Токену перÑонального доÑтупу"
msgid "Personal project creation is not allowed. Please contact your administrator with questions"
-msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿ÐµÑ€Ñональних проектів не дозволено. Будь лаÑка, звернітьÑÑ Ð´Ð¾ Ñвого адмініÑтратор із питаннÑми"
+msgstr ""
msgid "Pick a name"
-msgstr "Виберіть ім'Ñ"
+msgstr ""
msgid "Pipeline"
msgstr "Конвеєр"
+msgid "Pipeline Health"
+msgstr "Стан Конвеєра"
+
msgid "Pipeline Schedule"
msgstr "Розклад Конвеєра"
@@ -7369,17 +6960,11 @@ msgstr "Змінні"
msgid "PipelineSheduleIntervalPattern|Custom"
msgstr "Спеціальні"
-msgid "PipelineStatusTooltip|Commit: %{ci_status}"
-msgstr "Коміт: %{ci_status}"
-
-msgid "PipelineStatusTooltip|Pipeline: %{ci_status}"
-msgstr "Конвеєр: %{ci_status}"
-
msgid "Pipelines"
msgstr "Конвеєри"
msgid "Pipelines charts"
-msgstr "СтатиÑтика конвеєрів"
+msgstr "Чарти Конвеєрів"
msgid "Pipelines for last month"
msgstr "Конвеєри за оÑтанній міÑÑць"
@@ -7390,9 +6975,6 @@ msgstr "Конвеєри за оÑтанній тиждень"
msgid "Pipelines for last year"
msgstr "Конвеєри за оÑтанній рік"
-msgid "Pipelines need to be configured to enable this feature."
-msgstr ""
-
msgid "Pipelines|Build with confidence"
msgstr "Виконуйте збірки із впевненіÑÑ‚ÑŽ"
@@ -7499,7 +7081,7 @@ msgid "Play"
msgstr "Відтворити"
msgid "Please %{link_to_register} or %{link_to_sign_in} to comment"
-msgstr "Будь лаÑка, %{link_to_register} або %{link_to_sign_in} щоб прокоментувати"
+msgstr ""
msgid "Please accept the Terms of Service before continuing."
msgstr "Будь лаÑка, Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð²Ð¶ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¸Ð¹Ð¼Ñ–Ñ‚ÑŒ умови Ð½Ð°Ð´Ð°Ð½Ð½Ñ Ð¿Ð¾Ñлуг."
@@ -7513,21 +7095,9 @@ msgstr "Будь лаÑка Ñконвертуйте Ñ—Ñ… в %{link_to_git} Ñ– Ð
msgid "Please convert them to Git on Google Code, and go through the %{link_to_import_flow} again."
msgstr "Будь лаÑка Ñконвертуйте Ñ—Ñ… в Git на Google Code, Ñ– виконайте знову %{link_to_import_flow}."
-msgid "Please create a username with only alphanumeric characters."
-msgstr ""
-
msgid "Please enable and migrate to hashed storage to avoid security issues and ensure data integrity. %{migrate_link}"
msgstr ""
-msgid "Please enter a non-negative number"
-msgstr ""
-
-msgid "Please enter a number greater than %{number} (from the project settings)"
-msgstr ""
-
-msgid "Please enter a valid number"
-msgstr ""
-
msgid "Please fill in a descriptive name for your group."
msgstr "Введіть опиÑове ім'Ñ Ð³Ñ€ÑƒÐ¿Ð¸."
@@ -7537,18 +7107,9 @@ msgstr ""
msgid "Please note that this application is not provided by GitLab and you should verify its authenticity before allowing access."
msgstr "Зверніть увагу, що Ñ†Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° не Ñ” чаÑтиною GitLab, Ñ– ви повинні впевнитиÑÑ Ñƒ Ñ—Ñ— безпеці, перш ніж надавати доÑтуп."
-msgid "Please provide a name"
-msgstr ""
-
-msgid "Please select and add a member"
-msgstr ""
-
msgid "Please select at least one filter to see results"
msgstr "Будь лаÑка виберіть хоча б один фільтр, щоб побачити результати"
-msgid "Please set a new password before proceeding."
-msgstr "Будь лаÑка, вÑтановіть пароль перед продовженнÑм."
-
msgid "Please solve the reCAPTCHA"
msgstr "Будь лаÑка, пройдіть reCAPTCHA"
@@ -7556,7 +7117,7 @@ msgid "Please try again"
msgstr "Будь лаÑка, Ñпробуйте ще раз"
msgid "Please upgrade PostgreSQL to version 9.6 or greater. The status of the replication cannot be determined reliably with the current version."
-msgstr "Будь лаÑка, оновіть PostgreSQL до верÑÑ–Ñ— 9.6 або вище. Стан реплікації не може бути доÑтовірно визначений у поточній верÑÑ–Ñ—."
+msgstr ""
msgid "Please use this form to report users to GitLab who create spam issues, comments or behave inappropriately."
msgstr "Будь лаÑка, викориÑтовуйте цю форму, щоб повідомлÑти GitLab про кориÑтувачів, Ñкі Ñтворюють задачі Ñ– коментарі зі Ñпамом, або поводÑÑ‚ÑŒÑÑ Ð½ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ð¾."
@@ -7573,9 +7134,6 @@ msgstr "ÐалаштуваннÑ"
msgid "Preferences|Navigation theme"
msgstr "Тема навігації"
-msgid "Preferences|This feature is experimental and translations are not complete yet"
-msgstr "Ð¦Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ Ñ” екÑпериментальною Ñ– переклади ще не завершені"
-
msgid "Press Enter or click to search"
msgstr "Ð”Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ натиÑніть Enter або клікніть"
@@ -7604,7 +7162,7 @@ msgid "Prioritized label"
msgstr "Пріоритетні мітки"
msgid "Private"
-msgstr "Приватний"
+msgstr ""
msgid "Private - Project access must be granted explicitly to each user."
msgstr "Приватний — доÑтуп до проекту повинен надаватиÑÑ ÐºÐ¾Ð¶Ð½Ð¾Ð¼Ñƒ кориÑтувачеві."
@@ -7628,13 +7186,13 @@ msgid "Profiles| You are going to change the username %{currentUsernameBold} to
msgstr "Ви збираєтеÑÑ Ð·Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача %{currentUsernameBold} на %{newUsernameBold}. Профіль та проекти будуть перенаправлÑтиÑÑ Ð½Ð° проÑÑ‚Ñ–Ñ€ імен %{newUsername}, але таке Ð¿ÐµÑ€ÐµÐ½Ð°Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð·Ð°ÐºÑ–Ð½Ñ‡Ð¸Ñ‚ÑŒÑÑ, коли проÑÑ‚Ñ–Ñ€ імен %{currentUsername} буде зареєÑтровано на іншого кориÑтувача або групу. Будь лаÑка, оновіть віддалені адреÑи в репозиторіÑÑ… Git Ñкомога швидше."
msgid "Profiles|@username"
-msgstr "@ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача"
+msgstr ""
msgid "Profiles|Account scheduled for removal."
msgstr "Обліковий Ð·Ð°Ð¿Ð¸Ñ Ð·Ð°Ð¿Ð»Ð°Ð½Ð¾Ð²Ð°Ð½Ð¸Ð¹ Ð´Ð»Ñ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ."
msgid "Profiles|Activate signin with one of the following services"
-msgstr "Ðктивуйте вхід за допомогою однієї з наÑтупних Ñлужб"
+msgstr ""
msgid "Profiles|Active"
msgstr ""
@@ -7655,28 +7213,28 @@ msgid "Profiles|Change username"
msgstr "Змінити ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача"
msgid "Profiles|Changing your username can have unintended side effects."
-msgstr "Зміна імені кориÑтувача може мати небажані побічні ефекти."
+msgstr ""
msgid "Profiles|Choose file..."
msgstr "Вибрати файл..."
msgid "Profiles|Choose to show contributions of private projects on your public profile without any project, repository or organization information"
-msgstr "Виберіть Ð´Ð»Ñ Ð¿Ð¾ÐºÐ°Ð·Ñƒ внеÑків до приватних репозиторіїв у вашому публічному профілі без інформації про проекти, репозиторії або організації"
+msgstr ""
msgid "Profiles|City, country"
-msgstr "МіÑто, країна"
+msgstr ""
msgid "Profiles|Clear status"
msgstr "ОчиÑтити ÑтатуÑ"
msgid "Profiles|Click on icon to activate signin with one of the following services"
-msgstr "Клікніть на іконку, щоб активувати вхід за допомогою одного із наÑтупних ÑервіÑів"
+msgstr ""
msgid "Profiles|Connect"
-msgstr "Приєднати"
+msgstr ""
msgid "Profiles|Connected Accounts"
-msgstr "Підключені облікові запиÑи"
+msgstr ""
msgid "Profiles|Current path: %{path}"
msgstr "Поточний шлÑÑ…: %{path}"
@@ -7697,7 +7255,7 @@ msgid "Profiles|Deleting an account has the following effects:"
msgstr "Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð¾Ð±Ð»Ñ–ÐºÐ¾Ð²Ð¾Ð³Ð¾ запиÑу неÑе наÑтупні наÑлідки:"
msgid "Profiles|Disconnect"
-msgstr "Від'єднати"
+msgstr ""
msgid "Profiles|Do not show on profile"
msgstr "Ðе відображати у профілі"
@@ -7709,10 +7267,10 @@ msgid "Profiles|Edit Profile"
msgstr "Редагувати профіль"
msgid "Profiles|Enter your name, so people you know can recognize you"
-msgstr "Введіть ваше ім'Ñ, щоб люди, Ñких ви знаєте, могли Ð²Ð°Ñ ÑƒÐ¿Ñ–Ð·Ð½Ð°Ñ‚Ð¸"
+msgstr ""
msgid "Profiles|Increase your account's security by enabling Two-Factor Authentication (2FA)"
-msgstr "Підвищити рівень безпеки вашого облікового запиÑу за допомогою ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð½Ñ Ð´Ð²Ð¾Ñ„Ð°ÐºÑ‚Ð¾Ñ€Ð½Ð¾Ñ— автентифікації (2FA)"
+msgstr ""
msgid "Profiles|Invalid password"
msgstr "Ðеправильний пароль"
@@ -7751,13 +7309,13 @@ msgid "Profiles|Set new profile picture"
msgstr "Ð’Ñтановити нове Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ„Ñ–Ð»ÑŽ"
msgid "Profiles|Social sign-in"
-msgstr "Вхід через Ñоціальні мережі"
+msgstr ""
msgid "Profiles|Some options are unavailable for LDAP accounts"
msgstr "ДеÑкі параметри недоÑтупні Ð´Ð»Ñ Ð¾Ð±Ð»Ñ–ÐºÐ¾Ð²Ð¸Ñ… запиÑів LDAP"
msgid "Profiles|Tell us about yourself in fewer than 250 characters"
-msgstr "Розкажіть про Ñебе в межах 250 Ñимволів"
+msgstr ""
msgid "Profiles|The maximum file size allowed is 200KB."
msgstr "МакÑимальний розмір файлу 200КБ."
@@ -7766,7 +7324,7 @@ msgid "Profiles|This doesn't look like a public SSH key, are you sure you want t
msgstr "Це не Ñхоже на публічниц ключ SSH. Ви впевнені, що хочете його додати?"
msgid "Profiles|This email will be displayed on your public profile"
-msgstr "Ð¦Ñ ÐµÐ»ÐµÐºÑ‚Ñ€Ð¾Ð½Ð½Ð° адреÑа буде відображатиÑÑ Ñƒ вашому публічному профілі"
+msgstr ""
msgid "Profiles|This email will be used for web based operations, such as edits and merges. %{learn_more}"
msgstr "Ð¦Ñ Ð°Ð´Ñ€ÐµÑа електронної пошти буде викориÑтовуватиÑÑ Ð´Ð»Ñ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð½Ð¸Ñ… операцій, таких Ñк Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð° злиттÑ. %{learn_more}"
@@ -7774,11 +7332,14 @@ msgstr "Ð¦Ñ Ð°Ð´Ñ€ÐµÑа електронної пошти буде викорÐ
msgid "Profiles|This emoji and message will appear on your profile and throughout the interface."
msgstr "Цей Ñмайлик та Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð±ÑƒÐ´ÑƒÑ‚ÑŒ показані у вашому профілі та в інтерфейÑÑ–."
+msgid "Profiles|This feature is experimental and translations are not complete yet"
+msgstr ""
+
msgid "Profiles|This information will appear on your profile"
-msgstr "Ð¦Ñ Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð±ÑƒÐ´Ðµ відображатиÑÑ Ñƒ вашому профілі"
+msgstr ""
msgid "Profiles|Two-Factor Authentication"
-msgstr "Двофакторна автентифікаціÑ"
+msgstr ""
msgid "Profiles|Type your %{confirmationValue} to confirm:"
msgstr "Введіть ваш %{confirmationValue} Ð´Ð»Ñ Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ:"
@@ -7805,13 +7366,13 @@ msgid "Profiles|Username successfully changed"
msgstr "Ð†Ð¼â€™Ñ ÐºÐ¾Ñ€Ð¸Ñтувача уÑпішно збережено"
msgid "Profiles|Using emojis in names seems fun, but please try to set a status message instead"
-msgstr "ВикориÑÑ‚Ð°Ð½Ð½Ñ Ñмайликів в іменах виглÑдає дотепно, але, будь лаÑка, краще викориÑтовуйте Ñ—Ñ… в повідомленнÑÑ… про ÑтатуÑ"
+msgstr ""
msgid "Profiles|What's your status?"
msgstr "Який ваш ÑтатуÑ?"
msgid "Profiles|Who you represent or work for"
-msgstr "Кого ви предÑтавлÑєте або на кого працюєте"
+msgstr ""
msgid "Profiles|You can change your avatar here"
msgstr "Тут ви можете змінити Ñвій аватар"
@@ -7832,19 +7393,19 @@ msgid "Profiles|You must transfer ownership or delete these groups before you ca
msgstr "Вам необхідно змінити влаÑника або видалити ці групи перед тим Ñк видалити ваш обліковий запиÑ."
msgid "Profiles|Your LinkedIn profile name from linkedin.com/in/profilename"
-msgstr "Ваше ім'Ñ Ð¿Ñ€Ð¾Ñ„Ñ–Ð»ÑŽ LinkedIn з linkedin.com/in/profilename"
+msgstr ""
msgid "Profiles|Your account is currently an owner in these groups:"
msgstr "Ваш обліковий Ð·Ð°Ð¿Ð¸Ñ Ñ” влаÑником в цих групах:"
msgid "Profiles|Your email address was automatically set based on your %{provider_label} account"
-msgstr "Ваша адреÑа електронної пошти була автоматично вÑтановлена на оÑнові вашого облікового запиÑу %{provider_label}"
+msgstr ""
msgid "Profiles|Your location was automatically set based on your %{provider_label} account"
-msgstr "Ваше міÑÑ†ÐµÐ·Ð½Ð°Ñ…Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ð±ÑƒÐ»Ð¾ автоматично вÑтановлено на оÑнові вашого облікового запиÑу %{provider_label}"
+msgstr ""
msgid "Profiles|Your name was automatically set based on your %{provider_label} account, so people you know can recognize you"
-msgstr "Ваше Ñ–Ð¼â€™Ñ Ð±ÑƒÐ»Ð¾ автоматично вÑтановлено на оÑнові вашого облікового запиÑу %{provider_label} щоб люди могли Ð²Ð°Ñ Ð²Ð¿Ñ–Ð·Ð½Ð°Ñ‚Ð¸"
+msgstr ""
msgid "Profiles|Your status"
msgstr "Ваш ÑтатуÑ"
@@ -7853,10 +7414,10 @@ msgid "Profiles|e.g. My MacBook key"
msgstr "наприклад, мій ключ MacBook"
msgid "Profiles|username"
-msgstr "ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача"
+msgstr ""
msgid "Profiles|website.com"
-msgstr "Ñайт.укр"
+msgstr ""
msgid "Profiles|your account"
msgstr "ваш обліковий запиÑ"
@@ -7873,9 +7434,6 @@ msgstr "ПрогреÑ"
msgid "Project"
msgstr "Проект"
-msgid "Project \"%{name}\" is no longer available. Select another project to continue."
-msgstr "Проект \"%{name}\" більше не доÑтупний. Щоб продовжити виберіть інший проект."
-
msgid "Project '%{project_name}' is in the process of being deleted."
msgstr "Проект '%{project_name}' перебуває в процеÑÑ– видаленнÑ."
@@ -7918,11 +7476,8 @@ msgstr "ЗакінчивÑÑ Ñ‚ÐµÑ€Ð¼Ñ–Ð½ дії поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° проÐ
msgid "Project export started. A download link will be sent by email."
msgstr "Розпочато екÑпорт проекту. ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð´Ð»Ñ ÑÐºÐ°Ñ‡ÑƒÐ²Ð°Ð½Ð½Ñ Ð±ÑƒÐ´Ðµ надіÑлана електронною поштою."
-msgid "Project has too many %{label_for_message} to search"
-msgstr "Ð’ проекті занадто багато %{label_for_message} Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ"
-
msgid "Project members"
-msgstr "УчаÑники проекту"
+msgstr ""
msgid "Project name"
msgstr "Ðазва проекту"
@@ -7931,7 +7486,7 @@ msgid "Project slug"
msgstr "ШлÑÑ… проекту"
msgid "Project:"
-msgstr "Проект:"
+msgstr ""
msgid "ProjectActivityRSS|Subscribe"
msgstr "ПідпиÑатиÑÑ"
@@ -8020,18 +7575,12 @@ msgstr "КориÑтувачі можуть відправлÑти в цей Ñ€Ð
msgid "Projects"
msgstr "Проекти"
-msgid "Projects Successfully Retrieved"
-msgstr ""
-
msgid "Projects shared with %{group_name}"
msgstr "Спільні проекти з %{group_name}"
msgid "Projects that belong to a group are prefixed with the group namespace. Existing projects may be moved into a group."
msgstr "Проекти, що належать до групи, викориÑтовують Ñ—Ñ— ім'Ñ Ñк префікÑ. ІÑнуючі проекти можуть бути переміщені в групу."
-msgid "Projects with write access"
-msgstr ""
-
msgid "ProjectsDropdown|Frequently visited"
msgstr "ЧаÑто відвідувані"
@@ -8108,7 +7657,7 @@ msgid "PrometheusService|Custom metrics"
msgstr "ВлаÑні метрики"
msgid "PrometheusService|Enable Prometheus to define custom metrics, using either option above"
-msgstr "Увімкнути Prometheus Ð´Ð»Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ð»Ð°Ñних метрик, викориÑтовуючи будь-Ñкий з варіантів вище"
+msgstr ""
msgid "PrometheusService|Finding and configuring metrics..."
msgstr "Пошук та Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼ÐµÑ‚Ñ€Ð¸Ðº..."
@@ -8240,7 +7789,7 @@ msgid "Pseudonymizer data collection"
msgstr "Збір даних Pseudonymizer"
msgid "Public"
-msgstr "Публічний"
+msgstr ""
msgid "Public - The group and any public projects can be viewed without any authentication."
msgstr "Публічна — група та вÑÑ– публічні проекти можуть переглÑдатиÑÑ Ð±ÐµÐ· автентифікації."
@@ -8248,9 +7797,6 @@ msgstr "Публічна — група та вÑÑ– публічні проекÑ
msgid "Public - The project can be accessed without any authentication."
msgstr "Публічний — проект может переглÑдатиÑÑ Ð±ÐµÐ· автентифікації."
-msgid "Public deploy keys (%{deploy_keys_count})"
-msgstr ""
-
msgid "Public pipelines"
msgstr "Публічні конвеєри"
@@ -8285,19 +7831,19 @@ msgid "Quarters"
msgstr "Квартали"
msgid "Query"
-msgstr "Запит"
+msgstr ""
msgid "Quick actions can be used in the issues description and comment boxes."
msgstr "Швидкі дії можна викориÑтовувати в опиÑах задач Ñ– коментарÑÑ…."
msgid "README"
-msgstr "ІнÑÑ‚Ñ€ÑƒÐºÑ†Ñ–Ñ (README)"
+msgstr ""
msgid "Read more"
msgstr "Докладніше"
msgid "Read more about environments"
-msgstr "Читати більше про Ñередовища"
+msgstr ""
msgid "Read more about project permissions <strong>%{link_to_help}</strong>"
msgstr "ДізнайтеÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про права доÑтупу в проекті <strong>%{link_to_help}</strong>"
@@ -8306,12 +7852,6 @@ msgid "Real-time features"
msgstr "Фунції реального чаÑу"
msgid "Receive alerts from manually configured Prometheus servers."
-msgstr "Отримувати Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ Ð²Ñ–Ð´ налаштованого вручну Ñервера Prometheus."
-
-msgid "Recent"
-msgstr ""
-
-msgid "Recent Project Activity"
msgstr ""
msgid "Recent searches"
@@ -8343,7 +7883,7 @@ msgid "Register / Sign In"
msgstr "ЗареєÑтруватиÑÑ / Увійти"
msgid "Register U2F device"
-msgstr "ЗареєÑтрувати приÑтрій U2F"
+msgstr ""
msgid "Register and see your runners for this group."
msgstr "ЗареєÑтруйте Ñ– переглÑдайте ваші Runner’и Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— групи."
@@ -8376,7 +7916,7 @@ msgid "Related merge requests"
msgstr "Пов'Ñзані запити на злиттÑ"
msgid "Releases"
-msgstr "Релізи"
+msgstr ""
msgid "Releases mark specific points in a project's development history, communicate information about the type of change, and deliver on prepared, often compiled, versions of the software to be reused elsewhere. Currently, releases can only be created through the API."
msgstr ""
@@ -8391,16 +7931,10 @@ msgid "Remove Runner"
msgstr "Видалити Runner"
msgid "Remove all approvals in a merge request when new commits are pushed to its source branch"
-msgstr "ВидалÑти вÑÑ– Ð·Ð°Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ñƒ запитах на злиттÑ, коли у гілці-джерелі з'ÑвлÑÑŽÑ‚ÑŒÑÑ Ð½Ð¾Ð²Ñ– коміти"
+msgstr ""
msgid "Remove approver"
-msgstr "Видалити затверджуючу оÑобу"
-
-msgid "Remove approvers"
-msgstr "Видалити затверджуючих оÑіб"
-
-msgid "Remove approvers?"
-msgstr "Видалити затверджуючих оÑіб?"
+msgstr ""
msgid "Remove avatar"
msgstr "Видалити аватар"
@@ -8433,13 +7967,13 @@ msgid "Reopen epic"
msgstr "Повторне Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ ÐµÐ¿Ñ–ÐºÑƒ"
msgid "Reopen milestone"
-msgstr "Повторне Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ ÐµÑ‚Ð°Ð¿Ñƒ"
+msgstr ""
msgid "Repair authentication"
-msgstr "Відновити автентифікацію"
+msgstr "Відновити аутентифікацію"
msgid "Reply to comment"
-msgstr "ВідповіÑти на коментар"
+msgstr ""
msgid "Reply to this email directly or %{view_it_on_gitlab}."
msgstr "ВідповіÑти на це електронне Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð±ÐµÐ·Ð¿Ð¾Ñередньо або %{view_it_on_gitlab}."
@@ -8489,12 +8023,6 @@ msgstr "Результати Ð´Ð»Ñ Ñ‚ÐµÑтового звіту оброблÑ
msgid "Reports|Vulnerability"
msgstr "ВразливіÑÑ‚ÑŒ"
-msgid "Reports|issue"
-msgstr ""
-
-msgid "Reports|merge request"
-msgstr ""
-
msgid "Reports|no changed test results"
msgstr "результати теÑтів не змінилиÑÑ"
@@ -8508,10 +8036,10 @@ msgid "Repository URL"
msgstr "URL репозиторіÑ"
msgid "Repository cleanup"
-msgstr "ÐžÑ‡Ð¸Ñ‰ÐµÐ½Ð½Ñ Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ñ–ÑŽ"
+msgstr ""
msgid "Repository cleanup has started. You will receive an email once the cleanup operation is complete."
-msgstr "ОчиÑтку репозиторію розпочато. Ви отримаєте Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾ електронній пошті піÑÐ»Ñ Ñ—Ñ— завершеннÑ."
+msgstr ""
msgid "Repository has no locks."
msgstr "Репозиторій не має блокувань."
@@ -8543,28 +8071,11 @@ msgstr "Вимагати від вÑÑ–Ñ… кориÑтувачів цієї грÑ
msgid "Require all users to accept Terms of Service and Privacy Policy when they access GitLab."
msgstr "Вимагати від уÑÑ–Ñ… кориÑтувачів приймати умови Ð½Ð°Ð´Ð°Ð½Ð½Ñ Ð¿Ð¾Ñлуг та політику конфіденційноÑÑ‚Ñ–, коли вони отримують доÑтуп до GitLab."
-msgid "Require approval from code owners"
-msgstr ""
-
-msgid "Requires approval from %{names}."
-msgid_plural "Requires %{count} more approvals from %{names}."
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
-msgid "Requires approval."
-msgid_plural "Requires %d more approvals."
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "Resend invite"
-msgstr "Повторно надіÑлати запрошеннÑ"
+msgstr ""
msgid "Reset authorization key"
-msgstr "Скинути ключ авторизації"
+msgstr ""
msgid "Reset authorization key?"
msgstr ""
@@ -8591,10 +8102,10 @@ msgid "Resolve discussion"
msgstr "Завершити обговореннÑ"
msgid "Resolved"
-msgstr "Вирішено"
+msgstr ""
msgid "Response"
-msgstr "Відповідь"
+msgstr ""
msgid "Response metrics (AWS ELB)"
msgstr "Метрики відповідей (AWS ELB)"
@@ -8606,7 +8117,7 @@ msgid "Response metrics (HA Proxy)"
msgstr "Метрики відповідей (HA Proxy)"
msgid "Response metrics (NGINX Ingress VTS)"
-msgstr "Метрики відповідей (NGINX Ingress VTS)"
+msgstr ""
msgid "Response metrics (NGINX Ingress)"
msgstr "Метрики відповідей (NGINX Ingress)"
@@ -8615,7 +8126,7 @@ msgid "Response metrics (NGINX)"
msgstr "Метрики відповідей (NGINX)"
msgid "Restart Terminal"
-msgstr "ПерезапуÑтити термінал"
+msgstr ""
msgid "Resume"
msgstr "Продовжити"
@@ -8637,7 +8148,7 @@ msgstr[2] "Показати значень"
msgstr[3] "Показати значень"
msgid "Reveal values"
-msgstr "Показати значеннÑ"
+msgstr ""
msgid "Revert this commit"
msgstr "Ðнулювати цей коміт"
@@ -8667,7 +8178,7 @@ msgid "Run CI/CD pipelines for external repositories"
msgstr "ЗапуÑтити CI/CD конвеєри Ð´Ð»Ñ Ð·Ð¾Ð²Ð½Ñ–ÑˆÐ½Ñ–Ñ… репозиторіїв"
msgid "Run tests against your code live using the Web Terminal"
-msgstr "ПротеÑтувати ваш запущений код за допомогою Веб-терміналу"
+msgstr ""
msgid "Run untagged jobs"
msgstr "Виконати Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð±ÐµÐ· тегів"
@@ -8697,7 +8208,7 @@ msgid "Runners API"
msgstr "API Runner’ів"
msgid "Runners activated for this project"
-msgstr "Runner'и активовані Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ проекту"
+msgstr ""
msgid "Runners can be placed on separate users, servers, and even on your local machine."
msgstr "Runner’и можуть розміщуватиÑÑ Ñƒ різних кориÑтувачів, на Ñерверах Ñ– навіть на вашій локальній машині."
@@ -8720,9 +8231,6 @@ msgstr "Ви викориÑтали уÑÑ– виділенні хвилини дÐ
msgid "Running"
msgstr "ВиконуєтьÑÑ"
-msgid "Running…"
-msgstr ""
-
msgid "SAML SSO"
msgstr "Єдиний вхід SAML"
@@ -8736,7 +8244,7 @@ msgid "SAML Single Sign On Settings"
msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ”Ð´Ð¸Ð½Ð¾Ð³Ð¾ входу SAML"
msgid "SAML for %{group_name}"
-msgstr "SAML Ð´Ð»Ñ %{group_name}"
+msgstr ""
msgid "SHA1 fingerprint of the SAML token signing certificate. Get this from your identity provider, where it can also be called \"Thumbprint\"."
msgstr "Відбиток SHA1 Ñертифікату Ð´Ð»Ñ Ð¿Ñ–Ð´Ð¿Ð¸ÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð¾ÐºÐµÐ½Ñ–Ð² SAML. Отримайте його від провайдера ідентифікації, де він також може називатиÑÑ \"Thumbprint\"."
@@ -8753,14 +8261,11 @@ msgstr "Відкритий SSH-ключ"
msgid "SSL Verification"
msgstr "Перевірка SSL"
-msgid "Saturday"
-msgstr "Субота"
-
msgid "Save"
msgstr "Зберегти"
msgid "Save Changes"
-msgstr "Зберегти зміни"
+msgstr ""
msgid "Save application"
msgstr "Зберегти заÑтоÑунок"
@@ -8772,7 +8277,7 @@ msgid "Save changes before testing"
msgstr "Зберегти зміни перед теÑтуваннÑм"
msgid "Save comment"
-msgstr "Зберегти коментар"
+msgstr ""
msgid "Save pipeline schedule"
msgstr "Зберегти розклад конвеєра"
@@ -8789,9 +8294,6 @@ msgstr "Заплановано"
msgid "Schedules"
msgstr "Розклади"
-msgid "Scheduling"
-msgstr ""
-
msgid "Scheduling Pipelines"
msgstr "ÐŸÐ»Ð°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð½Ð²ÐµÑ”Ñ€Ñ–Ð²"
@@ -8814,7 +8316,7 @@ msgid "Search"
msgstr "Пошук"
msgid "Search an environment spec"
-msgstr "Пошук Ñпецифікації Ñередовища"
+msgstr ""
msgid "Search branches"
msgstr "Пошук у гілках"
@@ -8829,7 +8331,7 @@ msgid "Search for projects, issues, etc."
msgstr "Пошук в проектах, задачах і т. д."
msgid "Search groups"
-msgstr "Пошук в групах"
+msgstr ""
msgid "Search merge requests"
msgstr "Пошук у запитах на злиттÑ"
@@ -8852,9 +8354,6 @@ msgstr "Пошук проектів"
msgid "Search users"
msgstr "Пошук кориÑтувачів"
-msgid "Search users or groups"
-msgstr ""
-
msgid "Search your projects"
msgstr "Пошук у ваших проектах"
@@ -8904,7 +8403,7 @@ msgid "Security Dashboard|Issue Created"
msgstr "Створено задачу"
msgid "Security Reports|At this time, the security dashboard only supports SAST and dependency scanning."
-msgstr "Ðа даний момент, панель безпеки підтримує тільки SAST та ÑÐºÐ°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñ€Ð°Ð·Ð»Ð¸Ð²Ð¾Ñтей."
+msgstr ""
msgid "Security Reports|Create issue"
msgstr "Створити задачу"
@@ -8913,13 +8412,13 @@ msgid "Security Reports|Dismiss vulnerability"
msgstr "Відхилити вразливіÑÑ‚ÑŒ"
msgid "Security Reports|Learn more about setting up your dashboard"
-msgstr "ДізнайтеÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð°ÑˆÐ¾Ñ— панелі"
+msgstr ""
msgid "Security Reports|More info"
msgstr "Детальніше"
msgid "Security Reports|No Vulnerabilities"
-msgstr "Ðемає вразливоÑтей"
+msgstr ""
msgid "Security Reports|Security dashboard documentation"
msgstr "Ð”Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ñ–Ñ Ð´Ð¾ панелі безпеки"
@@ -8927,9 +8426,6 @@ msgstr "Ð”Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ñ–Ñ Ð´Ð¾ панелі безпеки"
msgid "Security Reports|There was an error creating the issue."
msgstr "Помилка при Ñтворенні задачі."
-msgid "Security Reports|There was an error creating the merge request."
-msgstr ""
-
msgid "Security Reports|There was an error dismissing the vulnerability."
msgstr "Помилка при відхиленні вразливоÑÑ‚Ñ–."
@@ -8940,16 +8436,16 @@ msgid "Security Reports|There was an error reverting this dismissal."
msgstr "Помилка при анулюванні цього відхиленнÑ."
msgid "Security Reports|Undo dismiss"
-msgstr "Відмінити відхиленнÑ"
+msgstr ""
msgid "Security Reports|We've found no vulnerabilities for your group"
-msgstr "Ми не виÑвили вразливоÑтей Ð´Ð»Ñ Ð²Ð°ÑˆÐ¾Ñ— групи"
+msgstr ""
msgid "Security Reports|While it's rare to have no vulnerabilities for your group, it can happen. In any event, we ask that you please double check your settings to make sure you've set up your dashboard correctly."
-msgstr "Хоча й рідко, але можливо, що ваша група не має вразливоÑтей. Ð’ будь-Ñкому разі, ми проÑимо Ð²Ð°Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€Ð¸Ñ‚Ð¸ ваші налаштуваннÑ, щоб впевнитиÑÑ, що ваша панель налаштована правильно."
+msgstr ""
msgid "Security dashboard"
-msgstr "Панель безпеки"
+msgstr ""
msgid "SecurityDashboard| The security dashboard displays the latest security report. Use it to find and fix vulnerabilities."
msgstr "Ðа панелі безпеки відображаєтьÑÑ Ð¾Ñтанній звіт про безпеку. ВикориÑтовуйте його Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ та Ð²Ð¸Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð²Ñ€Ð°Ð·Ð»Ð¸Ð²Ð¾Ñтей."
@@ -8961,7 +8457,7 @@ msgid "SecurityDashboard|Pipeline %{pipelineLink} triggered"
msgstr "Конвеєр %{pipelineLink} запущено"
msgid "See metrics"
-msgstr "ПереглÑнути метрики"
+msgstr ""
msgid "See the affected projects in the GitLab admin panel"
msgstr ""
@@ -8978,12 +8474,6 @@ msgstr "Виберіть групу Ð´Ð»Ñ Ð·Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð½Ñ"
msgid "Select a namespace to fork the project"
msgstr "Виберіть проÑÑ‚Ñ–Ñ€ імен Ð´Ð»Ñ Ñ„Ð¾Ñ€ÐºÑƒ проекту"
-msgid "Select a project to read Insights configuration file"
-msgstr ""
-
-msgid "Select a repository"
-msgstr ""
-
msgid "Select a template repository"
msgstr "Вибрати шаблон репозиторію"
@@ -9000,7 +8490,7 @@ msgid "Select branch/tag"
msgstr "Виберіть гілку або тег"
msgid "Select members to invite"
-msgstr "Виберіть учаÑників Ð´Ð»Ñ Ð·Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð½Ñ"
+msgstr ""
msgid "Select project"
msgstr "Вибрати проект"
@@ -9029,17 +8519,20 @@ msgstr "Вкажіть групу, де розміщені влаÑні шабл
msgid "Selecting a GitLab user will add a link to the GitLab user in the descriptions of issues and comments (e.g. \"By <a href=\"#\">@johnsmith</a>\"). It will also associate and/or assign these issues and comments with the selected user."
msgstr "При виборі кориÑтувача Gitlab поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° нього буде додане до опиÑу задачі та коментарів (напр. \"<a href=\"#\"> @johnsmith</a>\"). Також це призведе до аÑоціації та/або Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ†Ð¸Ñ… задач та коментарів на вибраного кориÑтувача."
+msgid "Selective synchronization"
+msgstr "Вибіркова ÑинхронізаціÑ"
+
msgid "Send email"
msgstr "ÐадіÑлати лиÑта"
msgid "Send report"
-msgstr "ÐадіÑлати звіт"
+msgstr ""
msgid "Send usage data"
msgstr "Відправити дані про викориÑтаннÑ"
msgid "Sentry API URL"
-msgstr "URL-адреÑа Sentry API"
+msgstr ""
msgid "Sep"
msgstr "вер."
@@ -9051,46 +8544,46 @@ msgid "Server version"
msgstr "ВерÑÑ–Ñ Ñервера"
msgid "Serverless"
-msgstr "Serverless"
+msgstr ""
msgid "ServerlessDetails|Kubernetes Pods"
-msgstr "Pod'и Kubernetes"
+msgstr ""
msgid "ServerlessDetails|Number of Kubernetes pods in use over time based on necessity."
-msgstr "КількіÑÑ‚ÑŒ pod'ів Kubernetes у викориÑтанні на оÑнові необхідноÑÑ‚Ñ– протÑгом періоду чаÑу."
+msgstr ""
msgid "ServerlessDetails|pod in use"
-msgstr "pod у викориÑтанні"
+msgstr ""
msgid "ServerlessDetails|pods in use"
-msgstr "pod'и у викориÑтанні"
+msgstr ""
msgid "ServerlessURL|Copy URL to clipboard"
-msgstr "Скопіювати URL-адреÑу в буфер обміну"
+msgstr ""
msgid "Serverless| In order to start using functions as a service, you must first install Knative on your Kubernetes cluster."
-msgstr "Ð”Ð»Ñ Ñ‚Ð¾Ð³Ð¾, щоб почати викориÑтовувати функції Ñк ÑервіÑ, необхідно Ñпочатку вÑтановити Knative на ваш клаÑтер Kubernetes."
+msgstr ""
msgid "Serverless|An error occurred while retrieving serverless components"
-msgstr "СталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° при отриманні компонентів serverless"
+msgstr ""
msgid "Serverless|Getting started with serverless"
-msgstr "Початок роботи із serverless"
+msgstr ""
msgid "Serverless|If you believe none of these apply, please check back later as the function data may be in the process of becoming available."
-msgstr "Якщо ви вважаєте, що жодна з них не підходить, будь лаÑка перевірте пізніше, тому що дані про функції можуть бути в процеÑÑ– отриманнÑ."
+msgstr ""
msgid "Serverless|Install Knative"
-msgstr "Ð’Ñтановити Knative"
+msgstr ""
msgid "Serverless|Learn more about Serverless"
-msgstr "ДізнайтеÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про Serverless"
+msgstr ""
msgid "Serverless|No functions available"
-msgstr "Ðемає доÑтупних функцій"
+msgstr ""
msgid "Serverless|There is currently no function data available from Knative. This could be for a variety of reasons including:"
-msgstr "Ðаразі немає даних про функції від Knative. Це може бути викликано різними причинами, зокрема:"
+msgstr ""
msgid "Service Desk"
msgstr "Service Desk"
@@ -9104,9 +8597,6 @@ msgstr "URL ÑервіÑу"
msgid "Session expiration, projects limit and attachment size."
msgstr "Термін дії ÑеÑÑ–Ñ—, проектні ліміти та розміри вкладень."
-msgid "Set a number of approvals required, the approvers and other approval settings."
-msgstr ""
-
msgid "Set a password on your account to pull or push via %{protocol}."
msgstr "Ð’Ñтановіть пароль Ð´Ð»Ñ Ñвого облікового запиÑу, щоб мати можливіÑÑ‚ÑŒ відправлÑти та отримувати через %{protocol}."
@@ -9122,14 +8612,11 @@ msgstr "Ð’Ñтановити репозиторій шаблонів Ð´Ð»Ñ Ð²Ñ
msgid "Set max session time for web terminal."
msgstr "МакÑимальний термін дії ÑеÑÑ–Ñ— Ð´Ð»Ñ Ð²ÐµÐ±-терміналу."
-msgid "Set new password"
-msgstr ""
-
msgid "Set notification email for abuse reports."
msgstr "Ðалаштувати ÑÐ¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¿Ð¾ електронній пошті Ð´Ð»Ñ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½ÑŒ про зловживаннÑ."
msgid "Set number of approvers required before open merge requests can be merged"
-msgstr "Ð’Ñтановити необхідну кількіÑÑ‚ÑŒ затверджуючих оÑіб перед тим, Ñк відкритий запит на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð¼Ð¾Ð¶Ðµ бути злитий"
+msgstr ""
msgid "Set requirements for a user to sign-in. Enable mandatory two-factor authentication."
msgstr "Ð’Ñтановіть вимоги Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ñƒ кориÑтувачів. Увімкніть обов’Ñзкову двофакторну автентифікацію."
@@ -9147,9 +8634,6 @@ msgid "Set up assertions/attributes/claims (email, first_name, last_name) and Na
msgstr "Ðалаштуйте твердженнÑ/атрибути (email, ім'Ñ, прізвище) Ñ– NameID відповідно до %{docsLinkStart} документації %{icon}%{docsLinkEnd}"
msgid "Set up new U2F device"
-msgstr "Ðалаштувати новий приÑтрій U2F"
-
-msgid "Set up new password"
msgstr ""
msgid "Set up your project to automatically push and/or pull changes to/from another repository. Branches, tags, and commits will be synced automatically."
@@ -9209,20 +8693,14 @@ msgstr "Обнулити викориÑтані хвилини в конвеєр
msgid "Sherlock Transactions"
msgstr "Sherlock транзакції"
-msgid "Show all activity"
-msgstr ""
-
msgid "Show command"
msgstr "Показати команду"
-msgid "Show comments only"
-msgstr ""
-
msgid "Show complete raw log"
msgstr "Показати повний неформатований журнал"
msgid "Show file browser"
-msgstr "Показати файловий менеджер"
+msgstr ""
msgid "Show latest version"
msgstr "Показати оÑтанню верÑÑ–ÑŽ"
@@ -9265,19 +8743,19 @@ msgid "Sign in / Register"
msgstr "Увійти або зареєÑтруватиÑÑ"
msgid "Sign in to \"%{group_name}\""
-msgstr "Увійти до \"%{group_name}\""
+msgstr ""
msgid "Sign in using smart card"
-msgstr "Увійти за допомогою Ñмарт-карти"
+msgstr ""
msgid "Sign in via 2FA code"
-msgstr "Увійти за допомогою коду двофакторної автентифікції"
+msgstr ""
msgid "Sign in with Single Sign-On"
msgstr "Увійти за допомогою єдиного входу"
msgid "Sign in with smart card"
-msgstr "Увійти за допомогою Ñмарт-карти"
+msgstr ""
msgid "Sign out"
msgstr "Вийти"
@@ -9289,7 +8767,7 @@ msgid "Sign-up restrictions"
msgstr "ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ñ€ÐµÑ”Ñтрації"
msgid "Similar issues"
-msgstr "Подібні задачі"
+msgstr ""
msgid "Size"
msgstr "Розмір"
@@ -9313,34 +8791,16 @@ msgid "Smartcard authentication failed: client certificate header is missing."
msgstr "Ðе вдалоÑÑ Ð°Ð²Ñ‚ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÑƒÐ²Ð°Ñ‚Ð¸ Ñмарт-карту: відÑутній заголовок в Ñертифікаті клієнта."
msgid "Snippet Contents"
-msgstr "ВміÑÑ‚ Ñніпета"
+msgstr ""
msgid "Snippets"
msgstr "Сніпети"
-msgid "SnippetsEmptyState|Explore public snippets"
-msgstr ""
-
-msgid "SnippetsEmptyState|New snippet"
-msgstr ""
-
-msgid "SnippetsEmptyState|No snippets found"
-msgstr ""
-
-msgid "SnippetsEmptyState|Snippets are small pieces of code or notes that you want to keep."
-msgstr ""
-
-msgid "SnippetsEmptyState|There are no snippets to show."
-msgstr ""
-
-msgid "SnippetsEmptyState|They can be either public or private."
-msgstr ""
-
msgid "Someone edited this %{issueType} at the same time you did. The description has been updated and you will need to make your changes again."
-msgstr "ХтоÑÑŒ відредагував цю %{issueType} одночаÑно з вами. ÐžÐ¿Ð¸Ñ Ð±ÑƒÐ»Ð¾ оновлено, тому вам знову треба внеÑти Ñвої зміни."
+msgstr ""
msgid "Someone edited this merge request at the same time you did. Please refresh the page to see changes."
-msgstr "ХтоÑÑŒ відредагував цей запит на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð¾Ð´Ð½Ð¾Ñ‡Ð°Ñно з вами. Будь лаÑка, оновіть Ñторінку, щоб побачити зміни."
+msgstr ""
msgid "Something went wrong on our end"
msgstr "ЩоÑÑŒ пішло не так з нашого боку"
@@ -9352,7 +8812,7 @@ msgid "Something went wrong on our end. Please try again!"
msgstr "ЩоÑÑŒ пішло не так на нашій Ñтороні. Будь-лаÑка, Ñпробуйте ще раз!"
msgid "Something went wrong on our end. Please try again."
-msgstr "ЩоÑÑŒ пішло не так на нашій Ñтороні. Будь-лаÑка, Ñпробуйте ще раз."
+msgstr ""
msgid "Something went wrong trying to change the confidentiality of this issue"
msgstr "Помилка при зміні конфіденційноÑÑ‚Ñ– цієї задачі"
@@ -9364,13 +8824,13 @@ msgid "Something went wrong when toggling the button"
msgstr "Помилка при перемиканні кнопки"
msgid "Something went wrong while applying the suggestion. Please try again."
-msgstr "Помилка при заÑтоÑуванні пропозиції. Будь лаÑка, Ñпробуйте знову."
+msgstr ""
msgid "Something went wrong while closing the %{issuable}. Please try again later"
msgstr "Помилка при закритті %{issuable}. Будь лаÑка, Ñпробуйте пізніше"
msgid "Something went wrong while deleting the source branch. Please try again."
-msgstr "Помилка при видаленні гілки-джерела. Будь лаÑка, Ñпробуйте знову."
+msgstr ""
msgid "Something went wrong while fetching %{listType} list"
msgstr "Помилка при отриманні ÑпиÑку %{listType}"
@@ -9391,7 +8851,7 @@ msgid "Something went wrong while fetching the registry list."
msgstr "ЩоÑÑŒ пішло не так при отриманні ÑпиÑку із реєÑтру."
msgid "Something went wrong while merging this merge request. Please try again."
-msgstr "Помилка при заÑтоÑуванні цього запиту на злиттÑ. Будь лаÑка, Ñпробуйте знову."
+msgstr ""
msgid "Something went wrong while reopening the %{issuable}. Please try again later"
msgstr "Помилка при повторному відкритті %{issuable}. Будь лаÑка, Ñпробуйте пізніше"
@@ -9418,13 +8878,13 @@ msgid "Sorry, no projects matched your search"
msgstr "Ðа жаль жоден проект не задовольнÑÑ” критеріÑм вашого пошуку"
msgid "Sorry, your filter produced no results"
-msgstr "Ðа жаль, немає результатів, Ñкі відповідають фільтру"
+msgstr ""
msgid "Sort by"
msgstr "Сортувати за"
msgid "Sort direction"
-msgstr "ПорÑдок ÑортуваннÑ"
+msgstr ""
msgid "SortOptions|Access level, ascending"
msgstr "Рівень доÑтупу, в порÑдку зроÑтаннÑ"
@@ -9472,7 +8932,7 @@ msgid "SortOptions|Less weight"
msgstr "Менша вага"
msgid "SortOptions|Milestone due date"
-msgstr "Дата Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ ÐµÑ‚Ð°Ð¿Ñƒ"
+msgstr ""
msgid "SortOptions|Milestone due later"
msgstr "Етап запланований на пізніше"
@@ -9505,7 +8965,7 @@ msgid "SortOptions|Oldest joined"
msgstr "Приєднаний найраніше"
msgid "SortOptions|Oldest last activity"
-msgstr "ÐайÑтаріша оÑÑ‚Ð°Ð½Ð½Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ñ–ÑÑ‚ÑŒ"
+msgstr ""
msgid "SortOptions|Oldest sign in"
msgstr "Залогінений найраніше"
@@ -9520,7 +8980,7 @@ msgid "SortOptions|Priority"
msgstr "Пріоритет"
msgid "SortOptions|Recent last activity"
-msgstr "Ðайновіша оÑÑ‚Ð°Ð½Ð½Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ñ–ÑÑ‚ÑŒ"
+msgstr ""
msgid "SortOptions|Recent sign in"
msgstr "Ðещодавно зареєÑтровані"
@@ -9550,7 +9010,7 @@ msgid "Source is not available"
msgstr "Джерело недоÑтупне"
msgid "Source project cannot be found."
-msgstr "Проект-джерело не знайдено."
+msgstr ""
msgid "Spam Logs"
msgstr "Спам-журнал"
@@ -9568,7 +9028,7 @@ msgid "Specify the following URL during the Runner setup:"
msgstr "Зазначте наÑтупний URL під Ñ‡Ð°Ñ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Runner-а:"
msgid "Squash commit message"
-msgstr "ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð¾Ð±'єднаного (squash) коміту"
+msgstr ""
msgid "Squash commits"
msgstr "Виконати об'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ (squash) комітів"
@@ -9606,17 +9066,11 @@ msgstr "ÐктивніÑÑ‚ÑŒ в обраних проектах"
msgid "Starred projects"
msgstr "Обрані проекти"
-msgid "StarredProjectsEmptyState|Visit a project page and press on a star icon. Then, you can find the project on this page."
-msgstr ""
-
-msgid "StarredProjectsEmptyState|You don't have starred projects yet."
-msgstr ""
-
msgid "Stars"
-msgstr "У обраному"
+msgstr ""
msgid "Start Web Terminal"
-msgstr "ЗапуÑтити Веб-Термінал"
+msgstr ""
msgid "Start a %{new_merge_request} with these changes"
msgstr "Почати %{new_merge_request} з цими змінами"
@@ -9628,19 +9082,19 @@ msgid "Start and due date"
msgstr "Дата початку та завершеннÑ"
msgid "Start cleanup"
-msgstr "Почати очищеннÑ"
+msgstr ""
msgid "Start date"
msgstr "Дата початку"
msgid "Start discussion"
-msgstr "Розпочати диÑкуÑÑ–ÑŽ"
+msgstr ""
msgid "Start discussion & close %{noteable_name}"
-msgstr "Розпочати Ð¾Ð±Ð³Ð¾Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚Ð° закрити %{noteable_name}"
+msgstr ""
msgid "Start discussion & reopen %{noteable_name}"
-msgstr "Розпочати Ð¾Ð±Ð³Ð¾Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ– повторно відкрити %{noteable_name}"
+msgstr ""
msgid "Start the Runner!"
msgstr "ЗапуÑÑ‚Ñ–Ñ‚ÑŒ Runner!"
@@ -9652,13 +9106,13 @@ msgid "Started"
msgstr "Запущений"
msgid "Started %{startsIn}"
-msgstr "Запущено %{startsIn}"
+msgstr ""
msgid "Starting..."
-msgstr "ЗапуÑк..."
+msgstr ""
msgid "Starts %{startsIn}"
-msgstr "Буде запущено %{startsIn}"
+msgstr ""
msgid "Starts at (UTC)"
msgstr "ПочинаєтьÑÑ Ð¾ (за Грінвічем)"
@@ -9670,10 +9124,10 @@ msgid "Status"
msgstr "СтатуÑ"
msgid "Status:"
-msgstr "СтатуÑ:"
+msgstr ""
msgid "Stop Terminal"
-msgstr "Зупинити термінал"
+msgstr ""
msgid "Stop environment"
msgstr "Зупинити Ñередовище"
@@ -9691,7 +9145,7 @@ msgid "Stopping this environment is currently not possible as a deployment is in
msgstr "Зупинка Ñередовища наразі неможлива, тому що відбуваєтьÑÑ Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ"
msgid "Stopping..."
-msgstr "ЗупиненнÑ..."
+msgstr ""
msgid "Storage"
msgstr "Сховище"
@@ -9709,7 +9163,7 @@ msgid "Submit as spam"
msgstr "Позначити Ñк Ñпам"
msgid "Submit feedback"
-msgstr "ÐадіÑлати відгук"
+msgstr ""
msgid "Submit review"
msgstr "ÐадіÑлати перевірку"
@@ -9727,19 +9181,19 @@ msgid "Subscribe at project level"
msgstr "ПідпиÑатиÑÑ Ð½Ð° рівні проекту"
msgid "Subscribe to RSS feed"
-msgstr "ПідпиÑатиÑÑ Ð½Ð° RSS-канал"
+msgstr ""
msgid "Subscribe to calendar"
-msgstr "ПідпиÑатиÑÑ Ð½Ð° календар"
+msgstr ""
msgid "Subscribed"
msgstr "Ви підпиÑані"
msgid "SubscriptionTable|Billing"
-msgstr "Білінг"
+msgstr ""
msgid "SubscriptionTable|Free"
-msgstr "Безкоштовно"
+msgstr ""
msgid "SubscriptionTable|GitLab allows you to continue using your subscription even if you exceed the number of seats you purchased. You will be required to pay for these seats upon renewal."
msgstr ""
@@ -9754,7 +9208,7 @@ msgid "SubscriptionTable|Loading subscriptions"
msgstr ""
msgid "SubscriptionTable|Manage"
-msgstr "УправліннÑ"
+msgstr ""
msgid "SubscriptionTable|Max seats used"
msgstr ""
@@ -9772,10 +9226,10 @@ msgid "SubscriptionTable|Seats owed"
msgstr ""
msgid "SubscriptionTable|Subscription end date"
-msgstr "Дата Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð¿Ñ–Ð´Ð¿Ð¸Ñки"
+msgstr ""
msgid "SubscriptionTable|Subscription start date"
-msgstr "Дата початку підпиÑки"
+msgstr ""
msgid "SubscriptionTable|This is the last time the GitLab.com team was in contact with you to settle any outstanding balances."
msgstr ""
@@ -9790,28 +9244,28 @@ msgid "SubscriptionTable|This is the number of seats you will be required to pur
msgstr ""
msgid "SubscriptionTable|Trial"
-msgstr "Пробна верÑÑ–Ñ"
+msgstr ""
msgid "SubscriptionTable|Trial end date"
-msgstr "Дата Ð·Ð°ÐºÑ–Ð½Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð±Ð½Ð¾Ñ— верÑÑ–Ñ—"
+msgstr ""
msgid "SubscriptionTable|Trial start date"
-msgstr "Дата початку пробної верÑÑ–Ñ—"
+msgstr ""
msgid "SubscriptionTable|Upgrade"
-msgstr "Підвищити"
+msgstr ""
msgid "SubscriptionTable|Usage"
-msgstr "ВикориÑтаннÑ"
+msgstr ""
msgid "SubscriptionTable|Usage count is performed once a day at 12:00 PM."
msgstr ""
msgid "Suggested change"
-msgstr "Пропонована зміна"
+msgstr ""
msgid "Sunday"
-msgstr "ÐеділÑ"
+msgstr ""
msgid "Support for custom certificates is disabled. Ask your system's administrator to enable it."
msgstr ""
@@ -9822,9 +9276,6 @@ msgstr "Перейти в гілку/тег"
msgid "Sync information"
msgstr "Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ Ñинхронізацію"
-msgid "System"
-msgstr ""
-
msgid "System Hooks"
msgstr "СиÑтемні гуки"
@@ -9835,7 +9286,7 @@ msgid "System default (%{default})"
msgstr ""
msgid "System header and footer"
-msgstr "СиÑтемний заголовок та футер"
+msgstr ""
msgid "System metrics (Custom)"
msgstr "СиÑтемні метрики (ВлаÑні)"
@@ -9844,10 +9295,10 @@ msgid "System metrics (Kubernetes)"
msgstr "СиÑтемні метрики (Kubernetes)"
msgid "Tag"
-msgstr "Тег"
+msgstr ""
msgid "Tag list:"
-msgstr "СпиÑок тегів:"
+msgstr ""
msgid "Tags"
msgstr "Теги"
@@ -9943,10 +9394,10 @@ msgid "Templates"
msgstr "Шаблони"
msgid "Terminal"
-msgstr "Термінал"
+msgstr ""
msgid "Terminal for environment"
-msgstr "Термінал Ð´Ð»Ñ Ñередовища"
+msgstr ""
msgid "Terms of Service Agreement and Privacy Policy"
msgstr "Угода про Ð½Ð°Ð´Ð°Ð½Ð½Ñ Ð¿Ð¾Ñлуг Ñ– політика конфіденційноÑÑ‚Ñ–"
@@ -9970,7 +9421,7 @@ msgid "The Advanced Global Search in GitLab is a powerful search service that sa
msgstr "Розширений глобальний пошук в GitLab — це потужний інÑтрумент Ñкий заощаджує ваш чаÑ. ЗаміÑÑ‚ÑŒ Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð´Ñƒ Ñ– витрати чаÑу, ви можете шукати код інших команд, Ñкий може допомогти у вашому проекті."
msgid "The CSV export will be created in the background. Once finished, it will be sent to <strong>%{email}</strong> in an attachment."
-msgstr "ЕкÑпорт CSV буде Ñтворено у фоновому режимі. ПіÑÐ»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð¹Ð¾Ð³Ð¾ буде надіÑлано на <strong>%{email}</strong> у вкладенні."
+msgstr ""
msgid "The Git LFS objects will <strong>not</strong> be synced."
msgstr "Об'єкти Git LFS <strong>не</strong> будуть ÑинхронізуватиÑÑ."
@@ -9984,9 +9435,6 @@ msgstr "Трекер задач — це міÑце, де можна додатÐ
msgid "The X509 Certificate to use when mutual TLS is required to communicate with the external authorization service. If left blank, the server certificate is still validated when accessing over HTTPS."
msgstr "Сертифікат X509 викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð²Ð·Ð°Ñ”Ð¼Ð½Ð¾Ñ— перевірки автентичноÑÑ‚Ñ– TLS Ñ– необхідний Ð´Ð»Ñ Ð·Ð²'Ñзку з зовнішньою Ñлужбою авторизації. Якщо залишити порожнім, Ñертифікат Ñервера буде перевірÑтиÑÑŒ при доÑтупі через HTTPS."
-msgid "The branch for this project has no active pipeline configuration."
-msgstr ""
-
msgid "The character highlighter helps you keep the subject line to %{titleLength} characters and wrap the body at %{bodyLength} so they are readable in git."
msgstr "ПідÑвітка Ñимволів дозволÑÑ” обмежувати заголовок до %{titleLength} Ñимволів Ñ– обмежувати довжину Ñ€Ñдків тіла %{bodyLength} Ñимволами Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾, щоб вони залишаютьÑÑ Ñ‡Ð¸Ñ‚Ð°Ð±ÐµÐ»ÑŒÐ½Ð¸Ð¼Ð¸ в git."
@@ -10012,14 +9460,11 @@ msgid "The issue stage shows the time it takes from creating an issue to assigni
msgstr "Ð¡Ñ‚Ð°Ð´Ñ–Ñ Ð—Ð°Ð´Ð°Ñ‡Ð° показує, Ñкільки чаÑу потрібно від ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð´Ð°Ñ‡Ñ– до Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ñ—Ñ— до ÑкогоÑÑŒ етапу, або Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð·Ð°Ð´Ð°Ñ‡Ñ– на дошку. Почніть Ñтворювати задачі, щоб переглÑдати дані Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— Ñтадії."
msgid "The maximum file size allowed is %{size}."
-msgstr "МакÑимальний розмір файлу — %{size}."
+msgstr ""
msgid "The maximum file size allowed is 200KB."
msgstr "МакÑимальний розмір файлу — 200 Кб."
-msgid "The name %{entryName} is already taken in this directory."
-msgstr ""
-
msgid "The passphrase required to decrypt the private key. This is optional and the value is encrypted at rest."
msgstr "Пароль, Ñкий потрібен Ð´Ð»Ñ Ð´ÐµÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¸Ð²Ð°Ñ‚Ð½Ð¾Ð³Ð¾ ключа. Він Ñ” необов’Ñзковим Ñ– зберігаєтьÑÑ Ñƒ зашифрованому виглÑді."
@@ -10096,19 +9541,19 @@ msgid "The value lying at the midpoint of a series of observed values. E.g., bet
msgstr "Середнє Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð² Ñ€Ñдку. Приклад: між 3, 5, 9, Ñередніми 5, між 3, 5, 7, 8, Ñередніми (5 + 7) / 2 = 6."
msgid "There are no approvers"
-msgstr "Ðемає затверджуючих оÑіб"
+msgstr ""
msgid "There are no archived projects yet"
msgstr "Ðаразі немає жодного архівованого проекту"
msgid "There are no closed issues"
-msgstr "Закритих задач немає"
+msgstr ""
msgid "There are no closed merge requests"
-msgstr "Закритих запитів на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð½ÐµÐ¼Ð°Ñ”"
+msgstr ""
msgid "There are no custom project templates set up for this GitLab instance. They are enabled from GitLab's Admin Area. Contact your GitLab instance administrator to setup custom project templates."
-msgstr "ВлаÑні шаблони проектів не налаштовані Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ Ñерверу GitLab. Вони активуютьÑÑ Ð½Ð° Ñторінці адмініÑÑ‚Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ GitLab. ЗвернітьÑÑ Ð´Ð¾ адмініÑтратора GitLab Ð´Ð»Ñ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð»Ð°Ñних шаблонів проектів."
+msgstr ""
msgid "There are no issues to show"
msgstr "Ðемає задач Ð´Ð»Ñ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ"
@@ -10117,10 +9562,10 @@ msgid "There are no labels yet"
msgstr "Тут ще немає міток"
msgid "There are no open issues"
-msgstr "Відкритих задач немає"
+msgstr ""
msgid "There are no open merge requests"
-msgstr "Відкритих запитів на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð½ÐµÐ¼Ð°Ñ”"
+msgstr ""
msgid "There are no packages yet"
msgstr ""
@@ -10135,7 +9580,7 @@ msgid "There are no unstaged changes"
msgstr "Ðемає неіндекÑованих змін"
msgid "There was an error adding a todo."
-msgstr "Помилка при додаванні нагадуваннÑ."
+msgstr "Помилка при додаванні задачі."
msgid "There was an error deleting the todo."
msgstr "Помилка при видаленні задачі."
@@ -10143,9 +9588,6 @@ msgstr "Помилка при видаленні задачі."
msgid "There was an error loading users activity calendar."
msgstr "Помилка при завантаженні ÐºÐ°Ð»ÐµÐ½Ð´Ð°Ñ€Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾ÑÑ‚Ñ– кориÑтувачів."
-msgid "There was an error saving your changes."
-msgstr ""
-
msgid "There was an error saving your notification settings."
msgstr "Помилка при збереженні ваших налаштувань Ñповіщень."
@@ -10162,7 +9604,7 @@ msgid "There was an error when unsubscribing from this label."
msgstr "Помилка при відпиÑці від цієї мітки."
msgid "These existing issues have a similar title. It might be better to comment there instead of creating another similar issue."
-msgstr "Ці Ñ–Ñнуючі проблеми мають подібні заголовки. Можливо, краще додати коментар до однієї з них заміÑÑ‚ÑŒ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð¾Ð²Ð¾Ñ—."
+msgstr ""
msgid "They can be managed using the %{link}."
msgstr "Ðими можна керувати за допомогою %{link}."
@@ -10171,10 +9613,10 @@ msgid "Third party offers"
msgstr "Сторонні пропозиції"
msgid "This %{issuable} is locked. Only <strong>project members</strong> can comment."
-msgstr "Ð¦Ñ %{issuable} заблокована. Лише <strong>учаÑники проекту</strong> можуть коментувати."
+msgstr ""
msgid "This %{viewer} could not be displayed because %{reason}. You can %{options} instead."
-msgstr "Цей %{viewer} не може бути відображено через %{reason}. ЗаміÑÑ‚ÑŒ цього можна %{options}."
+msgstr ""
msgid "This GitLab instance does not provide any shared Runners yet. Instance administrators can register shared Runners in the admin area."
msgstr "Цей інÑÑ‚Ð°Ð½Ñ GitLab ще немає загальних Runner'ів. ÐдмініÑтратори можуть Ñ—Ñ… зареєÑтрувати у Ñпеціальному розділі конфігурації."
@@ -10191,21 +9633,6 @@ msgstr "ВидиміÑÑ‚ÑŒ цієї дошки обмежена"
msgid "This branch has changed since you started editing. Would you like to create a new branch?"
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>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."
-msgstr ""
-
-msgid "This commit was signed with an <strong>unverified</strong> signature."
-msgstr ""
-
msgid "This container registry has been scheduled for deletion."
msgstr "Заплановане Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ реєÑтру контейнерів."
@@ -10225,9 +9652,6 @@ msgid "This directory"
msgstr "Цей каталог"
msgid "This domain is not verified. You will need to verify ownership before access is enabled."
-msgstr "Цей домен не підтверджено. Щоб увімкнути доÑтуп, потрібно підтвердити право влаÑноÑÑ‚Ñ–."
-
-msgid "This field is required."
msgstr ""
msgid "This group"
@@ -10294,10 +9718,10 @@ msgid "This job is in pending state and is waiting to be picked by a runner"
msgstr "Це Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” в Ñтані Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ñ– чекає на запуÑк Runner"
msgid "This job is stuck because you don't have any active runners online with any of these tags assigned to them:"
-msgstr "Це Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð·Ð°Ð±Ð»Ð¾ÐºÐ¾Ð²Ð°Ð½Ðµ, тому що немає жодних runner'ів з будь Ñким із цих тегів:"
+msgstr ""
msgid "This job is stuck because you don't have any active runners that can run this job."
-msgstr "Це Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð·Ð°Ð±Ð»Ð¾ÐºÐ¾Ð²Ð°Ð½Ðµ, тому що немає активних runner'ів, Ñкі могли б його виконати."
+msgstr ""
msgid "This job is the most recent deployment to %{link}."
msgstr "Це Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ñ” оÑтаннім розгортаннÑм на %{link}."
@@ -10306,7 +9730,7 @@ msgid "This job requires a manual action"
msgstr "Ð—Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð²Ð¸Ð¼Ð°Ð³Ð°Ñ” ручних дій"
msgid "This job will automatically run after its timer finishes. Often they are used for incremental roll-out deploys to production environments. When unscheduled it converts into a manual action."
-msgstr "Ð—Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð±ÑƒÐ´Ðµ запущено автоматично піÑÐ»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ‚Ð°Ð¹Ð¼ÐµÑ€Ð°. Зазвичай вони викориÑтовуютьÑÑ Ð´Ð»Ñ Ñ–Ð½ÐºÑ€ÐµÐ¼ÐµÐ½Ñ‚Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð² production Ñередовище. У разі ÑкаÑÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð²Ð¾Ð½Ð¾ перетворитьÑÑ Ð½Ð° ручну операцію."
+msgstr ""
msgid "This means you can not push code until you create an empty repository or import existing one."
msgstr "Це означає, що ви не можете відправлÑти код, поки не Ñтворите порожній репозиторій або не імпортуєте Ñ–Ñнуючий."
@@ -10314,12 +9738,6 @@ msgstr "Це означає, що ви не можете відправлÑти
msgid "This merge request is locked."
msgstr "Цей запит на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð·Ð°Ð±Ð»Ð¾ÐºÐ¾Ð²Ð°Ð½Ð¾."
-msgid "This merge request must be approved by members of these groups. You can override the project settings by setting your own list of approvers."
-msgstr "Цей запит на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð¼Ð°Ñ” бути затверджений учаÑниками цих груп. Ви можете перевизначити проектні налаштуваннÑ, вÑтановивши ваш влаÑний ÑпиÑок затверджуючих оÑіб."
-
-msgid "This merge request must be approved by these users. You can override the project settings by setting your own list of approvers."
-msgstr "Цей запит на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð¼Ð°Ñ” бути затверджений цими кориÑтувачами. Ви можете перевизначити проектні налаштуваннÑ, вÑтановивши ваш влаÑний ÑпиÑок затверджуючих оÑіб."
-
msgid "This option is disabled as you don't have write permissions for the current branch"
msgstr "Цей параметр вимкнено, тому що у Ð²Ð°Ñ Ð½ÐµÐ¼Ð°Ñ” дозволу на Ð·Ð°Ð¿Ð¸Ñ Ñƒ поточну гілку"
@@ -10333,13 +9751,13 @@ msgid "This page will be removed in a future release."
msgstr "Цю Ñторінку буде видалено у майбутній верÑÑ–Ñ—."
msgid "This pipeline is run in a merge request context"
-msgstr "Цей конвеєр виконуєтьÑÑ Ð² контекÑÑ‚Ñ– запиту злиттÑ"
+msgstr ""
msgid "This pipeline makes use of a predefined CI/CD configuration enabled by %{strongStart}Auto DevOps.%{strongEnd}"
-msgstr "Цей конвеєр викориÑтовує попередньо визначену конфігурацію CI / CD, увімкнену за допомогою %{strongStart}Auto DevOps.%{strongEnd}"
+msgstr ""
msgid "This pipeline makes use of a predefined CI/CD configuration enabled by <b>Auto DevOps.</b>"
-msgstr "Цей конвеєр викориÑтовує попередньо визначену конфігурацію CI / CD, увімкнену за допомогою <b>Auto DevOps</b>"
+msgstr ""
msgid "This project"
msgstr "Цей проект"
@@ -10381,7 +9799,7 @@ msgid "This user will be the author of all events in the activity feed that are
msgstr "Цей кориÑтувач буде автором вÑÑ–Ñ… подій в каналі активноÑÑ‚Ñ–, Ñкі Ñ” результатом оновленнÑ, наприклад ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð¾Ð²Ð¸Ñ… гілок або Ð²Ñ–Ð´Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð½Ð¾Ð²Ð¸Ñ… комітів до Ñ–Ñнуючих гілок. При Ñтворенні або перепризначенні ви зможете призначити лише Ñебе кориÑтувачем Ð´Ð»Ñ Ð²Ñ–Ð´Ð´Ð·ÐµÑ€ÐºÐ°Ð»ÐµÐ½Ð½Ñ."
msgid "This will redirect you to an external sign in page."
-msgstr "Це перенаправить Ð²Ð°Ñ Ð½Ð° зовнішню Ñторінку входу."
+msgstr ""
msgid "Those emails automatically become issues (with the comments becoming the email conversation) listed here."
msgstr "Ці Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ ÐµÐ»ÐµÐºÑ‚Ñ€Ð¾Ð½Ð½Ð¾Ñ— пошти автоматично Ñтануть обговореннÑми задач, Ñкі відображатимутьÑÑ Ñ‚ÑƒÑ‚ (причому коментарі Ñтануть чаÑтиною перепиÑки)."
@@ -10578,7 +9996,7 @@ msgid "Title"
msgstr "Заголовок"
msgid "Titles and Filenames"
-msgstr "Заголовки та імена файлів"
+msgstr ""
msgid "To %{link_to_help} of your domain, add the above key to a TXT record within to your DNS configuration."
msgstr ""
@@ -10587,7 +10005,7 @@ msgid "To GitLab"
msgstr "Ð’ GitLab"
msgid "To access this domain create a new DNS record"
-msgstr "Щоб отримати доÑтуп до цього домену, Ñтворіть новий Ð·Ð°Ð¿Ð¸Ñ DNS"
+msgstr ""
msgid "To add an SSH key you need to %{generate_link_start}generate one%{link_end} or use an %{existing_link_start}existing key%{link_end}."
msgstr "Ð”Ð»Ñ Ñ‚Ð¾Ð³Ð¾, щоб додати ключ SSH вам необхідно %{generate_link_start}згенерувати його%{link_end} або викориÑтати %{existing_link_start}Ñ–Ñнуючий ключ%{link_end}."
@@ -10638,7 +10056,7 @@ msgid "To keep this project going, create a new merge request"
msgstr ""
msgid "To link Sentry to GitLab, enter your Sentry URL and Auth Token."
-msgstr "Ð”Ð»Ñ Ñ–Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ñ–Ñ— Sentry із Gitlab введіть URL-адреÑу Sentry та токен автентифікації."
+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 "Щоб переміÑтити або Ñкопіювати веÑÑŒ проект GitLab з іншої інÑталÑції GitLab до цього, перейдіть на Ñторінку налаштувань оригіналу проекту, Ñтворіть файл екÑпорту та надішліть його Ñюди."
@@ -10650,19 +10068,19 @@ msgid "To open Jaeger and easily view tracing from GitLab, link the %{link} page
msgstr ""
msgid "To preserve performance only <strong>%{display_size} of %{real_size}</strong> files are displayed."
-msgstr "Ð”Ð»Ñ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ ÑˆÐ²Ð¸Ð´ÐºÐ¾Ð´Ñ–Ñ— відображаютьÑÑ Ð»Ð¸ÑˆÐµ <strong>%{display_size} із %{real_size}</strong> файлів."
+msgstr ""
msgid "To receive alerts from manually configured Prometheus services, add the following URL and Authorization key to your Prometheus webhook config file. Learn more about %{linkStart}configuring Prometheus%{linkEnd} to send alerts to GitLab."
msgstr ""
msgid "To set up SAML authentication for your group through an identity provider like Azure, Okta, Onelogin, Ping Identity, or your custom SAML 2.0 provider:"
-msgstr "Щоб налаштувати автентифікацію SAML Ð´Ð»Ñ Ð²Ð°ÑˆÐ¾Ñ— групи через провайдера ідентифікації такої Ñк Azure, Okta, Onelogin, Ping Identity або вашого влаÑного поÑтачальника SAML 2.0:"
+msgstr "Щоб налаштувати аутентифікацію SAML Ð´Ð»Ñ Ð²Ð°ÑˆÐ¾Ñ— групи через провайдера ідентифікації такої Ñк Azure, Okta, Onelogin, Ping Identity або вашого влаÑного поÑтачальника SAML 2.0:"
msgid "To start serving your jobs you can add Runners to your group"
msgstr "Ð”Ð»Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð²Ð°ÑˆÐ¸Ñ… завдань ви можете додати Runner’и до вашої групи"
msgid "To start serving your jobs you can either add specific Runners to your project or use shared Runners"
-msgstr "Щоб почати ваші Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð»Ð¸ÑÑ, ви можете або додати Ñпеціальні Runner’и до вашого проекту, або викориÑтовувати загальні"
+msgstr ""
msgid "To this GitLab instance"
msgstr "До цього інÑтанÑу GitLab"
@@ -10674,7 +10092,7 @@ msgid "To view the roadmap, add a start or due date to one of your epics in this
msgstr "Ð”Ð»Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду плану-графіку, додайте дату початку чи Ð·Ð°ÐºÑ–Ð½Ñ‡ÐµÐ½Ð½Ñ Ð´Ð¾ одного з ваших епіків в цій групі або Ñ—Ñ— підгрупах. При поміÑÑчному переглÑді показуютьÑÑ Ñ‚Ñ–Ð»ÑŒÐºÐ¸ епіки за попередній, поточний, та наÑтупні 5 міÑÑців."
msgid "To widen your search, change or remove filters above"
-msgstr "Щоб розширити пошук, змініть або видаліть фільтри вище"
+msgstr ""
msgid "To widen your search, change or remove filters."
msgstr "Щоб розширити пошук, змініть або видаліть фільтри."
@@ -10683,22 +10101,22 @@ msgid "Today"
msgstr "Сьогодні"
msgid "Todo"
-msgstr "ÐагдуваннÑ"
+msgstr "Задача"
msgid "Todos"
-msgstr "ÐагадуваннÑ"
+msgstr "Задачі"
msgid "Toggle Sidebar"
msgstr "Перемикач бічної панелі"
msgid "Toggle comments for this file"
-msgstr "Увімкнути або вимкнути коментарі Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ файлу"
+msgstr ""
msgid "Toggle commit description"
msgstr "Перемкнути Ð¾Ð¿Ð¸Ñ ÐºÐ¾Ð¼Ñ–Ñ‚Ñ–Ð²"
msgid "Toggle commit list"
-msgstr "Відкрити або закрити ÑпиÑок комітів"
+msgstr ""
msgid "Toggle discussion"
msgstr "Перемикач диÑкуÑÑ–Ñ—"
@@ -10764,12 +10182,9 @@ msgid "Trigger this manual action"
msgstr "ЗапуÑтити цю ручну дію"
msgid "Trigger token:"
-msgstr "Токен тригера:"
+msgstr ""
msgid "Trigger variables:"
-msgstr "Змінні тригера:"
-
-msgid "Triggerer"
msgstr ""
msgid "Triggers can force a specific branch or tag to get rebuilt with an API call. These tokens will impersonate their associated user including their access to projects and their project permissions."
@@ -10782,13 +10197,13 @@ msgid "Try again"
msgstr "Спробуйте ще раз"
msgid "Try again?"
-msgstr "Спробуйте ще раз?"
+msgstr ""
msgid "Try all GitLab has to offer for 30 days."
msgstr "Спробуйте вÑÑ– функції GitLab протÑгом 30 днів."
msgid "Trying to communicate with your device. Plug it in (if you haven't already) and press the button on the device now."
-msgstr "ВідбуваєтьÑÑ Ð·'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ñ–Ð· вашим приÑтроєм. Підключіть його (Ñкщо ви цього ще не зробили) Ñ– натиÑніть кнопку на ньому зараз."
+msgstr ""
msgid "Turn on Service Desk"
msgstr "Ввімкнути Service Desk"
@@ -10803,7 +10218,7 @@ msgid "Type"
msgstr "Тип"
msgid "URL"
-msgstr "URL"
+msgstr ""
msgid "Unable to load the diff. %{button_try_again}"
msgstr "Ðеможливо завантажити порівнÑÐ½Ð½Ñ (diff). %{button_try_again}"
@@ -10815,13 +10230,13 @@ msgid "Unable to update this epic at this time."
msgstr "Ðеможливо оновити цей епік в даний момент."
msgid "Unblock"
-msgstr "Розблокувати"
+msgstr ""
msgid "Undo"
msgstr "СкаÑувати"
msgid "Unfortunately, your email message to GitLab could not be processed."
-msgstr "Ðа жаль, ваше Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ ÐµÐ»ÐµÐºÑ‚Ñ€Ð¾Ð½Ð½Ð¾Ñ— пошти до GitLab не може бути оброблено."
+msgstr ""
msgid "Unknown"
msgstr "Ðевідомо"
@@ -10872,7 +10287,7 @@ msgid "Unsubscribe at project level"
msgstr "ВідпиÑатиÑÑ Ð½Ð° рівні проекту"
msgid "Unsubscribe from %{type}"
-msgstr "ВідпиÑатиÑÑ Ð²Ñ–Ð´ %{type}"
+msgstr ""
msgid "Unverified"
msgstr "Ðепідтверджено"
@@ -10886,11 +10301,8 @@ msgstr "Ðезабаром"
msgid "Update"
msgstr "Оновити"
-msgid "Update approvers"
-msgstr "Оновити затверджуючих оÑіб"
-
msgid "Update failed"
-msgstr "ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð½Ðµ вдалоÑÑ"
+msgstr ""
msgid "Update now"
msgstr "Оновити зараз"
@@ -10898,17 +10310,11 @@ msgstr "Оновити зараз"
msgid "Update your group name, description, avatar, and visibility."
msgstr "Оновіть Ñ–Ð¼â€™Ñ Ð³Ñ€ÑƒÐ¿Ð¸, опиÑ, аватар та видиміÑÑ‚ÑŒ."
-msgid "Update your project name, tags, description and avatar."
-msgstr ""
-
-msgid "Updated"
-msgstr ""
-
msgid "Updating"
msgstr "ОновленнÑ"
msgid "Upgrade plan to unlock Canary Deployments feature"
-msgstr "Перейдіть на вищий тарифний план, щоб отримати доÑтуп до функціональноÑÑ‚Ñ– Canary Deployments"
+msgstr ""
msgid "Upgrade your plan to activate Advanced Global Search."
msgstr "Перейдіть на вищий тарифний план щоб активувати Покращений Глобальний Пошук."
@@ -10929,16 +10335,16 @@ msgid "Upload <code>GoogleCodeProjectHosting.json</code> here:"
msgstr "ÐадіÑлати <code>GoogleCodeProjectHosting.json</code> тут:"
msgid "Upload CSV file"
-msgstr "Завантажити CSV файл"
+msgstr ""
msgid "Upload New File"
msgstr "ÐадіÑлати новий файл"
msgid "Upload a certificate for your domain with all intermediates"
-msgstr "Завантажити Ñертифікат Ð´Ð»Ñ Ð²Ð°ÑˆÐ¾Ð³Ð¾ домену з уÑіма проміжними"
+msgstr ""
msgid "Upload a private key for your certificate"
-msgstr "Завантажити приватний ключ Ð´Ð»Ñ Ñертифіката"
+msgstr ""
msgid "Upload file"
msgstr "ÐадіÑлати файл"
@@ -10983,13 +10389,13 @@ msgid "Use your global notification setting"
msgstr "ВикориÑтовуютьÑÑ Ð³Ð»Ð¾Ð±Ð°Ð»ÑŒÐ½Ñ– Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½ÑŒ"
msgid "Use your smart card to authenticate with the LDAP server."
-msgstr "ВикориÑтовуйте Ñмарт-карту Ð´Ð»Ñ Ð°Ð²Ñ‚ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ— на Ñервері LDAP."
+msgstr ""
msgid "Used by members to sign in to your group in GitLab"
msgstr "ВикориÑтовуєтьÑÑ ÑƒÑ‡Ð°Ñниками Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ñƒ у вашу групу в GitLab"
msgid "Used to help configure your identity provider"
-msgstr "ВикориÑтовуєтьÑÑ Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð¼Ð¾Ð³Ð¸ в налаштуванні провайдера ідентифікації"
+msgstr ""
msgid "User Cohorts are only shown when the %{usage_ping_link_start}usage ping%{usage_ping_link_end} is enabled."
msgstr "Когорти КориÑтувачів показуютьÑÑ Ð»Ð¸ÑˆÐµ тоді, коли увімкнено %{usage_ping_link_start}збір даних про викориÑтаннÑ%{usage_ping_link_end}."
@@ -11016,22 +10422,22 @@ msgid "UserProfile|Edit profile"
msgstr "Редагувати профіль"
msgid "UserProfile|Explore public groups to find projects to contribute to."
-msgstr "ПереглÑдайте публічні групи та знаходьте проекти Ð´Ð»Ñ Ñвоїх внеÑків."
+msgstr ""
msgid "UserProfile|Groups"
msgstr "Групи"
msgid "UserProfile|Groups are the best way to manage projects and members."
-msgstr "Групи — це найкращий ÑпоÑіб керувати проектами та учаÑниками."
+msgstr ""
msgid "UserProfile|Join or create a group to start contributing by commenting on issues or submitting merge requests!"
-msgstr "ПриєднуйтеÑÑŒ до або Ñтворіть групу, щоб почати робити внеÑки через коментарі до задач, а також надÑилаючи запити на злиттÑ!"
+msgstr ""
msgid "UserProfile|Most Recent Activity"
msgstr "ОÑÑ‚Ð°Ð½Ð½Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ñ–ÑÑ‚ÑŒ"
msgid "UserProfile|No snippets found."
-msgstr "Сніпетів не знайдено."
+msgstr ""
msgid "UserProfile|Overview"
msgstr "ОглÑд"
@@ -11046,19 +10452,19 @@ msgid "UserProfile|Snippets"
msgstr "Сніпети"
msgid "UserProfile|Snippets in GitLab can either be private, internal, or public."
-msgstr "Сніпети в GitLab можуть бути приватними, внутрішніми та публічними."
+msgstr ""
msgid "UserProfile|Subscribe"
msgstr "ПідпиÑатиÑÑ"
msgid "UserProfile|This user doesn't have any personal projects"
-msgstr "Цей кориÑтувач не має оÑобиÑтих проектів"
+msgstr ""
msgid "UserProfile|This user has a private profile"
msgstr "Цей кориÑтувач має приватний профіль"
msgid "UserProfile|This user hasn't contributed to any projects"
-msgstr "Цей кориÑтувач не робив внеÑків до жодного із проектів"
+msgstr ""
msgid "UserProfile|View all"
msgstr "ПереглÑнути вÑе"
@@ -11067,31 +10473,31 @@ msgid "UserProfile|View user in admin area"
msgstr "ПереглÑнути кориÑтувача в адмінці"
msgid "UserProfile|You can create a group for several dependent projects."
-msgstr "Ви можете Ñтворити групу Ð´Ð»Ñ Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ¾Ñ… залежних проектів."
+msgstr ""
msgid "UserProfile|You haven't created any personal projects."
-msgstr "Ви ще не Ñтворили жодного оÑобиÑтого проекту."
+msgstr ""
msgid "UserProfile|You haven't created any snippets."
-msgstr "Ви ще не Ñтворили жодних Ñніпетів."
+msgstr ""
msgid "UserProfile|Your projects can be available publicly, internally, or privately, at your choice."
-msgstr "За вашим вибором ваші проекти можуть бути доÑтупні публічно, внутрішньо або приватно."
+msgstr ""
msgid "Users"
msgstr "КориÑтувачі"
msgid "Users requesting access to"
-msgstr "КориÑтувачі, Ñкі запитують доÑтуп до"
+msgstr ""
msgid "Validate"
-msgstr "Перевірити"
+msgstr ""
msgid "Validate your GitLab CI configuration file"
-msgstr "Перевірити ваш файл конфігурації Gitlab CI"
+msgstr ""
msgid "Value"
-msgstr "ЗначеннÑ"
+msgstr ""
msgid "Various container registry settings."
msgstr "Різноманітні Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÑ”Ñтру контейнерів."
@@ -11100,7 +10506,7 @@ msgid "Various email settings."
msgstr "Різноманітні Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾ÑˆÑ‚Ð¸."
msgid "Various localization settings."
-msgstr "Різні параметри локалізації."
+msgstr ""
msgid "Various settings that affect GitLab performance."
msgstr "Різноманітні налаштуваннÑ, що впливають на продуктивніÑÑ‚ÑŒ GitLab."
@@ -11109,7 +10515,7 @@ msgid "Verification information"
msgstr "Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ перевірку"
msgid "Verification status"
-msgstr "Стан перевірки"
+msgstr ""
msgid "Verified"
msgstr "Підтверджено"
@@ -11124,17 +10530,14 @@ msgid "View app"
msgstr "ПереглÑнути заÑтоÑунок"
msgid "View deployment"
-msgstr "ПереглÑнути розгортаннÑ"
+msgstr ""
msgid "View details: %{details_url}"
-msgstr "ПереглÑнути деталі: %{details_url}"
+msgstr ""
msgid "View documentation"
msgstr "ПереглÑнути документацію"
-msgid "View eligible approvers"
-msgstr "ПереглÑнути доÑтупних оÑіб Ð´Ð»Ñ Ð·Ð°Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ"
-
msgid "View epics list"
msgstr "ПереглÑнути ÑпиÑок епіків"
@@ -11144,8 +10547,8 @@ msgstr "ПереглÑд файла @ "
msgid "View group labels"
msgstr "ПереглÑнути мітки групи"
-msgid "View in Sentry"
-msgstr ""
+msgid "View issue"
+msgstr "ПереглÑнути задачу"
msgid "View it on GitLab"
msgstr "ПереглÑнути це на GitLab"
@@ -11172,7 +10575,7 @@ msgid "View the documentation"
msgstr "ПереглÑнути документацію"
msgid "Viewing commit"
-msgstr "ПереглÑд коміту"
+msgstr ""
msgid "Visibility and access controls"
msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð´Ð¸Ð¼Ð¾ÑÑ‚Ñ– та доÑтупу"
@@ -11183,9 +10586,6 @@ msgstr "Рівень видимоÑÑ‚Ñ–"
msgid "Visibility level:"
msgstr "Рівень видимоÑÑ‚Ñ–:"
-msgid "Visibility, project features, permissions"
-msgstr ""
-
msgid "Visibility:"
msgstr "ВидиміÑÑ‚ÑŒ:"
@@ -11202,10 +10602,10 @@ msgid "VisibilityLevel|Unknown"
msgstr "Ðевідомий"
msgid "Vulnerability Chart"
-msgstr "СтатиÑтика вразливоÑтей"
+msgstr ""
msgid "Vulnerability List"
-msgstr "СпиÑок вразливоÑтей"
+msgstr ""
msgid "Vulnerability|Class"
msgstr "КлаÑ"
@@ -11232,7 +10632,7 @@ msgid "Vulnerability|Project"
msgstr "Проект"
msgid "Vulnerability|Report Type"
-msgstr "Тип звіту"
+msgstr ""
msgid "Vulnerability|Severity"
msgstr "Рівень"
@@ -11241,19 +10641,19 @@ msgid "Want to see the data? Please ask an administrator for access."
msgstr "Хочете побачити дані? Будь лаÑка, попроÑить у адмініÑтратора доÑтуп."
msgid "We can't find an epic that matches what you are looking for."
-msgstr "Ми не можемо знайти епік, Ñкий відповідає тому, що ви шукаєте."
+msgstr ""
msgid "We can't find an issue that matches what you are looking for."
-msgstr "Ми не можемо знайти задачу, Ñка відповідає тому, що ви шукаєте."
+msgstr ""
msgid "We could not determine the path to remove the epic"
-msgstr "Ми не змогли визначити шлÑÑ… до Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ ÐµÐ¿Ñ–ÐºÑƒ"
+msgstr ""
msgid "We could not determine the path to remove the issue"
-msgstr "Ми не змогли визначити шлÑÑ… до Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð·Ð°Ð´Ð°Ñ‡Ñ–"
+msgstr ""
msgid "We couldn't find any results matching"
-msgstr "Ðе вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ відповідні результати"
+msgstr ""
msgid "We detected potential spam in the %{humanized_resource_name}. Please solve the reCAPTCHA to proceed."
msgstr "Ми виÑвили потенційний Ñпам у %{humanized_resource_name}. Будь лаÑка, введіть цей код Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ reCAPTCHA, щоб продовжити."
@@ -11262,7 +10662,7 @@ msgid "We don't have enough data to show this stage."
msgstr "Ми не маємо доÑтатньо даних Ð´Ð»Ñ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ñ†Ñ–Ñ”Ñ— Ñтадії."
msgid "We heard back from your U2F device. You have been authenticated."
-msgstr "Ми отримали відповідь від вашого приÑтрою U2F. Ви пройшли автентифікацію."
+msgstr ""
msgid "We want to be sure it is you, please confirm you are not a robot."
msgstr "Ми хочемо бути впевнені, що це ви, будь лаÑка, підтвердіть, що ви не робот."
@@ -11271,7 +10671,7 @@ msgid "Web IDE"
msgstr "Веб-IDE"
msgid "Web Terminal"
-msgstr "Веб-термінал"
+msgstr ""
msgid "Web terminal"
msgstr "Веб-термінал"
@@ -11298,7 +10698,7 @@ msgid "When leaving the URL blank, classification labels can still be specified
msgstr "Якщо залишити URL порожнім, можна вÑтановлювати мітки клаÑифікації без Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð½Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ð¹ проекту та Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð·Ð¾Ð²Ð½Ñ–ÑˆÐ½ÑŒÐ¾Ñ— авторизації."
msgid "When:"
-msgstr "Коли:"
+msgstr ""
msgid "Who can see this group?"
msgstr "Хто може бачити цю групу?"
@@ -11442,7 +10842,7 @@ msgid "Wiki|Wiki Pages"
msgstr "Вікі-Ñторінки"
msgid "Will deploy to"
-msgstr "Розгорне на"
+msgstr ""
msgid "With contribution analytics you can have an overview for the activity of issues, merge requests and push events of your organization and its members."
msgstr "З аналітикою контриб’юторів ви може вивчати активніÑÑ‚ÑŒ в задачах, запитах на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ñ– подій відправки коду Ð´Ð»Ñ Ð²Ð°ÑˆÐ¾Ñ— організації Ñ– Ñ—Ñ— учаÑників."
@@ -11450,17 +10850,11 @@ msgstr "З аналітикою контриб’юторів ви може ви
msgid "Withdraw Access Request"
msgstr "СкаÑувати запит доÑтупу"
-msgid "Write"
-msgstr ""
-
msgid "Write a comment or drag your files here…"
-msgstr "Ðапишіть коментар або перетÑгніть файли Ñюди…"
-
-msgid "Write access allowed"
msgstr ""
msgid "Write milestone description..."
-msgstr "Створити Ð¾Ð¿Ð¸Ñ ÐµÑ‚Ð°Ð¿Ñƒ..."
+msgstr ""
msgid "Yes"
msgstr "Так"
@@ -11475,7 +10869,7 @@ msgid "Yesterday"
msgstr "Вчора"
msgid "You"
-msgstr "Ви"
+msgstr ""
msgid "You are an admin, which means granting access to <strong>%{client_name}</strong> will allow them to interact with GitLab as an admin as well. Proceed with caution."
msgstr "Ви — адмініÑтратор, а це означає, що Ð½Ð°Ð´Ð°Ð½Ð½Ñ Ð´Ð¾Ñтупу Ð´Ð»Ñ <strong>%{client_name}</strong> дозволить їм взаємодіÑти з GitLab Ñк адмініÑтратору. Продовжуйте обережно."
@@ -11496,7 +10890,7 @@ msgid "You are on a read-only GitLab instance."
msgstr "Ви знаходитеÑÑ Ð½Ð° інÑтанÑÑ– Gitlab \"тільки Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ\"."
msgid "You are receiving this message because you are a GitLab administrator for %{url}."
-msgstr "Ви отримуєте це повідомленнÑ, бо ви Ñ” адмініÑтратором GitLab Ð´Ð»Ñ %{url}."
+msgstr ""
msgid "You can %{linkStart}view the blob%{linkEnd} instead."
msgstr "ЗаміÑÑ‚ÑŒ цього ви можете %{linkStart}переглÑнути бінарні дані%{linkEnd}."
@@ -11523,7 +10917,7 @@ msgid "You can only edit files when you are on a branch"
msgstr "Ви можете редагувати файли, лише перебуваючи у ÑкійÑÑŒ гілці"
msgid "You can only merge once the items above are resolved"
-msgstr "Ви можете зливати лише коли вищезгадані пункти будуть вирішені"
+msgstr ""
msgid "You can resolve the merge conflict using either the Interactive mode, by choosing %{use_ours} or %{use_theirs} buttons, or by editing the files directly. Commit these changes into %{branch_name}"
msgstr "Ви можете розв’Ñзати цей конфлікт Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð·Ð° допомогою інтерактивного режиму (викориÑтовуючи кнопки %{use_ours} та %{use_theirs}), або безпоÑередньо редагуючи файли. Закомітити зміни у %{branch_name}"
@@ -11544,7 +10938,7 @@ msgid "You do not have any subscriptions yet"
msgstr "У Ð²Ð°Ñ Ñ‰Ðµ немає підпиÑок"
msgid "You do not have permission to run the Web Terminal. Please contact a project administrator."
-msgstr "Ви не маєте дозволу запуÑкати Веб-термінал. Будь лаÑка, звернітьÑÑ Ð´Ð¾ адмініÑтратора проекту."
+msgstr ""
msgid "You do not have the correct permissions to override the settings from the LDAP group sync."
msgstr "У Ð²Ð°Ñ Ð½ÐµÐ¼Ð°Ñ” необхідних прав доÑтупу, щоб перевизначити Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñинхронізації LDAP-груп."
@@ -11556,19 +10950,16 @@ msgid "You don't have any authorized applications"
msgstr "Ви не маєте ніÑких авторизованих заÑтоÑунків"
msgid "You don't have any deployments right now."
-msgstr "Ðаразі у Ð²Ð°Ñ Ð½ÐµÐ¼Ð°Ñ” ніÑких розгортань."
+msgstr ""
msgid "You have no permissions"
msgstr "У Ð²Ð°Ñ Ð½ÐµÐ¼Ð°Ñ” прав доÑтупу"
-msgid "You have not added any approvers. Start by adding users or groups."
-msgstr "Ви не додали жодної затверджуючої оÑоби. Почніть з Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувачів або груп."
-
msgid "You have reached your project limit"
msgstr "Ви доÑÑгли Ñвого ліміту по кількоÑÑ‚Ñ– проектів"
msgid "You may also add variables that are made available to the running application by prepending the variable key with <code>K8S_SECRET_</code>."
-msgstr "Ви також можете додати змінні, що будуть доÑтупними Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑ‰ÐµÐ½Ð¾Ð³Ð¾ заÑтоÑунку шлÑхом Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð¿Ñ€ÐµÑ„Ñ–ÐºÑу <code>K8S_SECRET_</code> до Ñ—Ñ… імен."
+msgstr ""
msgid "You must accept our Terms of Service and privacy policy in order to register an account"
msgstr "Ви повинні прийнÑти правила кориÑÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÑервіÑом Ñ– політику конфіденційноÑÑ‚Ñ– Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾, щоб Ñтворити обліковий запиÑ"
@@ -11580,7 +10971,7 @@ msgid "You need a different license to enable FileLocks feature"
msgstr "Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ñ–Ñ— функції Ð‘Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð¤Ð°Ð¹Ð»Ñ–Ð² вам потрібна інша ліцензіÑ"
msgid "You need a different license to enable Geo replication."
-msgstr "Вам потрібна інша Ð»Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ Ð½Ð° викориÑÑ‚Ð°Ð½Ð½Ñ Geo реплікації."
+msgstr ""
msgid "You need git-lfs version %{min_git_lfs_version} (or greater) to continue. Please visit https://git-lfs.github.com"
msgstr "Вам потрібна верÑÑ–Ñ git-lfs верÑÑ–Ñ— %{min_git_lfs_version} (або новіша), щоб продовжити. Будь лаÑка, відвідайте Ñторінку https://git-lfs.github.com"
@@ -11589,13 +10980,13 @@ msgid "You need permission."
msgstr "Вам потрібен дозвіл"
msgid "You need to register a two-factor authentication app before you can set up a U2F device."
-msgstr "Вам треба зареєÑтрувати програму Ð´Ð»Ñ Ð´Ð²Ð¾Ñ„Ð°ÐºÑ‚Ð¾Ñ€Ð½Ð¾Ñ— автентифікації перед налаштуваннÑм приÑтрою U2F."
+msgstr ""
msgid "You will lose all changes you've made to this file. This action cannot be undone."
-msgstr "Ви втратите вÑÑ– зміни, внеÑені вами в цей файл. Цю дію не можна ÑкаÑувати."
+msgstr ""
msgid "You will lose all the unstaged changes you've made in this project. This action cannot be undone."
-msgstr "Ви втратите вÑÑ– неіндекÑовані зміни, внеÑені вами в цей проект. Цю дію не можна ÑкаÑувати."
+msgstr ""
msgid "You will not get any notifications via email"
msgstr "Ви не отримаєте ніÑких повідомлень по електронній пошті"
@@ -11624,9 +11015,6 @@ msgstr "Ви не зможете відправлÑти та отримуватÐ
msgid "You'll need to use different branch names to get a valid comparison."
msgstr "Вам необхідно викориÑтовувати різні імена гілок Ð´Ð»Ñ ÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¾Ð³Ð¾ порівнÑннÑ."
-msgid "You're only seeing %{startTag}other activity%{endTag} in the feed. To add a comment, switch to one of the following options."
-msgstr ""
-
msgid "You're receiving this email because %{reason}."
msgstr "Ви отримали цей електронний лиÑÑ‚, оÑкільки %{reason}."
@@ -11655,10 +11043,10 @@ msgid "Your Projects' Activity"
msgstr "ÐктивніÑÑ‚ÑŒ ваших проектів"
msgid "Your Todos"
-msgstr "Ваші ÐагадуваннÑ"
+msgstr "Ваші Задачі"
msgid "Your U2F device needs to be set up. Plug it in (if not already) and click the button on the left."
-msgstr "Ваш приÑтрій U2F має бути налаштований. Підключіть його (Ñкщо ви цього ще не зробили) Ñ– натиÑніть кнопку зліва."
+msgstr ""
msgid "Your applications (%{size})"
msgstr "Ваші заÑтоÑунки (%{size})"
@@ -11667,7 +11055,7 @@ msgid "Your authorized applications"
msgstr "Ваші авторизовані заÑтоÑунки"
msgid "Your browser doesn't support U2F. Please use Google Chrome desktop (version 41 or newer)."
-msgstr "Ваш браузер не підтримує U2F. Будь лаÑка, викориÑтовйте Google Chrome Ð´Ð»Ñ ÐºÐ¾Ð¼Ð¿'ютера (верÑÑ–ÑŽ 41 або новішу)."
+msgstr ""
msgid "Your changes can be committed to %{branch_name} because a merge request is open."
msgstr "Ваші зміни можуть бути закомічені до %{branch_name}, оÑкільки запит на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸Ð¹."
@@ -11682,22 +11070,22 @@ msgid "Your comment will not be visible to the public."
msgstr "Ваш коментар не буде видимим Ð´Ð»Ñ Ð²ÑÑ–Ñ…."
msgid "Your device was successfully set up! Give it a name and register it with the GitLab server."
-msgstr "Ваш приÑтрій уÑпішно налаштовано! Дайте йому ім'Ñ Ñ‚Ð° зареєÑтруйте його на Ñервері GitLab."
+msgstr ""
msgid "Your groups"
msgstr "Ваші групи"
msgid "Your issues are being imported. Once finished, you'll get a confirmation email."
-msgstr "Ваші задачі імпортуютьÑÑ. ПіÑÐ»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð²Ð¸ отримаєте Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾ електронній пошті із підтвердженнÑм."
+msgstr ""
msgid "Your issues will be imported in the background. Once finished, you'll get a confirmation email."
-msgstr "Ваші задачі будуть імпортовані в фоні. ПіÑÐ»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð²Ð¸ отримаєте Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾ електронній пошті із підтвердженнÑм."
+msgstr ""
msgid "Your name"
msgstr "Ваше ім'Ñ"
msgid "Your project limit is %{limit} projects! Please contact your administrator to increase it"
-msgstr "Ваш ліміт проектів Ñкладає %{limit}! Будь лаÑка, звернітьÑÑ Ð´Ð¾ адмініÑтратора, щоб його збільшити"
+msgstr ""
msgid "Your projects"
msgstr "Ваші проекти"
@@ -11705,9 +11093,6 @@ msgstr "Ваші проекти"
msgid "a deleted user"
msgstr "видалений кориÑтувач"
-msgid "added %{created_at_timeago}"
-msgstr ""
-
msgid "ago"
msgstr "тому"
@@ -11720,13 +11105,7 @@ msgstr "тощо"
msgid "assign yourself"
msgstr "призначити Ñебе"
-msgid "at"
-msgstr ""
-
msgid "attach a new file"
-msgstr "прикріпити новий файл"
-
-msgid "authored"
msgstr ""
msgid "branch name"
@@ -11753,20 +11132,6 @@ msgstr "%{vulnerability} впливає на %{namespace}."
msgid "ciReport|%{remainingPackagesCount} more"
msgstr "%{remainingPackagesCount} більше"
-msgid "ciReport|%{reportType} %{status} detected %{dismissedCount} dismissed vulnerability"
-msgid_plural "ciReport|%{reportType} %{status} detected %{dismissedCount} dismissed vulnerabilities"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
-msgid "ciReport|%{reportType} %{status} detected %{dismissedCount} dismissed vulnerability for the source branch only"
-msgid_plural "ciReport|%{reportType} %{status} detected %{dismissedCount} dismissed vulnerabilities for the source branch only"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
msgid "ciReport|%{reportType} %{status} detected %{fixedCount} fixed vulnerability"
msgid_plural "ciReport|%{reportType} %{status} detected %{fixedCount} fixed vulnerabilities"
msgstr[0] "%{reportType} %{status} виÑвив %{fixedCount} виправлену вразливіÑÑ‚ÑŒ"
@@ -11774,9 +11139,6 @@ msgstr[1] "%{reportType} %{status} виÑвив %{fixedCount} виправлен
msgstr[2] "%{reportType} %{status} виÑвив %{fixedCount} виправлених вразливоÑтей"
msgstr[3] "%{reportType} %{status} виÑвив %{fixedCount} виправлених вразливоÑтей"
-msgid "ciReport|%{reportType} %{status} detected %{fixedCount} fixed, and %{dismissedCount} dismissed vulnerabilities"
-msgstr ""
-
msgid "ciReport|%{reportType} %{status} detected %{newCount} new vulnerability"
msgid_plural "ciReport|%{reportType} %{status} detected %{newCount} new vulnerabilities"
msgstr[0] "%{reportType} %{status} виÑвив %{newCount} нову вразливіÑÑ‚ÑŒ"
@@ -11784,15 +11146,6 @@ msgstr[1] "%{reportType} %{status} виÑвив %{newCount} нові вразлÐ
msgstr[2] "%{reportType} %{status} виÑвив %{newCount} нових вразливоÑтей"
msgstr[3] "%{reportType} %{status} виÑвив %{newCount} нових вразливоÑтей"
-msgid "ciReport|%{reportType} %{status} detected %{newCount} new, %{fixedCount} fixed, and %{dismissedCount} dismissed vulnerabilities"
-msgstr ""
-
-msgid "ciReport|%{reportType} %{status} detected %{newCount} new, and %{dismissedCount} dismissed vulnerabilities"
-msgstr ""
-
-msgid "ciReport|%{reportType} %{status} detected %{newCount} new, and %{dismissedCount} dismissed vulnerabilities for the source branch only"
-msgstr ""
-
msgid "ciReport|%{reportType} %{status} detected %{newCount} new, and %{fixedCount} fixed vulnerabilities"
msgstr "%{reportType} %{status} виÑвив %{newCount} нових та %{fixedCount} виправлених вразливоÑтей"
@@ -11846,29 +11199,17 @@ msgstr "ЯкіÑÑ‚ÑŒ коду"
msgid "ciReport|Confidence"
msgstr "ВпевненіÑÑ‚ÑŒ"
-msgid "ciReport|Container Scanning"
-msgstr ""
-
msgid "ciReport|Container scanning"
msgstr "Ð¡ÐºÐ°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð½Ñ‚ÐµÐ¹Ð½ÐµÑ€Ð°"
msgid "ciReport|Container scanning detects known vulnerabilities in your docker images."
msgstr "Ð¡ÐºÐ°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð½Ñ‚ÐµÐ¹Ð½ÐµÑ€Ñ–Ð² виÑвлÑÑ” відомі вразливоÑÑ‚Ñ– у ваших Docker образах."
-msgid "ciReport|Create issue"
-msgstr ""
-
-msgid "ciReport|Create merge request"
-msgstr ""
-
-msgid "ciReport|Created %{eventType}"
-msgstr ""
-
msgid "ciReport|DAST"
msgstr "DAST"
msgid "ciReport|Dependency Scanning"
-msgstr "Ð¡ÐºÐ°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð»ÐµÐ¶Ð½Ð¾Ñтей"
+msgstr ""
msgid "ciReport|Dependency Scanning detects known vulnerabilities in your source code's dependencies."
msgstr "Ð¡ÐºÐ°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð»ÐµÐ¶Ð½Ð¾Ñтей виÑвлÑÑ” відомі вразливоÑÑ‚Ñ– у залежноÑÑ‚ÑÑ… вашого коду."
@@ -11886,10 +11227,10 @@ msgid "ciReport|Dismissed by"
msgstr "Відхилено"
msgid "ciReport|Download and apply the patch to fix this vulnerability."
-msgstr "Завантажити або заÑтоÑувати патч, щоб виправити цю вразливіÑÑ‚ÑŒ."
+msgstr ""
msgid "ciReport|Download patch"
-msgstr "Завантажити патч"
+msgstr ""
msgid "ciReport|Dynamic Application Security Testing (DAST) detects known vulnerabilities in your web application."
msgstr "Динамічне теÑÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð±ÐµÐ·Ð¿ÐµÐºÐ¸ заÑтоÑунків (DAST) виÑвлÑÑ” відомі вразливоÑÑ‚Ñ– у вашому веб-заÑтоÑунку."
@@ -11906,15 +11247,9 @@ msgstr "Виправлено:"
msgid "ciReport|Identifiers"
msgstr "Ідентифікатори"
-msgid "ciReport|Implement this solution by creating a merge request"
-msgstr ""
-
msgid "ciReport|Instances"
msgstr "ІнÑтанÑи"
-msgid "ciReport|Investigate this vulnerability by creating an issue"
-msgstr ""
-
msgid "ciReport|Learn more about interacting with security reports (Alpha)."
msgstr "ДізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про взаємодію з звітами безпеки (Ðльфа)."
@@ -11962,6 +11297,9 @@ msgstr "Ðемає змін у показниках продуктивноÑÑ‚Ñ–
msgid "ciReport|Performance metrics"
msgstr "Показники продуктивноÑÑ‚Ñ–"
+msgid "ciReport|Revert dismissal"
+msgstr "Відмінити відхиленнÑ"
+
msgid "ciReport|SAST"
msgstr "SAST"
@@ -11983,9 +11321,6 @@ msgstr "Статичне теÑÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð±ÐµÐ·Ð¿ÐµÐºÐ¸ заÑтоÑункÑ
msgid "ciReport|There was an error creating the issue. Please try again."
msgstr "Помилка при Ñтворенні задачі. Будь лаÑка Ñпробуйте знову."
-msgid "ciReport|There was an error creating the merge request. Please try again."
-msgstr ""
-
msgid "ciReport|There was an error dismissing the vulnerability. Please try again."
msgstr "Помилка при відхиленні вразливоÑÑ‚Ñ–. Будь лаÑка, Ñпробуйте знову."
@@ -12004,9 +11339,6 @@ msgstr "Помилка при завантаженні звіту по ÑканÑ
msgid "ciReport|There was an error reverting the dismissal. Please try again."
msgstr "Помилка при відміні відхиленнÑ. Будь лаÑка, Ñпробуйте знову."
-msgid "ciReport|Undo dismiss"
-msgstr ""
-
msgid "ciReport|Upgrade %{name} from %{version} to %{fixed}."
msgstr "Оновити %{name} з %{version} до %{fixed}."
@@ -12027,7 +11359,7 @@ msgid "command line instructions"
msgstr "інÑтрукції Ð´Ð»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð³Ð¾ Ñ€Ñдка"
msgid "commented on %{link_to_project}"
-msgstr "прокоментовано в %{link_to_project}"
+msgstr ""
msgid "confidentiality|You are going to turn off the confidentiality. This means <strong>everyone</strong> will be able to see and leave a comment on this issue."
msgstr "Ви вимикаєте конфіденційніÑÑ‚ÑŒ. Це означає, що <strong>будь-хто</strong> зможе бачити Ñ– залишати коментарі Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— задачі."
@@ -12052,7 +11384,7 @@ msgstr[2] "днів"
msgstr[3] "днів"
msgid "deleted"
-msgstr "видалено"
+msgstr ""
msgid "deploy token"
msgstr "токен Ð´Ð»Ñ Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ"
@@ -12062,10 +11394,10 @@ msgstr "вимкнено"
msgid "discussion resolved"
msgid_plural "discussions resolved"
-msgstr[0] "Ð¾Ð±Ð³Ð¾Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¾"
-msgstr[1] "Ð¾Ð±Ð³Ð¾Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¾"
-msgstr[2] "обговорень завершено"
-msgstr[3] "обговорень завершено"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
msgid "done"
msgstr "готово"
@@ -12081,13 +11413,13 @@ msgid "enabled"
msgstr "увімкнено"
msgid "epic"
-msgstr "епік"
+msgstr ""
msgid "error"
-msgstr "помилка"
+msgstr ""
msgid "error code:"
-msgstr "код помилки:"
+msgstr ""
msgid "estimateCommand|%{slash_command} will update the estimated time with the latest command."
msgstr "%{slash_command} перезапиÑує запланований Ñ‡Ð°Ñ Ð¾Ñтаннім значеннÑм."
@@ -12099,7 +11431,7 @@ msgid "from"
msgstr "від"
msgid "group"
-msgstr "група"
+msgstr ""
msgid "help"
msgstr "допомога"
@@ -12107,6 +11439,9 @@ msgstr "допомога"
msgid "here"
msgstr "тут"
+msgid "http://<sentry-host>/api/0/projects/{organization_slug}/{project_slug}/"
+msgstr ""
+
msgid "https://your-bitbucket-server"
msgstr "https://your-bitbucket-server"
@@ -12120,10 +11455,10 @@ msgid "importing"
msgstr "імпорт"
msgid "in group %{link_to_group}"
-msgstr "в групі %{link_to_group}"
+msgstr ""
msgid "in project %{link_to_project}"
-msgstr "в проекті %{link_to_project}"
+msgstr ""
msgid "index"
msgstr ""
@@ -12148,7 +11483,7 @@ msgid "is out of the hierarchy of the Group owning the template"
msgstr ""
msgid "issue"
-msgstr "задача"
+msgstr ""
msgid "issue boards"
msgstr "дошки Ð¾Ð±Ð³Ð¾Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð´Ð°Ñ‡"
@@ -12157,13 +11492,13 @@ msgid "it is stored externally"
msgstr ""
msgid "it is stored in LFS"
-msgstr "зберігаєтьÑÑ Ð² LFS"
+msgstr ""
msgid "it is too large"
msgstr ""
msgid "latest"
-msgstr "оÑтанній"
+msgstr ""
msgid "latest deployment"
msgstr "оÑтаннє розгортаннÑ"
@@ -12188,22 +11523,19 @@ msgstr[2] "запитів на злиттÑ"
msgstr[3] "запитів на злиттÑ"
msgid "missing"
-msgstr "відÑутні"
+msgstr ""
msgid "mrWidgetCommitsAdded|%{commitCount} and %{mergeCommitCount} will be added to %{targetBranch}."
-msgstr "%{commitCount} і %{mergeCommitCount} буде додано до %{targetBranch}."
-
-msgid "mrWidgetCommitsAdded|%{commitCount} will be added to %{targetBranch}."
msgstr ""
msgid "mrWidgetCommitsAdded|1 merge commit"
-msgstr "1 коміт-злиттÑ"
+msgstr ""
msgid "mrWidget| Please restore it or use a different %{missingBranchName} branch"
msgstr "Будь лаÑка відновіть Ñ—Ñ— або викориÑтовуйте іншу %{missingBranchName} гілку"
msgid "mrWidget|%{link_start}Learn more about resolving conflicts%{link_end}"
-msgstr "%{link_start}Докладніше про Ð²Ð¸Ñ€Ñ–ÑˆÐµÐ½Ð½Ñ ÐºÐ¾Ð½Ñ„Ð»Ñ–ÐºÑ‚Ñ–Ð²%{link_end}"
+msgstr ""
msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage %{emphasisStart} decreased %{emphasisEnd} from %{memoryFrom}MB to %{memoryTo}MB"
msgstr "ВикориÑÑ‚Ð°Ð½Ð½Ñ %{metricsLinkStart} пам’ÑÑ‚Ñ– %{metricsLinkEnd} %{emphasisStart} впало %{emphasisEnd} з %{memoryFrom}Мб до %{memoryTo}Мб"
@@ -12221,10 +11553,10 @@ msgid "mrWidget|Allows commits from members who can merge to the target branch"
msgstr "ДозволÑÑ” коміти від учаÑників, Ñкі можуть зливати до цільової гілки"
msgid "mrWidget|An error occurred while removing your approval."
-msgstr "Під Ñ‡Ð°Ñ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð²Ð°ÑˆÐ¾Ð³Ð¾ Ð·Ð°Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ ÑталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°."
+msgstr ""
msgid "mrWidget|An error occurred while retrieving approval data for this merge request."
-msgstr "Помилка при отриманні даних про Ð·Ð°Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ запиту на злиттÑ."
+msgstr ""
msgid "mrWidget|An error occurred while submitting your approval."
msgstr "Помилка при обробці вашого затвердженнÑ."
@@ -12232,9 +11564,6 @@ msgstr "Помилка при обробці вашого затвердженн
msgid "mrWidget|Approve"
msgstr "Затвердити"
-msgid "mrWidget|Approve additionally"
-msgstr ""
-
msgid "mrWidget|Approved by"
msgstr "Затверджено"
@@ -12266,7 +11595,7 @@ msgid "mrWidget|Create an issue to resolve them later"
msgstr "Створіть задачу, щоб вирішити їх пізніше"
msgid "mrWidget|Delete source branch"
-msgstr "Видалити гілку-джерело"
+msgstr ""
msgid "mrWidget|Deployment statistics are not available currently"
msgstr "СтатиÑтика Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð½Ð°Ñ€Ð°Ð·Ñ– недоÑтупна"
@@ -12307,20 +11636,17 @@ msgstr "Злити локально"
msgid "mrWidget|Merge request approved"
msgstr "Запит на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð·Ð°Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð¾"
-msgid "mrWidget|Merge request approved."
-msgstr ""
-
msgid "mrWidget|Merge request approved; you can approve additionally"
msgstr "Запит на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð±ÑƒÐ»Ð¾ затверджено; Ви можете затвердити додатково"
msgid "mrWidget|Merged by"
msgstr "Злито"
-msgid "mrWidget|No approval required"
-msgstr ""
+msgid "mrWidget|No Approval required"
+msgstr "Ð—Ð°Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ð½Ðµ потрібне"
-msgid "mrWidget|No approval required; you can still approve"
-msgstr ""
+msgid "mrWidget|No Approval required; you can still approve"
+msgstr "Ð—Ð°Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ð½Ðµ Ñ” обов’Ñзковим; але ви вÑе одно можете це зробити"
msgid "mrWidget|Open in Web IDE"
msgstr "Відкрити у Web IDE"
@@ -12375,9 +11701,6 @@ msgstr "Ðнулювати"
msgid "mrWidget|Revert this merge request in a new merge request"
msgstr "Ðнулювати цей запит на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð·Ð° допомогою нового запиту на злиттÑ"
-msgid "mrWidget|Revoke approval"
-msgstr ""
-
msgid "mrWidget|Set by"
msgstr "Ð’Ñтановлено"
@@ -12397,19 +11720,19 @@ msgid "mrWidget|The source branch HEAD has recently changed. Please reload the p
msgstr "HEAD гілки-джерела нещодавно було змінено. Будь лаÑка оновіть Ñторінку Ñ– переглÑньте зміни перед злиттÑм"
msgid "mrWidget|The source branch has been deleted"
-msgstr "Гілку-джерело видалено"
+msgstr ""
msgid "mrWidget|The source branch is %{commitsBehindLinkStart}%{commitsBehind}%{commitsBehindLinkEnd} the target branch"
msgstr "Гілка-джерело на %{commitsBehindLinkStart}%{commitsBehind}%{commitsBehindLinkEnd} цільової гілки"
msgid "mrWidget|The source branch is being deleted"
-msgstr "Гілка-джерело в процеÑÑ– видаленнÑ"
+msgstr ""
msgid "mrWidget|The source branch will be deleted"
-msgstr "Гілку-джерело буде видалено"
+msgstr ""
msgid "mrWidget|The source branch will not be deleted"
-msgstr "Гілку-джерело не буде видалено"
+msgstr ""
msgid "mrWidget|There are merge conflicts"
msgstr "Ñ–Ñнують конфлікти при злитті"
@@ -12418,7 +11741,7 @@ msgid "mrWidget|There are unresolved discussions. Please resolve these discussio
msgstr "ПриÑутні незавершені обговореннÑ. Будь лаÑка завершіть Ñ—Ñ…"
msgid "mrWidget|This feature merges changes from the target branch to the source branch. You cannot use this feature since the source branch is protected."
-msgstr "Ð¦Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ Ð·Ð»Ð¸Ð²Ð°Ñ” зміни з цільової гілки до гілки-джерела. Її не можна викориÑтовувати, оÑкільки гілка-джерело Ñ” захищеною."
+msgstr ""
msgid "mrWidget|This merge request failed to be merged automatically"
msgstr "ВідбулаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° при автоматичному злитті цього запиту"
@@ -12433,7 +11756,7 @@ msgid "mrWidget|You are not allowed to edit this project directly. Please fork t
msgstr "Ви не можете безпоÑередньо редагувати цей проект. Будь лаÑка, зробіть форк, щоб внеÑти зміни."
msgid "mrWidget|You can delete the source branch now"
-msgstr "Тепер ви можете видалити гілку-джерело"
+msgstr ""
msgid "mrWidget|You can merge this merge request manually using the"
msgstr "Ви можете прийнÑти цей запит на Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð²Ñ€ÑƒÑ‡Ð½Ñƒ за допомогою"
@@ -12457,19 +11780,19 @@ msgid "new merge request"
msgstr "Ðовий запит на злиттÑ"
msgid "none"
-msgstr "немає"
+msgstr ""
msgid "notification emails"
msgstr "ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ ÐµÐ»ÐµÐºÑ‚Ñ€Ð¾Ð½Ð½Ð¾ÑŽ поштою"
msgid "nounSeries|%{firstItem} and %{lastItem}"
-msgstr "%{firstItem} Ñ– %{lastItem}"
+msgstr ""
msgid "nounSeries|%{item}, %{nextItem}"
-msgstr "%{item}, %{nextItem}"
+msgstr ""
msgid "nounSeries|%{item}, and %{lastItem}"
-msgstr "%{item}, Ñ– %{lastItem}"
+msgstr ""
msgid "or"
msgstr "або"
@@ -12495,7 +11818,7 @@ msgid "personal access token"
msgstr "оÑобиÑтий токен доÑтупу"
msgid "private"
-msgstr "приватний"
+msgstr ""
msgid "private key does not match certificate."
msgstr "приватний ключ не відповідає Ñертифікату."
@@ -12508,10 +11831,10 @@ msgstr[2] "проектів"
msgstr[3] "проектів"
msgid "quick actions"
-msgstr "швидкі дії"
+msgstr ""
msgid "register"
-msgstr "зареєÑтруватиÑÑ"
+msgstr ""
msgid "remaining"
msgstr "залишилоÑÑŒ"
@@ -12536,19 +11859,16 @@ msgstr[2] "відповідей"
msgstr[3] "відповідей"
msgid "score"
-msgstr "результат"
-
-msgid "security Reports|There was an error creating the merge request"
msgstr ""
msgid "should be higher than %{access} inherited membership from group %{group_name}"
-msgstr "має бути вищим за %{access}, уÑпадкованого з групи %{group_name}"
+msgstr ""
msgid "show less"
-msgstr "показати менше"
+msgstr ""
msgid "sign in"
-msgstr "увійти"
+msgstr ""
msgid "source"
msgstr "джерело"
@@ -12563,13 +11883,13 @@ msgid "started"
msgstr "розпочато"
msgid "stuck"
-msgstr "заблоковано"
+msgstr ""
msgid "syntax is correct"
-msgstr "ÑинтакÑÐ¸Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð¸Ð¹"
+msgstr ""
msgid "syntax is incorrect"
-msgstr "ÑинтакÑÐ¸Ñ Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð¸Ð¹"
+msgstr ""
msgid "this document"
msgstr "цей документ"
@@ -12578,10 +11898,10 @@ msgid "to help your contributors communicate effectively!"
msgstr "щоб допомогти вашим контриб’юторам ефективно ÑпілкуватиÑÑ!"
msgid "triggered"
-msgstr "запущено"
+msgstr ""
msgid "updated"
-msgstr "оновлено"
+msgstr ""
msgid "username"
msgstr "ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача"
diff --git a/qa/.gitignore b/qa/.gitignore
index 102f7e5e54d..b0ae074ac07 100644
--- a/qa/.gitignore
+++ b/qa/.gitignore
@@ -1,3 +1,3 @@
tmp/
.ruby-version
-urls.txt
+urls.yml
diff --git a/qa/Rakefile b/qa/Rakefile
index b6ad09f9b00..bad8daac848 100644
--- a/qa/Rakefile
+++ b/qa/Rakefile
@@ -16,3 +16,25 @@ desc "Generate Performance Testdata"
task :generate_perf_testdata do
QA::Tools::GeneratePerfTestdata.new.run
end
+
+desc "Run artillery load tests"
+task :run_artillery_load_tests do
+ unless ENV['HOST_URL'] && ENV['LARGE_ISSUE_URL'] && ENV['LARGE_MR_URL']
+ urls_file = ENV['URLS_FILE_PATH'] || 'urls.yml'
+
+ unless File.exist?(urls_file)
+ raise "\n#{urls_file} file is missing. Please provide correct URLS_FILE_PATH or all of HOST_URL, LARGE_ISSUE_URL and LARGE_MR_URL\n\n"
+ end
+
+ urls = YAML.load(File.read(urls_file))
+ ENV['HOST_URL'] = urls[:host]
+ ENV['LARGE_ISSUE_URL'] = urls[:large_issue]
+ ENV['LARGE_MR_URL'] = urls[:large_mr]
+ end
+
+ sh('artillery run load/artillery.yml -o report.json')
+ sh('artillery report report.json -o report.html && rm report.json')
+end
+
+desc "Generate data and run load tests"
+task generate_data_and_run_load_test: [:generate_perf_testdata, :run_artillery_load_tests]
diff --git a/qa/load/artillery.yml b/qa/load/artillery.yml
new file mode 100644
index 00000000000..e2c3c293d8b
--- /dev/null
+++ b/qa/load/artillery.yml
@@ -0,0 +1,22 @@
+config:
+ target: "{{ $processEnvironment.HOST_URL }}"
+ phases:
+ - duration: 60
+ arrivalRate: 1
+ name: "Warm up"
+ - duration: 120
+ arrivalRate: 1
+ rampTo: 50
+ name: "Gradual ramp up"
+ - duration: 60
+ arrivalRate: 50
+ name: "Sustained max load"
+scenarios:
+ - name: "Visit large issue url"
+ flow:
+ - get:
+ url: "{{ $processEnvironment.LARGE_ISSUE_URL }}"
+ - name: "Visit large MR url"
+ flow:
+ - get:
+ url: "{{ $processEnvironment.LARGE_MR_URL }}"
diff --git a/qa/qa.rb b/qa/qa.rb
index ec8aef31e48..a79fecaab71 100644
--- a/qa/qa.rb
+++ b/qa/qa.rb
@@ -61,7 +61,6 @@ module QA
autoload :File, 'qa/resource/file'
autoload :Fork, 'qa/resource/fork'
autoload :SSHKey, 'qa/resource/ssh_key'
- autoload :Snippet, 'qa/resource/snippet'
module Events
autoload :Base, 'qa/resource/events/base'
@@ -143,12 +142,6 @@ module QA
module Dashboard
autoload :Projects, 'qa/page/dashboard/projects'
autoload :Groups, 'qa/page/dashboard/groups'
-
- module Snippet
- autoload :New, 'qa/page/dashboard/snippet/new'
- autoload :Index, 'qa/page/dashboard/snippet/index'
- autoload :Show, 'qa/page/dashboard/snippet/show'
- end
end
module Group
diff --git a/qa/qa/page/dashboard/projects.rb b/qa/qa/page/dashboard/projects.rb
index 271c5456efe..0f434577b3b 100644
--- a/qa/qa/page/dashboard/projects.rb
+++ b/qa/qa/page/dashboard/projects.rb
@@ -2,6 +2,8 @@ module QA
module Page
module Dashboard
class Projects < Page::Base
+ view 'app/views/dashboard/projects/index.html.haml'
+
view 'app/views/shared/projects/_search_form.html.haml' do
element :form_filter_by_name, /form_tag.+id: 'project-filter-form'/ # rubocop:disable QA/ElementWithPattern
end
diff --git a/qa/qa/page/dashboard/snippet/index.rb b/qa/qa/page/dashboard/snippet/index.rb
deleted file mode 100644
index 1f467fda9e1..00000000000
--- a/qa/qa/page/dashboard/snippet/index.rb
+++ /dev/null
@@ -1,21 +0,0 @@
-# frozen_string_literal: true
-
-module QA
- module Page
- module Dashboard
- module Snippet
- class Index < Page::Base
- view 'app/views/layouts/header/_new_dropdown.haml' do
- element :new_menu_toggle
- element :global_new_snippet_link
- end
-
- def go_to_new_snippet_page
- click_element :new_menu_toggle
- click_element :global_new_snippet_link
- end
- end
- end
- end
- end
-end
diff --git a/qa/qa/page/dashboard/snippet/new.rb b/qa/qa/page/dashboard/snippet/new.rb
deleted file mode 100644
index a637b869d2f..00000000000
--- a/qa/qa/page/dashboard/snippet/new.rb
+++ /dev/null
@@ -1,53 +0,0 @@
-# frozen_string_literal: true
-
-module QA
- module Page
- module Dashboard
- module Snippet
- class New < Page::Base
- view 'app/views/shared/form_elements/_description.html.haml' do
- element :issuable_form_description
- end
-
- view 'app/views/shared/snippets/_form.html.haml' do
- element :snippet_title
- element :snippet_file_name
- element :create_snippet_button
- end
-
- def fill_title(title)
- fill_element :snippet_title, title
- end
-
- def fill_description(description)
- fill_element :issuable_form_description, description
- end
-
- def set_visibility(visibility)
- choose visibility
- end
-
- def fill_file_name(name)
- finished_loading?
- fill_element :snippet_file_name, name
- end
-
- def fill_file_content(content)
- finished_loading?
- text_area.set content
- end
-
- def create_snippet
- click_element :create_snippet_button
- end
-
- private
-
- def text_area
- find('#editor>textarea', visible: false)
- end
- end
- end
- end
- end
-end
diff --git a/qa/qa/page/dashboard/snippet/show.rb b/qa/qa/page/dashboard/snippet/show.rb
deleted file mode 100644
index a75ea63eca7..00000000000
--- a/qa/qa/page/dashboard/snippet/show.rb
+++ /dev/null
@@ -1,63 +0,0 @@
-# frozen_string_literal: true
-
-module QA
- module Page
- module Dashboard
- module Snippet
- class Show < Page::Base
- view 'app/views/shared/snippets/_header.html.haml' do
- element :snippet_title
- element :snippet_description
- element :embed_type
- element :snippet_box
- end
-
- view 'app/views/projects/blob/_header_content.html.haml' do
- element :file_title_name
- end
-
- view 'app/views/shared/_file_highlight.html.haml' do
- element :file_content
- end
-
- def has_snippet_title?(snippet_title)
- within_element(:snippet_title) do
- has_text?(snippet_title)
- end
- end
-
- def has_snippet_description?(snippet_description)
- within_element(:snippet_description) do
- has_text?(snippet_description)
- end
- end
-
- def has_embed_type?(embed_type)
- within_element(:embed_type) do
- has_text?(embed_type)
- end
- end
-
- def has_visibility_type?(visibility_type)
- within_element(:snippet_box) do
- has_text?(visibility_type)
- end
- end
-
- def has_file_name?(file_name)
- within_element(:file_title_name) do
- has_text?(file_name)
- end
- end
-
- def has_file_content?(file_content)
- finished_loading?
- within_element(:file_content) do
- has_text?(file_content)
- end
- end
- end
- end
- end
- end
-end
diff --git a/qa/qa/page/main/menu.rb b/qa/qa/page/main/menu.rb
index 1b3445b0064..55500e831c6 100644
--- a/qa/qa/page/main/menu.rb
+++ b/qa/qa/page/main/menu.rb
@@ -19,7 +19,6 @@ module QA
element :admin_area_link
element :projects_dropdown
element :groups_dropdown
- element :snippets_link
end
view 'app/views/layouts/nav/projects_dropdown/_show.html.haml' do
@@ -67,10 +66,6 @@ module QA
end
end
- def go_to_snippets
- click_element :snippets_link
- end
-
def has_personal_area?(wait: Capybara.default_max_wait_time)
has_element?(:user_avatar, wait: wait)
end
diff --git a/qa/qa/resource/snippet.rb b/qa/qa/resource/snippet.rb
deleted file mode 100644
index 1478f197570..00000000000
--- a/qa/qa/resource/snippet.rb
+++ /dev/null
@@ -1,30 +0,0 @@
-# frozen_string_literal: true
-
-module QA
- module Resource
- class Snippet < Base
- attr_accessor :title, :description, :file_content, :visibility, :file_name
-
- def initialize
- @title = 'New snippet title'
- @description = 'The snippet description'
- @visibility = 'Public'
- @file_content = 'The snippet content'
- @file_name = 'New snippet file name'
- end
-
- def fabricate!
- Page::Dashboard::Snippet::Index.perform(&:go_to_new_snippet_page)
-
- Page::Dashboard::Snippet::New.perform do |page|
- page.fill_title(@title)
- page.fill_description(@description)
- page.set_visibility(@visibility)
- page.fill_file_name(@file_name)
- page.fill_file_content(@file_content)
- page.create_snippet
- end
- end
- end
- end
-end
diff --git a/qa/qa/specs/features/browser_ui/3_create/snippet/create_snippet_spec.rb b/qa/qa/specs/features/browser_ui/3_create/snippet/create_snippet_spec.rb
deleted file mode 100644
index ab53dff464e..00000000000
--- a/qa/qa/specs/features/browser_ui/3_create/snippet/create_snippet_spec.rb
+++ /dev/null
@@ -1,31 +0,0 @@
-# frozen_string_literal: true
-
-module QA
- context 'Create', :smoke do
- describe 'Snippet creation' do
- it 'User creates a snippet' do
- Runtime::Browser.visit(:gitlab, Page::Main::Login)
- Page::Main::Login.perform(&:sign_in_using_credentials)
-
- Page::Main::Menu.perform(&:go_to_snippets)
-
- Resource::Snippet.fabricate_via_browser_ui! do |snippet|
- snippet.title = 'Snippet title'
- snippet.description = 'Snippet description'
- snippet.visibility = 'Public'
- snippet.file_name = 'New snippet file name'
- snippet.file_content = 'Snippet file text'
- end
-
- Page::Dashboard::Snippet::Show.perform do |snippet|
- expect(snippet).to have_snippet_title('Snippet title')
- expect(snippet).to have_snippet_description('Snippet description')
- expect(snippet).to have_embed_type('Embed')
- expect(snippet).to have_visibility_type('Public')
- expect(snippet).to have_file_name('New snippet file name')
- expect(snippet).to have_file_content('Snippet file text')
- end
- end
- end
- end
-end
diff --git a/qa/qa/tools/generate_perf_testdata.rb b/qa/qa/tools/generate_perf_testdata.rb
index ad515014794..0a0dbdf5b15 100644
--- a/qa/qa/tools/generate_perf_testdata.rb
+++ b/qa/qa/tools/generate_perf_testdata.rb
@@ -2,6 +2,7 @@
require 'securerandom'
require 'faker'
+require 'yaml'
require_relative '../../qa'
# This script generates testdata for Performance Testing.
# Required environment variables: PERSONAL_ACCESS_TOKEN and GITLAB_ADDRESS
@@ -20,7 +21,8 @@ module QA
@api_client = Runtime::API::Client.new(ENV['GITLAB_ADDRESS'], personal_access_token: ENV['PERSONAL_ACCESS_TOKEN'])
@group_name = "gitlab-qa-perf-sandbox-#{SecureRandom.hex(8)}"
@project_name = "my-test-project-#{SecureRandom.hex(8)}"
- @urls = {}
+ @visibility = "public"
+ @urls = { host: ENV['GITLAB_ADDRESS'] }
end
def run
@@ -39,26 +41,26 @@ module QA
threads_arr = []
methods_arr.each do |m|
- threads_arr << Thread.new {m.call}
+ threads_arr << Thread.new { m.call }
end
threads_arr.each(&:join)
STDOUT.puts "\nURLs: #{@urls}"
- File.open("urls.txt", "w") { |file| file.puts @urls.to_s}
+ File.open("urls.yml", "w") { |file| file.puts @urls.to_yaml }
STDOUT.puts "\nDone"
end
private
def create_group
- group_search_response = post Runtime::API::Request.new(@api_client, "/groups").url, "name=#{@group_name}&path=#{@group_name}"
+ group_search_response = post Runtime::API::Request.new(@api_client, "/groups").url, "name=#{@group_name}&path=#{@group_name}&visibility=#{@visibility}"
group = JSON.parse(group_search_response.body)
@urls[:group_page] = group["web_url"]
group["id"]
end
def create_project(group_id)
- create_project_response = post Runtime::API::Request.new(@api_client, "/projects").url, "name=#{@project_name}&namespace_id=#{group_id}"
+ create_project_response = post Runtime::API::Request.new(@api_client, "/projects").url, "name=#{@project_name}&namespace_id=#{group_id}&visibility=#{@visibility}"
@urls[:project_page] = JSON.parse(create_project_response.body)["web_url"]
end
diff --git a/spec/controllers/groups_controller_spec.rb b/spec/controllers/groups_controller_spec.rb
index b2e6df6060a..21e5122c06b 100644
--- a/spec/controllers/groups_controller_spec.rb
+++ b/spec/controllers/groups_controller_spec.rb
@@ -32,46 +32,21 @@ describe GroupsController do
end
end
- shared_examples 'details view' do
- it { is_expected.to render_template('groups/show') }
-
- context 'as atom' do
- let!(:event) { create(:event, project: project) }
- let(:format) { :atom }
-
- it { is_expected.to render_template('groups/show') }
-
- it 'assigns events for all the projects in the group' do
- subject
- expect(assigns(:events)).to contain_exactly(event)
- end
- end
- end
-
describe 'GET #show' do
before do
sign_in(user)
project
end
- let(:format) { :html }
-
- subject { get :show, params: { id: group.to_param }, format: format }
+ context 'as atom' do
+ it 'assigns events for all the projects in the group' do
+ create(:event, project: project)
- it_behaves_like 'details view'
- end
+ get :show, params: { id: group.to_param }, format: :atom
- describe 'GET #details' do
- before do
- sign_in(user)
- project
+ expect(assigns(:events)).not_to be_empty
+ end
end
-
- let(:format) { :html }
-
- subject { get :details, params: { id: group.to_param }, format: format }
-
- it_behaves_like 'details view'
end
describe 'GET edit' do
diff --git a/spec/features/projects/clusters/applications_spec.rb b/spec/features/projects/clusters/applications_spec.rb
index aa1c3902f0f..4981bf794d9 100644
--- a/spec/features/projects/clusters/applications_spec.rb
+++ b/spec/features/projects/clusters/applications_spec.rb
@@ -227,7 +227,7 @@ describe 'Clusters Applications', :js do
expect(page).to have_css('.js-cluster-application-install-button', exact_text: 'Installed')
expect(page).to have_css('.js-cluster-application-install-button[disabled]')
expect(page).to have_selector('.js-no-endpoint-message')
- expect(page).to have_selector('.js-ingress-ip-loading-icon')
+ expect(page.find('.js-endpoint').value).to eq('?')
# We receive the external IP address and display
Clusters::Cluster.last.application_ingress.update!(external_ip: '192.168.1.100')
diff --git a/spec/features/projects/show/user_sees_git_instructions_spec.rb b/spec/features/projects/show/user_sees_git_instructions_spec.rb
index 0d59ef4a727..ffa80235083 100644
--- a/spec/features/projects/show/user_sees_git_instructions_spec.rb
+++ b/spec/features/projects/show/user_sees_git_instructions_spec.rb
@@ -13,7 +13,7 @@ describe 'Projects > Show > User sees Git instructions' do
it 'shows Git command line instructions' do
click_link 'Create empty repository'
- page.within '.empty-wrapper' do
+ page.within '.empty_wrapper' do
expect(page).to have_content('Command line instructions')
end
end
diff --git a/spec/features/projects/show/user_sees_setup_shortcut_buttons_spec.rb b/spec/features/projects/show/user_sees_setup_shortcut_buttons_spec.rb
index 58bd20d7551..dcca1d388c7 100644
--- a/spec/features/projects/show/user_sees_setup_shortcut_buttons_spec.rb
+++ b/spec/features/projects/show/user_sees_setup_shortcut_buttons_spec.rb
@@ -20,18 +20,18 @@ describe 'Projects > Show > User sees setup shortcut buttons' do
visit project_path(project)
end
- it 'Project buttons are not visible' do
- visit project_path(project)
-
+ it 'no Auto DevOps button if can not manage pipelines' do
page.within('.project-buttons') do
- expect(page).not_to have_link('New file')
- expect(page).not_to have_link('Add README')
- expect(page).not_to have_link('Add CHANGELOG')
- expect(page).not_to have_link('Add CONTRIBUTING')
expect(page).not_to have_link('Enable Auto DevOps')
expect(page).not_to have_link('Auto DevOps enabled')
- expect(page).not_to have_link('Add Kubernetes cluster')
- expect(page).not_to have_link('Kubernetes configured')
+ end
+ end
+
+ it '"Auto DevOps enabled" button not linked' do
+ visit project_path(project)
+
+ page.within('.project-buttons') do
+ expect(page).to have_text('Auto DevOps enabled')
end
end
end
@@ -61,6 +61,46 @@ describe 'Projects > Show > User sees setup shortcut buttons' do
expect(page).to have_link('Add license', href: presenter.add_license_path)
end
end
+
+ describe 'Auto DevOps button' do
+ context 'when Auto DevOps is enabled' do
+ it '"Auto DevOps enabled" anchor linked to settings page' do
+ visit project_path(project)
+
+ page.within('.project-buttons') do
+ expect(page).to have_link('Auto DevOps enabled', href: project_settings_ci_cd_path(project, anchor: 'autodevops-settings'))
+ end
+ end
+ end
+
+ context 'when Auto DevOps is not enabled' do
+ let(:project) { create(:project, :public, :empty_repo, auto_devops_attributes: { enabled: false }) }
+
+ it '"Enable Auto DevOps" button linked to settings page' do
+ page.within('.project-buttons') do
+ expect(page).to have_link('Enable Auto DevOps', href: project_settings_ci_cd_path(project, anchor: 'autodevops-settings'))
+ end
+ end
+ end
+ end
+
+ describe 'Kubernetes cluster button' do
+ it '"Add Kubernetes cluster" button linked to clusters page' do
+ page.within('.project-buttons') do
+ expect(page).to have_link('Add Kubernetes cluster', href: new_project_cluster_path(project))
+ end
+ end
+
+ it '"Kubernetes cluster" anchor linked to cluster page' do
+ cluster = create(:cluster, :provided_by_gcp, projects: [project])
+
+ visit project_path(project)
+
+ page.within('.project-buttons') do
+ expect(page).to have_link('Kubernetes configured', href: project_cluster_path(project, cluster))
+ end
+ end
+ end
end
end
diff --git a/spec/fixtures/api/schemas/board.json b/spec/fixtures/api/schemas/board.json
index 7c146647948..03aca4a3cc0 100644
--- a/spec/fixtures/api/schemas/board.json
+++ b/spec/fixtures/api/schemas/board.json
@@ -6,5 +6,6 @@
"properties" : {
"id": { "type": "integer" },
"name": { "type": "string" }
- }
+ },
+ "additionalProperties": false
}
diff --git a/spec/fixtures/api/schemas/entities/issue.json b/spec/fixtures/api/schemas/entities/issue.json
index 162fb9c8108..00abe73ec8a 100644
--- a/spec/fixtures/api/schemas/entities/issue.json
+++ b/spec/fixtures/api/schemas/entities/issue.json
@@ -38,5 +38,6 @@
"items": { "$ref": "label.json" }
},
"assignees": { "type": ["array", "null"] }
- }
+ },
+ "additionalProperties": false
}
diff --git a/spec/fixtures/api/schemas/entities/issue_boards.json b/spec/fixtures/api/schemas/entities/issue_boards.json
index 742f7be5485..0ac1d9468c8 100644
--- a/spec/fixtures/api/schemas/entities/issue_boards.json
+++ b/spec/fixtures/api/schemas/entities/issue_boards.json
@@ -10,5 +10,6 @@
"items": { "$ref": "issue_board.json" }
},
"size": { "type": "integer" }
- }
+ },
+ "additionalProperties": false
}
diff --git a/spec/fixtures/api/schemas/entities/merge_request_widget.json b/spec/fixtures/api/schemas/entities/merge_request_widget.json
index 6b1cd60c25d..67c209f3fc3 100644
--- a/spec/fixtures/api/schemas/entities/merge_request_widget.json
+++ b/spec/fixtures/api/schemas/entities/merge_request_widget.json
@@ -52,7 +52,6 @@
"mergeable_discussions_state": { "type": "boolean" },
"conflicts_can_be_resolved_in_ui": { "type": "boolean" },
"branch_missing": { "type": "boolean" },
- "commits_count": { "type": ["integer", "null"] },
"has_conflicts": { "type": "boolean" },
"can_be_merged": { "type": "boolean" },
"mergeable": { "type": "boolean" },
@@ -126,5 +125,6 @@
"can_receive_suggestion": { "type": "boolean" },
"source_branch_protected": { "type": "boolean" },
"conflicts_docs_path": { "type": ["string", "null"] }
- }
+ },
+ "additionalProperties": false
}
diff --git a/spec/fixtures/api/schemas/issue.json b/spec/fixtures/api/schemas/issue.json
index 77de9ae4f9f..a83ec55cede 100644
--- a/spec/fixtures/api/schemas/issue.json
+++ b/spec/fixtures/api/schemas/issue.json
@@ -28,7 +28,7 @@
"items": { "$ref": "entities/label.json" }
},
"assignee": {
- "id": { "type": "integer" },
+ "id": { "type": "integet" },
"name": { "type": "string" },
"username": { "type": "string" },
"avatar_url": { "type": "uri" }
@@ -52,5 +52,6 @@
}
},
"subscribed": { "type": ["boolean", "null"] }
- }
+ },
+ "additionalProperties": false
}
diff --git a/spec/fixtures/api/schemas/issues.json b/spec/fixtures/api/schemas/issues.json
index fbcd9eea389..70771b21c96 100644
--- a/spec/fixtures/api/schemas/issues.json
+++ b/spec/fixtures/api/schemas/issues.json
@@ -10,5 +10,6 @@
"items": { "$ref": "issue.json" }
},
"size": { "type": "integer" }
- }
+ },
+ "additionalProperties": false
}
diff --git a/spec/fixtures/api/schemas/public_api/v4/merge_request.json b/spec/fixtures/api/schemas/public_api/v4/merge_request.json
deleted file mode 100644
index cd50be00418..00000000000
--- a/spec/fixtures/api/schemas/public_api/v4/merge_request.json
+++ /dev/null
@@ -1,124 +0,0 @@
-{
- "type": "object",
- "properties" : {
- "properties" : {
- "id": { "type": "integer" },
- "iid": { "type": "integer" },
- "project_id": { "type": "integer" },
- "title": { "type": "string" },
- "description": { "type": ["string", "null"] },
- "state": { "type": "string" },
- "merged_by": {
- "type": ["object", "null"],
- "properties": {
- "name": { "type": "string" },
- "username": { "type": "string" },
- "id": { "type": "integer" },
- "state": { "type": "string" },
- "avatar_url": { "type": "uri" },
- "web_url": { "type": "uri" }
- },
- "additionalProperties": false
- },
- "merged_at": { "type": ["date", "null"] },
- "closed_by": {
- "type": ["object", "null"],
- "properties": {
- "name": { "type": "string" },
- "username": { "type": "string" },
- "id": { "type": "integer" },
- "state": { "type": "string" },
- "avatar_url": { "type": "uri" },
- "web_url": { "type": "uri" }
- },
- "additionalProperties": false
- },
- "closed_at": { "type": ["date", "null"] },
- "created_at": { "type": "date" },
- "updated_at": { "type": "date" },
- "target_branch": { "type": "string" },
- "source_branch": { "type": "string" },
- "upvotes": { "type": "integer" },
- "downvotes": { "type": "integer" },
- "author": {
- "type": "object",
- "properties": {
- "name": { "type": "string" },
- "username": { "type": "string" },
- "id": { "type": "integer" },
- "state": { "type": "string" },
- "avatar_url": { "type": "uri" },
- "web_url": { "type": "uri" }
- },
- "additionalProperties": false
- },
- "assignee": {
- "type": ["object", "null"],
- "properties": {
- "name": { "type": "string" },
- "username": { "type": "string" },
- "id": { "type": "integer" },
- "state": { "type": "string" },
- "avatar_url": { "type": "uri" },
- "web_url": { "type": "uri" }
- },
- "additionalProperties": false
- },
- "source_project_id": { "type": "integer" },
- "target_project_id": { "type": "integer" },
- "labels": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "work_in_progress": { "type": "boolean" },
- "milestone": {
- "type": ["object", "null"],
- "properties": {
- "id": { "type": "integer" },
- "iid": { "type": "integer" },
- "project_id": { "type": ["integer", "null"] },
- "group_id": { "type": ["integer", "null"] },
- "title": { "type": "string" },
- "description": { "type": ["string", "null"] },
- "state": { "type": "string" },
- "created_at": { "type": "date" },
- "updated_at": { "type": "date" },
- "due_date": { "type": "date" },
- "start_date": { "type": "date" }
- },
- "additionalProperties": false
- },
- "merge_when_pipeline_succeeds": { "type": "boolean" },
- "merge_status": { "type": "string" },
- "sha": { "type": "string" },
- "merge_commit_sha": { "type": ["string", "null"] },
- "user_notes_count": { "type": "integer" },
- "changes_count": { "type": "string" },
- "should_remove_source_branch": { "type": ["boolean", "null"] },
- "force_remove_source_branch": { "type": ["boolean", "null"] },
- "discussion_locked": { "type": ["boolean", "null"] },
- "web_url": { "type": "uri" },
- "squash": { "type": "boolean" },
- "time_stats": {
- "time_estimate": { "type": "integer" },
- "total_time_spent": { "type": "integer" },
- "human_time_estimate": { "type": ["string", "null"] },
- "human_total_time_spent": { "type": ["string", "null"] }
- },
- "allow_collaboration": { "type": ["boolean", "null"] },
- "allow_maintainer_to_push": { "type": ["boolean", "null"] }
- },
- "required": [
- "id", "iid", "project_id", "title", "description",
- "state", "created_at", "updated_at", "target_branch",
- "source_branch", "upvotes", "downvotes", "author",
- "assignee", "source_project_id", "target_project_id",
- "labels", "work_in_progress", "milestone", "merge_when_pipeline_succeeds",
- "merge_status", "sha", "merge_commit_sha", "user_notes_count",
- "should_remove_source_branch", "force_remove_source_branch",
- "web_url", "squash"
- ]
- }
-}
diff --git a/spec/fixtures/api/schemas/public_api/v4/merge_requests.json b/spec/fixtures/api/schemas/public_api/v4/merge_requests.json
index b35c83950e8..6df27bf32b9 100644
--- a/spec/fixtures/api/schemas/public_api/v4/merge_requests.json
+++ b/spec/fixtures/api/schemas/public_api/v4/merge_requests.json
@@ -1,6 +1,126 @@
{
"type": "array",
"items": {
- "$ref": "./merge_request.json"
+ "type": "object",
+ "properties" : {
+ "id": { "type": "integer" },
+ "iid": { "type": "integer" },
+ "project_id": { "type": "integer" },
+ "title": { "type": "string" },
+ "description": { "type": ["string", "null"] },
+ "state": { "type": "string" },
+ "merged_by": {
+ "type": ["object", "null"],
+ "properties": {
+ "name": { "type": "string" },
+ "username": { "type": "string" },
+ "id": { "type": "integer" },
+ "state": { "type": "string" },
+ "avatar_url": { "type": "uri" },
+ "web_url": { "type": "uri" }
+ },
+ "additionalProperties": false
+ },
+ "merged_at": { "type": ["date", "null"] },
+ "closed_by": {
+ "type": ["object", "null"],
+ "properties": {
+ "name": { "type": "string" },
+ "username": { "type": "string" },
+ "id": { "type": "integer" },
+ "state": { "type": "string" },
+ "avatar_url": { "type": "uri" },
+ "web_url": { "type": "uri" }
+ },
+ "additionalProperties": false
+ },
+ "closed_at": { "type": ["date", "null"] },
+ "created_at": { "type": "date" },
+ "updated_at": { "type": "date" },
+ "target_branch": { "type": "string" },
+ "source_branch": { "type": "string" },
+ "upvotes": { "type": "integer" },
+ "downvotes": { "type": "integer" },
+ "author": {
+ "type": "object",
+ "properties": {
+ "name": { "type": "string" },
+ "username": { "type": "string" },
+ "id": { "type": "integer" },
+ "state": { "type": "string" },
+ "avatar_url": { "type": "uri" },
+ "web_url": { "type": "uri" }
+ },
+ "additionalProperties": false
+ },
+ "assignee": {
+ "type": ["object", "null"],
+ "properties": {
+ "name": { "type": "string" },
+ "username": { "type": "string" },
+ "id": { "type": "integer" },
+ "state": { "type": "string" },
+ "avatar_url": { "type": "uri" },
+ "web_url": { "type": "uri" }
+ },
+ "additionalProperties": false
+ },
+ "source_project_id": { "type": "integer" },
+ "target_project_id": { "type": "integer" },
+ "labels": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "work_in_progress": { "type": "boolean" },
+ "milestone": {
+ "type": ["object", "null"],
+ "properties": {
+ "id": { "type": "integer" },
+ "iid": { "type": "integer" },
+ "project_id": { "type": ["integer", "null"] },
+ "group_id": { "type": ["integer", "null"] },
+ "title": { "type": "string" },
+ "description": { "type": ["string", "null"] },
+ "state": { "type": "string" },
+ "created_at": { "type": "date" },
+ "updated_at": { "type": "date" },
+ "due_date": { "type": "date" },
+ "start_date": { "type": "date" }
+ },
+ "additionalProperties": false
+ },
+ "merge_when_pipeline_succeeds": { "type": "boolean" },
+ "merge_status": { "type": "string" },
+ "sha": { "type": "string" },
+ "merge_commit_sha": { "type": ["string", "null"] },
+ "user_notes_count": { "type": "integer" },
+ "changes_count": { "type": "string" },
+ "should_remove_source_branch": { "type": ["boolean", "null"] },
+ "force_remove_source_branch": { "type": ["boolean", "null"] },
+ "discussion_locked": { "type": ["boolean", "null"] },
+ "web_url": { "type": "uri" },
+ "squash": { "type": "boolean" },
+ "time_stats": {
+ "time_estimate": { "type": "integer" },
+ "total_time_spent": { "type": "integer" },
+ "human_time_estimate": { "type": ["string", "null"] },
+ "human_total_time_spent": { "type": ["string", "null"] }
+ },
+ "allow_collaboration": { "type": ["boolean", "null"] },
+ "allow_maintainer_to_push": { "type": ["boolean", "null"] }
+ },
+ "required": [
+ "id", "iid", "project_id", "title", "description",
+ "state", "created_at", "updated_at", "target_branch",
+ "source_branch", "upvotes", "downvotes", "author",
+ "assignee", "source_project_id", "target_project_id",
+ "labels", "work_in_progress", "milestone", "merge_when_pipeline_succeeds",
+ "merge_status", "sha", "merge_commit_sha", "user_notes_count",
+ "should_remove_source_branch", "force_remove_source_branch",
+ "web_url", "squash"
+ ],
+ "additionalProperties": false
}
}
diff --git a/spec/javascripts/clusters/components/applications_spec.js b/spec/javascripts/clusters/components/applications_spec.js
index 790e4b9602c..e2466bf326c 100644
--- a/spec/javascripts/clusters/components/applications_spec.js
+++ b/spec/javascripts/clusters/components/applications_spec.js
@@ -141,7 +141,7 @@ describe('Applications', () => {
});
describe('without ip address', () => {
- it('renders an input text with a loading icon and an alert text', () => {
+ it('renders an input text with a question mark and an alert text', () => {
vm = mountComponent(Applications, {
applications: {
...APPLICATIONS_MOCK_STATE,
@@ -152,7 +152,8 @@ describe('Applications', () => {
},
});
- expect(vm.$el.querySelector('.js-ingress-ip-loading-icon')).not.toBe(null);
+ expect(vm.$el.querySelector('.js-endpoint').value).toEqual('?');
+
expect(vm.$el.querySelector('.js-no-endpoint-message')).not.toBe(null);
});
});
@@ -329,7 +330,7 @@ describe('Applications', () => {
});
describe('without ip address', () => {
- it('renders an input text with a loading icon and an alert text', () => {
+ it('renders an input text with a question mark and an alert text', () => {
vm = mountComponent(Applications, {
applications: {
...APPLICATIONS_MOCK_STATE,
@@ -341,7 +342,8 @@ describe('Applications', () => {
},
});
- expect(vm.$el.querySelector('.js-knative-ip-loading-icon')).not.toBe(null);
+ expect(vm.$el.querySelector('.js-knative-endpoint').value).toEqual('?');
+
expect(vm.$el.querySelector('.js-no-knative-endpoint-message')).not.toBe(null);
});
});
diff --git a/spec/javascripts/environments/environments_store_spec.js b/spec/javascripts/environments/environments_store_spec.js
index 8abdbcbbe54..c3d16f10d72 100644
--- a/spec/javascripts/environments/environments_store_spec.js
+++ b/spec/javascripts/environments/environments_store_spec.js
@@ -34,46 +34,54 @@ describe('Store', () => {
expect(store.state.stoppedCounter).toEqual(2);
});
- it('should add folder keys when environment is a folder', () => {
- const environment = {
- name: 'bar',
- size: 3,
- id: 2,
- };
+ describe('store environments', () => {
+ it('should store environments', () => {
+ store.storeEnvironments(serverData);
- store.storeEnvironments([environment]);
+ expect(store.state.environments.length).toEqual(serverData.length);
+ });
- expect(store.state.environments[0].isFolder).toEqual(true);
- expect(store.state.environments[0].folderName).toEqual('bar');
- });
+ it('should add folder keys when environment is a folder', () => {
+ const environment = {
+ name: 'bar',
+ size: 3,
+ id: 2,
+ };
- it('should extract content of `latest` key when provided', () => {
- const environment = {
- name: 'bar',
- size: 3,
- id: 2,
- latest: {
- last_deployment: {},
- isStoppable: true,
- },
- };
-
- store.storeEnvironments([environment]);
-
- expect(store.state.environments[0].last_deployment).toEqual({});
- expect(store.state.environments[0].isStoppable).toEqual(true);
- });
+ store.storeEnvironments([environment]);
- it('should store latest.name when the environment is not a folder', () => {
- store.storeEnvironments(serverData);
+ expect(store.state.environments[0].isFolder).toEqual(true);
+ expect(store.state.environments[0].folderName).toEqual('bar');
+ });
- expect(store.state.environments[0].name).toEqual(serverData[0].latest.name);
- });
+ it('should extract content of `latest` key when provided', () => {
+ const environment = {
+ name: 'bar',
+ size: 3,
+ id: 2,
+ latest: {
+ last_deployment: {},
+ isStoppable: true,
+ },
+ };
- it('should store root level name when environment is a folder', () => {
- store.storeEnvironments(serverData);
+ store.storeEnvironments([environment]);
- expect(store.state.environments[1].folderName).toEqual(serverData[1].name);
+ expect(store.state.environments[0].last_deployment).toEqual({});
+ expect(store.state.environments[0].isStoppable).toEqual(true);
+ });
+
+ it('should store latest.name when the environment is not a folder', () => {
+ store.storeEnvironments(serverData);
+
+ expect(store.state.environments[0].name).toEqual(serverData[0].latest.name);
+ });
+
+ it('should store root level name when environment is a folder', () => {
+ store.storeEnvironments(serverData);
+
+ expect(store.state.environments[1].folderName).toEqual(serverData[1].name);
+ });
});
describe('toggleFolder', () => {
diff --git a/spec/javascripts/test_bundle.js b/spec/javascripts/test_bundle.js
index 235a17d13b0..5eef5682bbd 100644
--- a/spec/javascripts/test_bundle.js
+++ b/spec/javascripts/test_bundle.js
@@ -69,7 +69,7 @@ window.gl = window.gl || {};
window.gl.TEST_HOST = TEST_HOST;
window.gon = window.gon || {};
window.gon.test_env = true;
-window.gon.ee = process.env.EE;
+window.gon.ee = false;
gon.relative_url_root = '';
let hasUnhandledPromiseRejections = false;
@@ -122,26 +122,19 @@ afterEach(() => {
const axiosDefaultAdapter = getDefaultAdapter();
// render all of our tests
-const testContexts = [require.context('spec', true, /_spec$/)];
-
-if (process.env.EE) {
- testContexts.push(require.context('ee_spec', true, /_spec$/));
-}
-
-testContexts.forEach(context => {
- context.keys().forEach(path => {
- try {
- context(path);
- } catch (err) {
- console.log(err);
- console.error('[GL SPEC RUNNER ERROR] Unable to load spec: ', path);
- describe('Test bundle', function() {
- it(`includes '${path}'`, function() {
- expect(err).toBeNull();
- });
+const testsContext = require.context('.', true, /_spec$/);
+testsContext.keys().forEach(function(path) {
+ try {
+ testsContext(path);
+ } catch (err) {
+ console.log(err);
+ console.error('[GL SPEC RUNNER ERROR] Unable to load spec: ', path);
+ describe('Test bundle', function() {
+ it(`includes '${path}'`, function() {
+ expect(err).toBeNull();
});
- }
- });
+ });
+ }
});
describe('test errors', () => {
@@ -211,35 +204,24 @@ if (process.env.BABEL_ENV === 'coverage') {
];
describe('Uncovered files', function() {
- const sourceFilesContexts = [require.context('~', true, /\.(js|vue)$/)];
-
- if (process.env.EE) {
- sourceFilesContexts.push(require.context('ee', true, /\.(js|vue)$/));
- }
-
- const allTestFiles = testContexts.reduce(
- (accumulator, context) => accumulator.concat(context.keys()),
- [],
- );
+ const sourceFiles = require.context('~', true, /\.(js|vue)$/);
$.holdReady(true);
- sourceFilesContexts.forEach(context => {
- context.keys().forEach(path => {
- // ignore if there is a matching spec file
- if (allTestFiles.indexOf(`${path.replace(/\.(js|vue)$/, '')}_spec`) > -1) {
- return;
- }
-
- it(`includes '${path}'`, function() {
- try {
- context(path);
- } catch (err) {
- if (troubleMakers.indexOf(path) === -1) {
- expect(err).toBeNull();
- }
+ sourceFiles.keys().forEach(function(path) {
+ // ignore if there is a matching spec file
+ if (testsContext.keys().indexOf(`${path.replace(/\.(js|vue)$/, '')}_spec`) > -1) {
+ return;
+ }
+
+ it(`includes '${path}'`, function() {
+ try {
+ sourceFiles(path);
+ } catch (err) {
+ if (troubleMakers.indexOf(path) === -1) {
+ expect(err).toBeNull();
}
- });
+ }
});
});
});
diff --git a/spec/lib/gitlab/bitbucket_import/importer_spec.rb b/spec/lib/gitlab/bitbucket_import/importer_spec.rb
index e1a2bae5fe8..c432cc223b9 100644
--- a/spec/lib/gitlab/bitbucket_import/importer_spec.rb
+++ b/spec/lib/gitlab/bitbucket_import/importer_spec.rb
@@ -95,9 +95,6 @@ describe Gitlab::BitbucketImport::Importer do
subject { described_class.new(project) }
describe '#import_pull_requests' do
- let(:source_branch_sha) { sample.commits.last }
- let(:target_branch_sha) { sample.commits.first }
-
before do
allow(subject).to receive(:import_wiki)
allow(subject).to receive(:import_issues)
@@ -105,9 +102,9 @@ describe Gitlab::BitbucketImport::Importer do
pull_request = instance_double(
Bitbucket::Representation::PullRequest,
iid: 10,
- source_branch_sha: source_branch_sha,
+ source_branch_sha: sample.commits.last,
source_branch_name: Gitlab::Git::BRANCH_REF_PREFIX + sample.source_branch,
- target_branch_sha: target_branch_sha,
+ target_branch_sha: sample.commits.first,
target_branch_name: Gitlab::Git::BRANCH_REF_PREFIX + sample.target_branch,
title: 'This is a title',
description: 'This is a test pull request',
@@ -165,19 +162,6 @@ describe Gitlab::BitbucketImport::Importer do
expect(reply_note).to be_a(DiffNote)
expect(reply_note.note).to eq(@reply.note)
end
-
- context "when branches' sha is not found in the repository" do
- let(:source_branch_sha) { 'a' * Commit::MIN_SHA_LENGTH }
- let(:target_branch_sha) { 'b' * Commit::MIN_SHA_LENGTH }
-
- it 'uses the pull request sha references' do
- expect { subject.execute }.to change { MergeRequest.count }.by(1)
-
- merge_request_diff = MergeRequest.first.merge_request_diff
- expect(merge_request_diff.head_commit_sha).to eq source_branch_sha
- expect(merge_request_diff.start_commit_sha).to eq target_branch_sha
- end
- end
end
context 'issues statuses' do
diff --git a/spec/lib/gitlab/database_spec.rb b/spec/lib/gitlab/database_spec.rb
index ae50abd0e7a..60106ee3c0b 100644
--- a/spec/lib/gitlab/database_spec.rb
+++ b/spec/lib/gitlab/database_spec.rb
@@ -87,38 +87,6 @@ describe Gitlab::Database do
end
end
- describe '.postgresql_minimum_supported_version?' do
- it 'returns false when not using PostgreSQL' do
- allow(described_class).to receive(:postgresql?).and_return(false)
-
- expect(described_class.postgresql_minimum_supported_version?).to eq(false)
- end
-
- context 'when using PostgreSQL' do
- before do
- allow(described_class).to receive(:postgresql?).and_return(true)
- end
-
- it 'returns false when using PostgreSQL 9.5' do
- allow(described_class).to receive(:version).and_return('9.5')
-
- expect(described_class.postgresql_minimum_supported_version?).to eq(false)
- end
-
- it 'returns true when using PostgreSQL 9.6' do
- allow(described_class).to receive(:version).and_return('9.6')
-
- expect(described_class.postgresql_minimum_supported_version?).to eq(true)
- end
-
- it 'returns true when using PostgreSQL 10 or newer' do
- allow(described_class).to receive(:version).and_return('10')
-
- expect(described_class.postgresql_minimum_supported_version?).to eq(true)
- end
- end
- end
-
describe '.join_lateral_supported?' do
it 'returns false when using MySQL' do
allow(described_class).to receive(:postgresql?).and_return(false)
@@ -227,12 +195,6 @@ describe Gitlab::Database do
end
end
- describe '.pg_last_xact_replay_timestamp' do
- it 'returns pg_last_xact_replay_timestamp' do
- expect(described_class.pg_last_xact_replay_timestamp).to eq('pg_last_xact_replay_timestamp')
- end
- end
-
describe '.nulls_last_order' do
context 'when using PostgreSQL' do
before do
diff --git a/spec/lib/gitlab/request_context_spec.rb b/spec/lib/gitlab/request_context_spec.rb
index 23e45aff1c5..3ed57c2c916 100644
--- a/spec/lib/gitlab/request_context_spec.rb
+++ b/spec/lib/gitlab/request_context_spec.rb
@@ -25,7 +25,7 @@ describe Gitlab::RequestContext do
[200, {}, ["Hello"]]
end
- described_class.new(endpoint).call(env)
+ Rails.application.middleware.build(endpoint).call(env)
expect(client_ip).to eq(load_balancer_ip)
end
diff --git a/spec/migrations/add_head_pipeline_for_each_merge_request_spec.rb b/spec/migrations/add_head_pipeline_for_each_merge_request_spec.rb
index 13dc62595b5..d8dd7a2fb83 100644
--- a/spec/migrations/add_head_pipeline_for_each_merge_request_spec.rb
+++ b/spec/migrations/add_head_pipeline_for_each_merge_request_spec.rb
@@ -1,21 +1,23 @@
require 'spec_helper'
require Rails.root.join('db', 'post_migrate', '20170508170547_add_head_pipeline_for_each_merge_request.rb')
-describe AddHeadPipelineForEachMergeRequest, :migration do
+describe AddHeadPipelineForEachMergeRequest, :delete do
+ include ProjectForksHelper
+
let(:migration) { described_class.new }
- let!(:project) { table(:projects).create! }
- let!(:other_project) { table(:projects).create! }
+ let!(:project) { create(:project) } # rubocop:disable RSpec/FactoriesInMigrationSpecs
+ let!(:other_project) { fork_project(project) }
- let!(:pipeline_1) { table(:ci_pipelines).create!(project_id: project.id, ref: "branch_1") }
- let!(:pipeline_2) { table(:ci_pipelines).create!(project_id: other_project.id, ref: "branch_1") }
- let!(:pipeline_3) { table(:ci_pipelines).create!(project_id: other_project.id, ref: "branch_1") }
- let!(:pipeline_4) { table(:ci_pipelines).create!(project_id: project.id, ref: "branch_2") }
+ let!(:pipeline_1) { create(:ci_pipeline, project: project, ref: "branch_1") } # rubocop:disable RSpec/FactoriesInMigrationSpecs
+ let!(:pipeline_2) { create(:ci_pipeline, project: other_project, ref: "branch_1") } # rubocop:disable RSpec/FactoriesInMigrationSpecs
+ let!(:pipeline_3) { create(:ci_pipeline, project: other_project, ref: "branch_1") } # rubocop:disable RSpec/FactoriesInMigrationSpecs
+ let!(:pipeline_4) { create(:ci_pipeline, project: project, ref: "branch_2") } # rubocop:disable RSpec/FactoriesInMigrationSpecs
- let!(:mr_1) { table(:merge_requests).create!(source_project_id: project.id, target_project_id: project.id, source_branch: "branch_1", target_branch: "target_1") }
- let!(:mr_2) { table(:merge_requests).create!(source_project_id: other_project.id, target_project_id: project.id, source_branch: "branch_1", target_branch: "target_2") }
- let!(:mr_3) { table(:merge_requests).create!(source_project_id: project.id, target_project_id: project.id, source_branch: "branch_2", target_branch: "master") }
- let!(:mr_4) { table(:merge_requests).create!(source_project_id: project.id, target_project_id: project.id, source_branch: "branch_3", target_branch: "master") }
+ let!(:mr_1) { create(:merge_request, source_project: project, target_project: project, source_branch: "branch_1", target_branch: "target_1") } # rubocop:disable RSpec/FactoriesInMigrationSpecs
+ let!(:mr_2) { create(:merge_request, source_project: other_project, target_project: project, source_branch: "branch_1", target_branch: "target_2") } # rubocop:disable RSpec/FactoriesInMigrationSpecs
+ let!(:mr_3) { create(:merge_request, source_project: project, target_project: project, source_branch: "branch_2", target_branch: "master") } # rubocop:disable RSpec/FactoriesInMigrationSpecs
+ let!(:mr_4) { create(:merge_request, source_project: project, target_project: project, source_branch: "branch_3", target_branch: "master") } # rubocop:disable RSpec/FactoriesInMigrationSpecs
context "#up" do
context "when source_project and source_branch of pipeline are the same of merge request" do
diff --git a/spec/migrations/migrate_old_artifacts_spec.rb b/spec/migrations/migrate_old_artifacts_spec.rb
index 79e21514506..af77d64fdbf 100644
--- a/spec/migrations/migrate_old_artifacts_spec.rb
+++ b/spec/migrations/migrate_old_artifacts_spec.rb
@@ -3,9 +3,7 @@
require 'spec_helper'
require Rails.root.join('db', 'post_migrate', '20170523083112_migrate_old_artifacts.rb')
-# Adding the ci_job_artifacts table (from the 20170918072948 schema)
-# makes the use of model code below easier.
-describe MigrateOldArtifacts, :migration, schema: 20170918072948 do
+describe MigrateOldArtifacts do
let(:migration) { described_class.new }
let!(:directory) { Dir.mktmpdir }
@@ -18,22 +16,18 @@ describe MigrateOldArtifacts, :migration, schema: 20170918072948 do
end
context 'with migratable data' do
- let(:projects) { table(:projects) }
- let(:ci_pipelines) { table(:ci_pipelines) }
- let(:ci_builds) { table(:ci_builds) }
-
- let!(:project1) { projects.create!(ci_id: 2) }
- let!(:project2) { projects.create!(ci_id: 3) }
- let!(:project3) { projects.create! }
-
- let!(:pipeline1) { ci_pipelines.create!(project_id: project1.id) }
- let!(:pipeline2) { ci_pipelines.create!(project_id: project2.id) }
- let!(:pipeline3) { ci_pipelines.create!(project_id: project3.id) }
-
- let!(:build_with_legacy_artifacts) { ci_builds.create!(commit_id: pipeline1.id, project_id: project1.id, type: 'Ci::Build').becomes(Ci::Build) }
- let!(:build_without_artifacts) { ci_builds.create!(commit_id: pipeline1.id, project_id: project1.id, type: 'Ci::Build').becomes(Ci::Build) }
- let!(:build2) { ci_builds.create!(commit_id: pipeline2.id, project_id: project2.id, type: 'Ci::Build').becomes(Ci::Build) }
- let!(:build3) { ci_builds.create!(commit_id: pipeline3.id, project_id: project3.id, type: 'Ci::Build').becomes(Ci::Build) }
+ set(:project1) { create(:project, ci_id: 2) } # rubocop:disable RSpec/FactoriesInMigrationSpecs
+ set(:project2) { create(:project, ci_id: 3) } # rubocop:disable RSpec/FactoriesInMigrationSpecs
+ set(:project3) { create(:project) } # rubocop:disable RSpec/FactoriesInMigrationSpecs
+
+ set(:pipeline1) { create(:ci_empty_pipeline, project: project1) } # rubocop:disable RSpec/FactoriesInMigrationSpecs
+ set(:pipeline2) { create(:ci_empty_pipeline, project: project2) } # rubocop:disable RSpec/FactoriesInMigrationSpecs
+ set(:pipeline3) { create(:ci_empty_pipeline, project: project3) } # rubocop:disable RSpec/FactoriesInMigrationSpecs
+
+ let!(:build_with_legacy_artifacts) { create(:ci_build, pipeline: pipeline1) } # rubocop:disable RSpec/FactoriesInMigrationSpecs
+ let!(:build_without_artifacts) { create(:ci_build, pipeline: pipeline1) } # rubocop:disable RSpec/FactoriesInMigrationSpecs
+ let!(:build2) { create(:ci_build, pipeline: pipeline2) } # rubocop:disable RSpec/FactoriesInMigrationSpecs
+ let!(:build3) { create(:ci_build, pipeline: pipeline3) } # rubocop:disable RSpec/FactoriesInMigrationSpecs
before do
setup_builds(build2, build3)
diff --git a/spec/migrations/migrate_user_activities_to_users_last_activity_on_spec.rb b/spec/migrations/migrate_user_activities_to_users_last_activity_on_spec.rb
index 88aef3b70b4..99173708190 100644
--- a/spec/migrations/migrate_user_activities_to_users_last_activity_on_spec.rb
+++ b/spec/migrations/migrate_user_activities_to_users_last_activity_on_spec.rb
@@ -3,10 +3,10 @@
require 'spec_helper'
require Rails.root.join('db', 'post_migrate', '20170324160416_migrate_user_activities_to_users_last_activity_on.rb')
-describe MigrateUserActivitiesToUsersLastActivityOn, :clean_gitlab_redis_shared_state, :migration do
+describe MigrateUserActivitiesToUsersLastActivityOn, :clean_gitlab_redis_shared_state, :delete do
let(:migration) { described_class.new }
- let!(:user_active_1) { table(:users).create!(email: 'test1', username: 'test1') }
- let!(:user_active_2) { table(:users).create!(email: 'test2', username: 'test2') }
+ let!(:user_active_1) { create(:user) } # rubocop:disable RSpec/FactoriesInMigrationSpecs
+ let!(:user_active_2) { create(:user) } # rubocop:disable RSpec/FactoriesInMigrationSpecs
def record_activity(user, time)
Gitlab::Redis::SharedState.with do |redis|
diff --git a/spec/migrations/migrate_user_project_view_spec.rb b/spec/migrations/migrate_user_project_view_spec.rb
index a0179ab3ceb..80468b9d01e 100644
--- a/spec/migrations/migrate_user_project_view_spec.rb
+++ b/spec/migrations/migrate_user_project_view_spec.rb
@@ -3,15 +3,15 @@
require 'spec_helper'
require Rails.root.join('db', 'post_migrate', '20170406142253_migrate_user_project_view.rb')
-describe MigrateUserProjectView, :migration do
+describe MigrateUserProjectView, :delete do
let(:migration) { described_class.new }
- let!(:user) { table(:users).create!(project_view: User.project_views['readme']) }
+ let!(:user) { create(:user, project_view: 'readme') } # rubocop:disable RSpec/FactoriesInMigrationSpecs
describe '#up' do
it 'updates project view setting with new value' do
migration.up
- expect(user.reload.project_view).to eq(User.project_views['files'])
+ expect(user.reload.project_view).to eq('files')
end
end
end
diff --git a/spec/routing/group_routing_spec.rb b/spec/routing/group_routing_spec.rb
index 53271550e8b..71788028cbf 100644
--- a/spec/routing/group_routing_spec.rb
+++ b/spec/routing/group_routing_spec.rb
@@ -17,10 +17,6 @@ describe "Groups", "routing" do
expect(get("/#{group_path}")).to route_to('groups#show', id: group_path)
end
- it "to #details" do
- expect(get("/groups/#{group_path}/-/details")).to route_to('groups#details', id: group_path)
- end
-
it "to #activity" do
expect(get("/groups/#{group_path}/-/activity")).to route_to('groups#activity', id: group_path)
end
diff --git a/spec/support/api/schema_matcher.rb b/spec/support/api/schema_matcher.rb
index 4cf34d43117..f7d74df0656 100644
--- a/spec/support/api/schema_matcher.rb
+++ b/spec/support/api/schema_matcher.rb
@@ -1,16 +1,10 @@
module SchemaPath
- def self.expand(schema, dir = nil)
- if Gitlab.ee? && dir.nil?
- ee_path = expand(schema, 'ee')
-
- return ee_path if File.exist?(ee_path)
- end
-
- Rails.root.join(dir.to_s, 'spec', "fixtures/api/schemas/#{schema}.json").to_s
+ def self.expand(schema, dir = '')
+ Rails.root.join(dir, 'spec', "fixtures/api/schemas/#{schema}.json").to_s
end
end
-RSpec::Matchers.define :match_response_schema do |schema, dir: nil, **options|
+RSpec::Matchers.define :match_response_schema do |schema, dir: '', **options|
match do |response|
@errors = JSON::Validator.fully_validate(
SchemaPath.expand(schema, dir), response.body, options)
@@ -24,16 +18,8 @@ RSpec::Matchers.define :match_response_schema do |schema, dir: nil, **options|
end
end
-RSpec::Matchers.define :match_schema do |schema, dir: nil, **options|
+RSpec::Matchers.define :match_schema do |schema, dir: '', **options|
match do |data|
- @errors = JSON::Validator.fully_validate(
- SchemaPath.expand(schema, dir), data, options)
-
- @errors.empty?
- end
-
- failure_message do |response|
- "didn't match the schema defined by #{SchemaPath.expand(schema, dir)}" \
- " The validation errors were:\n#{@errors.join("\n")}"
+ JSON::Validator.validate!(SchemaPath.expand(schema, dir), data, options)
end
end
diff --git a/spec/validators/sha_validator_spec.rb b/spec/validators/sha_validator_spec.rb
index 0a76570f65e..dc1539cf318 100644
--- a/spec/validators/sha_validator_spec.rb
+++ b/spec/validators/sha_validator_spec.rb
@@ -4,7 +4,7 @@ require 'spec_helper'
describe ShaValidator do
let(:validator) { described_class.new(attributes: [:base_commit_sha]) }
- let!(:merge_diff) { build(:merge_request_diff) }
+ let(:merge_diff) { build(:merge_request_diff) }
subject { validator.validate_each(merge_diff, :base_commit_sha, value) }
@@ -12,8 +12,6 @@ describe ShaValidator do
let(:value) { nil }
it 'does not add any error if value is empty' do
- expect(Commit).not_to receive(:valid_hash?)
-
subject
expect(merge_diff.errors).to be_empty
@@ -23,9 +21,7 @@ describe ShaValidator do
context 'with valid sha' do
let(:value) { Digest::SHA1.hexdigest(SecureRandom.hex) }
- it 'does not add any error' do
- expect(Commit).to receive(:valid_hash?).and_call_original
-
+ it 'does not add any error if value is empty' do
subject
expect(merge_diff.errors).to be_empty
@@ -36,7 +32,6 @@ describe ShaValidator do
let(:value) { 'foo' }
it 'adds error to the record' do
- expect(Commit).to receive(:valid_hash?).and_call_original
expect(merge_diff.errors).to be_empty
subject
diff --git a/spec/views/projects/settings/operations/show.html.haml_spec.rb b/spec/views/projects/settings/operations/show.html.haml_spec.rb
index 6762fe3759b..1bca8bba940 100644
--- a/spec/views/projects/settings/operations/show.html.haml_spec.rb
+++ b/spec/views/projects/settings/operations/show.html.haml_spec.rb
@@ -18,7 +18,6 @@ describe 'projects/settings/operations/show' do
allow(view).to receive(:error_tracking_setting)
.and_return(error_tracking_setting)
allow(view).to receive(:current_user).and_return(user)
- allow(view).to receive(:incident_management_available?) { false }
end
let!(:error_tracking_setting) do
diff --git a/vendor/jupyter/values.yaml b/vendor/jupyter/values.yaml
index 781d6e3042f..2be54dec30e 100644
--- a/vendor/jupyter/values.yaml
+++ b/vendor/jupyter/values.yaml
@@ -23,3 +23,7 @@ ingress:
annotations:
kubernetes.io/ingress.class: "nginx"
kubernetes.io/tls-acme: "true"
+
+prePuller:
+ hook:
+ enabled: false